Questo post di PierG dichiara una tra le cose più importanti che ho imparato in questi ultimi tre anni di lavoro:
Quando il tuo software si è trasformato in un ammasso di codice legacy, rifarlo da zero probabilmente è la cosa peggiore. Infondo i problemi di quel codice sono comiciati quando il software è stato scritto da zero: perché dovrebbero andare meglio riscrivendolo da capo ancora allo stesso modo ?
In linea con una ipotesi che avevo condiviso qualche tempo fa: Il codice quando è Legacy lo è dal momento stesso in cui viene scritto
Il punto è che scrivere codice di qualità (tanto da durare 5-10 anni, attraversare diverse tecnologie, integrarsi in un ambiente enterprise con altrettante tecnologie, crescere sino a 100naia di 1000gliaia di righe tanto che nessun developer da solo possa averne il controllo) è estremamente difficile !!! Come fare allora ?
Cosi :
- le linee guida in questo comment sono utili
- formazione avanzata: oltre ai corsi di design, refactoring e architettura fatto su codice nuovo e progetti di esempio sono utili corsi che affrontano le situazioni reali che si incontrano in produzione ossia che partono con codice esistente
- questo post da indicazioni su come imparare cose difficili come la programmazione di qualità (le trovo in sintonia con l'esperienza che ho fatto affrontando argomenti difficili): http://www.infoq.com/news/2009/01/TDD-Adoption-Mark-Levison
- il supporto e la responsabilità del management, un estratto da Lean Software Development: An Agile Toolkit
We notice that organizations that hold technical leaders in high esteem seem to have plenty of these leaders grow up from the ranks.
...
People respond to the expectations of their management. Software development leaders will not flourish in an organization that values process, documentation, and conformance to plan above all else. An organization will get what it values, ... (qui il testo completo)
Una volta acquisito lo skill che serve per scrivere davvero codice di qualità, l'articolo likato da PierG svela come fare :
Rather, it means that you are going to adopt the “Boy Scout Rule” and check each module in a little cleaner than when you checked it out.
Tags :
Team Work |
Agile |
Lean Agile |
Pratiche |
Leadership |
Progettazione Software |