Nel corso della guida guida abbiamo analizzato i "project management antipatterns", descrivendo i più frequenti e pericolosi nemici della comunicazione. Poi abbiamo affrontato i "software architecture antipatterns" che rappresentano gli ostacoli ad un'architettura di qualità; in quest'ultima fase analizzeremo le trappole legate allo sviluppo del software: software development antipatterns.
La scrittura del codice rappresenta una fase cruciale nello sviluppo del software. Produrre codice di qualità significa non solo avere sorgenti più leggibili, facili da modificare, da aggiornare, da testare o da riutilizzare, ma significa anche (soprattutto) ridurre al minimo (eliminare completamente, purtroppo, non è possibile) il rischio della presenza di errori.
Sviluppare software che richiede talento, intuito, preparazione ed esperienza (c'è chi sostiene addirittura sia un'arte!). Come ogni altra attività "umana" non è immune da errori. Gli errori implicano operazioni di correzione, il cui costo è legato alla fase in cui esso viene "scoperto", per ridurre al minimo tali spese, sarebbe bene cercare di correggere i "frutti delle distrazioni" nella stessa fase in cui vengono introdotti.
Produrre codice di qualità è essenziale per il corretto sviluppo del sistema e per la sua manutenzione. Non è sufficiente "buttar giù" righe di codice per produrre un software, non basta conoscere un "linguaggio" per definirsi programmatori, così come non basta veder funzionare la propria applicazione per affermare che sia valida. La qualità è essenziale, è quel valore aggiunto che distingue uno sviluppatore professionista da uno "scrittore di codice improvvisato".
La mancanza di qualità non è sempre e solo dovuta alle capacità dello sviluppatore. Spesso le pressioni del committente, le scadenze troppo ristrette, la necessità di delegare compiti, le sempre più limitate risorse destinate all'implementazione e la frequente necessità di lavorare a più progetti contemporaneamente, rende sempre più difficile produrre codice privo di "difetti".
Inotre può non essere sufficiente saper scrivere codice di qualità. Un abile sviluppatore sa anche rimediare a errori commessi da altri, in modo efficiente e professionale. Infatti un buon programmatore non si distingue solo per la qualità delle sue implementazioni ma anche per la qualità delle soluzioni che sa
applicare e le migliorie che riesce ad apportare.
Il refactoring del software è una metodologia valida per ottimizzare la struttura del software. La struttura finale, successiva alla fase di refactoring non deve necessariamente rispecchiare l'assetto originale previsto. La struttura muta perché i programmatori capiscono l'importanza di rispettare dei vincoli, inoltre essi imparano ad applicare metodologie di lavoro che cambiano il contesto delle soluzioni codificate. Se usato in modo consapevole, il refactoring risulta essere un'attività naturale nel processo di programmazione.
Detto questo non ci rimane che procedere alla nostra analisi degli antipattern più comuni legati alla fase di programmazione. Anche in questo caso abbiamo deciso di offrire una panoramica sui software development antipatterns più popolari e significativi.