Il time-to-market (TTM) è davvero un fattore importante per molte aziende, specialmente per le startup. Quando si tratta di prodotti software, TTM si traduce in integrazione continua e implementazione continua . L'idea qui non è che spedisci il codice buggy, ma che spedisci software pienamente funzionante su base regolare. Sebbene la frequenza varia da squadra a squadra, non è insolito che alcune aziende e team spediscano più volte al giorno , il che fa una grande differenza rispetto ai team in cui una funzionalità può essere spedita per sei mesi a una alcuni anni più tardi, dopo essere stato richiesto dal proprietario del prodotto.
In un contesto di implementazione continua, al fine di evitare che il codice bacato colpisca la produzione, i team stanno utilizzando test automatizzati approfonditi. Invece di spendere sei mesi per sviluppare una funzionalità e poi gestirla per il reparto di controllo qualità per una fase di test-fix-test di otto mesi, quei team scrivono test nello stesso momento in cui scrivono il codice. Questi test vengono eseguiti su ogni commit e, se una qualsiasi delle migliaia di test ha esito negativo, il prodotto non viene distribuito sui server di produzione e gli sviluppatori vengono informati che hanno interrotto la compilazione .
Si noti che TTM si traduce anche in un approccio di marketing (e non tecnico) che consiste nel dire che è più importante spedire un prodotto spesso incompleto e imperfetto ora, e vedere come gli utenti effettivi lo useranno, cosa vorrebbero, e dove avrebbero incontrato difficoltà. Sulla base di questo feedback, il prodotto viene quindi adattato alle esigenze dei clienti. Recentemente (vale a dire negli ultimi venti anni), questo approccio ha avuto successo e si è dimostrato efficiente in un contesto di startup, rispetto a un approccio ordinario consistente nel fare ricerche di mercato e molti studi prima dello sviluppo del prodotto.
L'analogia
Hai chiesto delle analogie casa / barca, quindi eccole qui.
Integrazione continua.
Immagina di costruire una barca. Potresti passare alcuni mesi a costruirlo, quindi metterlo in acqua e notare che ci sono alcuni difetti di ingegneria e di costruzione. Devi correggerli prima di poter usare la barca.
Invece, puoi costantemente testare come la tua barca si comporta mettendola in acqua ogni giorno. Quando commetti un errore di progettazione o di costruzione, riceverai un feedback entro un giorno che mostra che il cambiamento che hai apportato alla barca durante questo o il giorno precedente ha causato un problema.
Questo potrebbe non essere adatto per una barca, dal momento che queste cose potrebbero non galleggiare bene se sono costruite per metà (ad esempio se non sono ancora state dipinte). Per i prodotti software, tuttavia, anche una piccola caratteristica di un prodotto che non è stato ancora costruito può essere già testata, rendendo i prodotti software i candidati ideali per l'integrazione continua.
TTM in marketing.
Immagina di costruire una casa. Potresti passare alcuni mesi a costruirlo e mostrarlo al proprietario, solo per sapere che voleva una piscina dall'altra parte del giardino, e che si aspettava altre due finestre e un tetto diverso.
Oppure puoi consentire al proprietario di accedere al sito di costruzione una volta alla settimana per ricevere un feedback molto rapido, quando non è ancora troppo costoso apportare alcune modifiche.
Anche in questo caso, l'analogia non è perfetta, perché (1) il proprietario non può vivere nella casa che non è ancora stata costruita (mentre gli utenti possono iniziare a utilizzare un prodotto software privo di metà delle sue caratteristiche ), e perché (2) i cambiamenti strutturali saranno estremamente costosi da eseguire una volta iniziata la costruzione (che spesso non è il caso per i prodotti software che sono stati costruiti correttamente).