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:

  1. Progetti coniglio
  2. Progetti cavallo
  3. 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.