Jmix · sviluppo su misura
Costruito dall’inizio alla fine, e consegnato in modo che qualcun altro potesse mantenerlo.
Analisi, costruzione, deployment, documentazione e un passaggio di consegne a chi tiene il sistema dopo — il vostro team, il vostro IT interno o un fornitore completamente diverso. È l’ultimo dei tre quello per cui vale la pena progettare, perché è quello che mette alla prova tutto il resto.
Tutti i fornitori offrono una consegna dall’inizio alla fine, quindi l’offerta non porta informazione. Porta informazione l’uscita: cosa possedete alla fine, in che forma, e se un estraneo può clonare il repository e far funzionare il sistema senza chiamarci. Di questo parla questa pagina.
Proprietà
Cosa possedete davvero, in tre livelli
Il lock-in viene chiesto come una domanda sola. Sono tre, e hanno risposte diverse:
- Il framework. Apache 2.0. Gratuito, vostro, e non nostro da trattenere. Nessun canone di runtime e nessun canone per utente — il numero di persone che usano il sistema non cambia quello che pagate.
- La vostra applicazione. Normale Java o Kotlin su Spring Boot, nel vostro repository, leggibile da qualsiasi team Java. È la parte che conta nel 2032, ed è la parte che è vostra senza ambiguità.
- Jmix Studio. Un abbonamento per postazione di sviluppo, usato in fase di sviluppo. Non è necessario per eseguire l’applicazione. Se l’abbonamento scade, quello che perdete è comodità di sviluppo, non un sistema in funzione.
E la parte con cui la brochure non apre
Alcune funzionalità vivono in livelli a pagamento e non nel framework gratuito. Il livello Enterprise copre cose come mappe e geodati, gestione documentale, funzioni di collaborazione, notifiche omnicanale e l’area di lavoro multi-scheda; il livello BPM copre gli strumenti di progettazione BPMN e il motore di processo. Report e grafici sono gratuiti. Sviluppare su quelli a pagamento richiede un abbonamento attivo corrispondente.
Il che significa che una decisione progettuale presa alla leggera nella seconda settimana può impegnarvi a un livello di abbonamento per tutta la vita del sistema. Siamo noi l’azienda che vende quegli abbonamenti, e preferiamo comunque dirvelo davanti alla lavagna: questa scelta vi costa questo all’anno, e questa è la strada gratuita se esiste. A volte l’add-on a pagamento vale chiaramente la spesa. A volte sono due settimane di codice normale.
La consegna
Cinque cose che un estraneo deve poter fare
Questo è il test di accettazione di un passaggio di consegne, ed è eseguito da qualcuno che non ha mai aperto il progetto — una delle vostre persone, o un fornitore che state valutando. Puntiamo a eseguirlo alla fine di ogni fase e non una volta sola alla fine, perché un passaggio di consegne provato quattro volte è un passaggio di consegne, mentre un passaggio di consegne tentato una volta sola è una speranza.
Il pacchetto
Cosa arriva insieme al sistema
Non un raccoglitore. Cinque artefatti, ognuno dei quali esiste perché la sua assenza è un modo preciso in cui il team successivo si blocca:
- Il repository con la sua storia. Commit e branch intatti, non un unico import di un codice finito. La storia è il modo in cui il prossimo ingegnere scopre il perché.
- Una build che parte da zero. Un comando, su una macchina che non ha mai visto il progetto, con i prerequisiti elencati per versione.
- Migrazioni del database, da vuoto. Ogni modifica dello schema come script, applicata in ordine, così un nuovo ambiente è un comando e non un esercizio di archeologia.
- Il runbook. Deploy, rollback, rotazione di un segreto, ripristino di un backup, lettura dei log — scritto come istruzioni che qualcuno può seguire alle due di notte.
- I registri delle decisioni. Brevi note su cosa è stato scelto e cosa è stato scartato, nel repository. Le opzioni scartate sono la metà di valore.
Tutto scritto mentre il lavoro avviene. La documentazione messa insieme nelle ultime due settimane documenta quello che qualcuno ricorda, che non è la stessa cosa di quello che il sistema fa.
Soldi
Prezzo fisso per quello che riusciamo a vedere
Un prezzo fisso per una fase il cui ambito è noto è un impegno. Un prezzo fisso per un sistema i cui requisiti sono ancora in corso di scoperta è una scommessa, e qualcuno la perde — o il fornitore in margine, o il cliente in un anno di discussioni su cosa volesse dire la parola "compreso".
Perciò il lavoro si fissa a pezzi:
- Discovery. Da due a cinque giorni, a forfait, e produce l’ambito del primo rilascio. Se produce "non costruitelo", ha fatto il suo lavoro.
- Primo rilascio. Deliberatamente piccolo: un flusso di lavoro reale, utenti reali, in produzione. Prezzato prima di iniziare.
- Le ondate successive. Ognuna delimitata e prezzata su quello che ha insegnato la precedente, che è l’unica base onesta per il numero.
Dove la stima sbaglia davvero
Non nelle schermate. In quattro punti, ogni volta: le integrazioni con un sistema di cui nessuno sa dire il proprietario; un modello di accesso scoperto al terzo mese e non nella seconda settimana; "dovrebbe essere bello" che si rivela voler dire approvazione pixel per pixel; e la migrazione dei dati fuori da quello che state sostituendo, che è immancabilmente la voce più sottostimata nel software enterprise.
L’incarico
Come si svolge davvero una realizzazione
01 · Prima la discovery
Da due a cinque giorni con le persone che conoscono il dominio e con quelle che manterranno il risultato. Produce l’ambito del primo rilascio, un elenco dei rischi e una raccomandazione — compresa la raccomandazione di non procedere.
02 · Un primo rilascio piccolo
Un flusso di lavoro, dall’inizio alla fine, usato da persone reali in produzione. Il punto è che sia piccolo: è l’unico modo per scoprire cosa fa davvero l’organizzazione prima che il budget venga impegnato su un’ipotesi.
03 · Ondate, non un big bang
Ogni ondata delimitata su quello che ha insegnato la precedente. Il vecchio sistema, se c’è, continua a funzionare in parallelo finché il nuovo non si è guadagnato il traffico, invece di riceverlo a una data.
04 · La vostra infrastruttura
Un’applicazione Jmix è un’applicazione Spring Boot e sta dove stanno gli altri vostri sistemi, con il vostro monitoraggio e i vostri backup. Possiamo ospitarla durante la realizzazione; andare in produzione sull’infrastruttura di un fornitore crea una dipendenza che nessuno ha scelto.
05 · Passaggio di consegne provato
Il test in cinque passi qui sopra, eseguito alla fine di ogni fase da una delle vostre persone. I problemi trovati nella prima fase sono il lavoro di una mattina. Trovati alla fine, sono una negoziazione.
06 · Assistenza, opzionale
Un ambito definito e un tempo di risposta definito, se lo volete. La misura del lavoro è che potreste scegliere qualcun altro — o nessuno — senza che il sistema ne soffra.
Domande adiacenti
Tre casi in cui questo è lo strumento sbagliato
Avete il team, non le braccia
Se avete già la conoscenza del dominio e la direzione tecnica, comprare un’intera consegna significa comprare qualcosa che avete. Quello che vi serve è capacità — quanti, in quanto tempo e chi dirige cosa
La piattaforma non è ancora scelta
Allora una proposta di realizzazione è prematura e qualsiasi numero al suo interno è decorazione. La prima domanda richiede da due a cinque giorni e a volte finisce con un no — che cosa esamina una revisione e che cosa produce
Usate già CUBA Platform
Allora non si tratta di un sistema nuovo, qualunque cosa dica la voce di budget. La maggior parte si sposta senza modifiche e il costo sta in una parte piccola e identificabile — cosa si sposta, cosa viene riscritto, cosa non ha un sostituto
Domande
Quelle che decidono il contratto
Di chi è il codice alla fine?
Vostro, dal primo commit e non dall’ultima fattura. Il lavoro si svolge nel vostro repository, sotto la vostra organizzazione dove questo è possibile, e nel nostro solo finché il vostro non esiste. Il framework Jmix è Apache 2.0, quindi nelle fondamenta non c’è nulla che possiamo trattenere. Qui non c’è nessun accordo di escrow perché non c’è nulla da depositare.
Cosa succede se a metà strada rompiamo i rapporti con voi?
Prendete il repository, il runbook e i registri delle decisioni, e andate avanti — ed è per questo che il test di passaggio di consegne descritto in questa pagina viene eseguito alla fine di ogni fase e non una volta sola alla fine del progetto. Un fornitore che si può sostituire solo al prezzo di una riscrittura ha un incentivo che preferiamo non avere. Il lato commerciale è un periodo di preavviso e una fattura per il lavoro svolto; il lato tecnico dovrebbe essere un non evento.
Lavorate a prezzo fisso?
Per una fase che riusciamo a vedere, sì, e ci mettiamo un numero prima che inizi. Per un intero sistema i cui requisiti sono ancora in corso di scoperta, un prezzo fisso è una scommessa, e la parte che la perde paga in margine o in un anno di discussioni su cosa fosse compreso. Quindi fissiamo la discovery, poi fissiamo il primo rilascio, poi fissiamo ogni ondata. Se qualcuno quota all’euro un sistema da un anno prima della discovery, chiedete cosa ha assunto — la risposta è di solito "la versione ottimistica di tutto".
Questo ci vincola a Jmix?
Al framework, nella misura in cui qualsiasi framework trattiene il codice che plasma — esattamente come fanno Spring, Django o Rails. Non a noi, e non a un canone di runtime: la licenza è per postazione di sviluppo e vale mentre si sviluppa, non mentre gli utenti usano il sistema. La domanda giusta è più circoscritta, e riguarda gli add-on premium più che il framework. Vedete la sezione qui sopra: alcune funzionalità stanno in livelli a pagamento, e vi diciamo a quali vi impegnerebbe una scelta progettuale finché la progettazione può ancora cambiare.
Chi lo gestisce in produzione?
La vostra infrastruttura, per default e per preferenza — un’applicazione Jmix è una normale applicazione Spring Boot e sta dove stanno già gli altri vostri sistemi, con il vostro monitoraggio e la vostra politica di backup. Possiamo farla girare noi durante la realizzazione se non avete ancora dove metterla, ma un sistema che va in produzione sull’infrastruttura del fornitore tende a restarci, e quella è una dipendenza che non avete chiesto.
Lo mantenete voi dopo?
Se lo volete, con un ambito definito e un tempo di risposta definito, non con un canone a tempo indeterminato. Ma questa pagina è costruita intorno all’esito opposto: la misura di un buon passaggio di consegne è che il contratto di assistenza sia opzionale. L’abbiamo fatto così e lo abbiamo detto pubblicamente — Smart Comune è in funzione dal 2020 e la nostra parte è terminata al passaggio di consegne.
Prossimo passo
Partite dal flusso di lavoro, non dal sistema
Diteci l’unico processo che fa più male e di chi è. È abbastanza per una discovery, e una discovery è abbastanza per sapere se il resto vale la pena.
Discovery, poi un numero
L’ambito del primo rilascio, un elenco dei rischi e un prezzo fisso per la fase — o la raccomandazione di non costruirlo, che costa uguale.
ContestoChe cos’è Jmix, senza la brochure
Il modello di licenza spiegato come si deve, il tipo di progetto a cui si adatta e quelli a cui non si adatta.