Posts | marzo 2008

05/03/08

Agile Software Development…

Le Metodologie Agili stanno facendo molto parlare di sè. Recenti sondaggi dimostrano come la popolarita di queste metodologie (XP, Scrum, TDD) dal 2005 ad oggi sia costantemente in ascesa. Ma in quali contesti reali queste metodologie sono applicate con successo? Ovvero.. in quali contesti rappresentano un reale vantaggio (anche economico!) nello sviluppo? Secondo alcuni se il beneficio derivante dall’adozione di queste metodologie era decisamente “sottostimato” fino a qualche anno fa, ora probabilmente è addirittura “sovrasimato”.

E’ sicuramente vero che non si può certo pretendere di ridurre il tutto ad una semplice metodologia, impacchettarla, infiocchetterla ed inserirla in azienda sperando che tutto magicamente funzioni… la vera potenza di tutta la metodologia è il team, ovvero le persone che lo compongono. Ad oggi ci sono aziende che pretendono di essere agili, senza implementare l’essenza dell’approccio. Il consiglio è quello di essere “pratici” e di non accettare la metodologia come un credo religioso ma di utilizzarla sempre con spirito critico. Un esempio:

  • Status Meeting – un incontro mattutino ed una mail serale di riscontro
  • Short Iterations – mantenere i cicli di sviluppo semplici e brevi ed espandere secondo necessità
  • Continuous Integration – test JUnit automatici e altamente parallelizzati
  • Minimal Documentation – può bastare Javadoc…
  • Team Collaboration Tools – wiki e Jira tickets…
  • Strict Coding Guidelines – uniformità nello stile, naming, spacing…
  • Constant Code Reviews – controllare ogni riga di codice che va in produzione!
  • Pair Programming – scegliere oculatamente l’accostamento tra i 2 developers (rotazioni)
  • TDD – nella forma “pura” rischia di essere troppo oneroso, si può valutare un compromesso…

Per approfondimenti: