Ho trovato su Medium un articolo interessante dal titolo Code Something Weekly: How and Why. Ne faccio un riassunto, perché è una considerazione interessante sul perché lavorare su progetti piccoli e fattibili, a cadenza settimanale.
3 animali per 3 progetti
L’autore del pezzo, Gregory ‘Grey’ Barkans, divide tutti i diversi progetti potenziali e reali in 3 categorie:
- Progetti coniglio
- Progetti cavallo
- Progetti elefante
È una divisione fatta non in base alla dimensione del codice da scrivere ma delle capacità e delle risorse di tempo e denaro necessarie per completare un singolo progetto.
I progetti coniglio sono quelli più piccoli, in genere web app, che possono essere sviluppati rapidamente e pubblicati appena sono pronti. Non importa che siano perfetti, vengono raffinati e migliorati man mano dopo il lancio, aggiungendo o cambiando in base all’utilizzo effettivo che viene fatto dagli utenti. Per gestirli è sufficiente una TODO list
. In forma di elenco,
- svolgono una sola azione, o comunque hanno una serie di operazioni strettamente correlate
- non richiedono analisi dei requisiti, o del mercato, o altro
- se il progetto si evolve nel tempo, è per lo più per correggere bug o piccoli aggiustamenti, aggiornare le dipendenze delle librerie e cose così
- per completare un progetto “coniglio” occorrono da 1 a 14 giorni.
I progetti cavallo non sono necessariamente grandi progetti, con una miriadi di opzioni. Possono anche essere delle semplici web app, ma richiedono comunque molte competenze e la necessità di coordinare il lavoro di più persone. Richiedono un livello di organizzazione più alto e una gestione più accorta delle scadenze. In sintesi:
- può essere definito come una raccolta di progetti coniglio
- serve un minimo livello di pianificazione, di studio dei requisiti e di scelta del design
- servono dai 30 ai 90 giorni per completarlo.
Infine, i progetti elefante sono grandi progetti che richiedono molte competenze diverse, molta attenzione ai dettagli, la necessità di aver testato tutto alla perfezione e eliminato tutti (o quasi) ii bug del sistema prima anche solo di cominciare a pensare a pubblicare qualcosa. Sono progetti lunghi e impegnativi, e spesso anche molto costosi. L’elenco delle caratteristiche è del tipo:
- c’è un ciclo di aggiunta di nuove specifiche e funzioni che permettono una divisione tra versioni maggiori e minori
- analisi dei requisiti e la pianificazione dell’interfaccia sono fondamentali
- spesso richiedono di sviluppare delle API specifiche per essere completati
- richiedono almeno 6 mesi, più frequentemente un anno, per essere finiti.
Da questa divisione ne consegue un’altra: quanti progetti possiamo fare in un anno? In maniera indicativa possiamo dire:
- 1 progetto elefante in un anno, e nel contempo mantenere aggiornati i progetti vecchi
- 4 progetti cavallo in un anno
- da 2 a 4 progetti coniglio al mese
Va da se un’altra considerazione: tendiamo, o per lo meno io tendo, a imbarcarmi in progetti elefanti, progetti che poi generalmente naufragano nel nulla. Lavorando, invece, in progetti coniglio si può arrivare a chiudere da 24 a 48 lavori in un anno.