Le verità poco conosciute della programmazione

Quella che segue è la traduzione di un ottimo articolo di David Veksler intitolato Some lesser-know truths about programming autore dal suo blog Dot Mac – Adventures with OS X and DotNet

La mia esperienza come programmatore mi ha insegnato un po’ di cose sullo scrivere software. Ecco alcune di quelle che potrebbero essere sorprendenti.

  • Un programmatore trascorre dal 10% al 20% del suo tempo a scrivere codice, e la maggior parte dei programmatori produce 10, massimo 12 righe di codice di quelle che vanno a finire nel prodotto finale, indipendentemente dal proprio livello di abilità. I migliori programmatori trascorrono il restante 90% a pensare, fare ricerche ed esperimenti per la progettazione. Quelli peggiori invece hanno bisogno di quel 90% a scovare errori cambiando le cose a caso sperando che funzionino.
    “A great lathe operator commands several times the wage of an average lathe operator, but a great writer of software code is worth 10,000 times the price of an average software writer.” –Bill Gates
  • Un buon programmatore è dieci volte più produttivo di uno nella media. Un grande programmatore è da venti a cento volte più produttivo di uno nella media. Non è una esagerazione. Lo dimostrano gli studi effettuati fin dal 1960. Non solo un programmatore scarso rende poco, ma crea lavoro e problemi che altri dovranno risolvere.
  • I programmatori che trascorrono la maggior parte del tempo a scrivere codice sono troppo pigri, o troppo ignoranti, o troppo presuntuosi per cercare soluzioni esistenti a vecchi problemi. I grandi programmatori sono maestri nel riconoscere e nel riutilizzare le giuste soluzioni; inoltre non si fanno scrupoli nel riscrivere continuamente (refactoring) il loro codice per raggiungere un livello di progettazione ideale. I programmatori scarsi scrivono codice che manca di integrità concettuale, ridondante, senza gerarchie, senza pattern, e quindi molto difficile da raffinare. Si finisce per gettare via tutto e ricominciare da capo, piuttosto che cambiarlo.
  • Come tutte le cose, il software è soggetto all’entropia. I continui cambiamenti vanno ad erodere l’integrità concettuale causandone un’inevitabile corruzione, e i programmatori che non tengono in considerazione la suddetta integrità concettuale creano un software che è già completamente svalutato prima ancora che sia terminato. Tale processo è probabilmente la causa più comune del fallimento di un progetto software, subito seguita dal consegnare un qualcosa di diverso da quello che il cliente voleva. La crescita della corruzione del software è esponenziale, e così molti progetti vanno incontro alla scadenza e al termine del budget in maniera esplosiva, prima di essere terminati.
  • Uno studio del 2004 dimostra che la maggior parte dei progetti (51%) software verrà meno ad un requisito critico, mentre il 15% fallirà completamente. Eppure questo è già un passo avanti rispetto al 1994, quando fallirono il 31% dei progetti.
  • Anche se la maggior parte dei software viene realizzata a gruppi gruppi, non si tratta di un’attività democratica. Di solito, una persona sola è responsabile del progetto, ed il resto del gruppo si occupa dei dettagli.
  • La programmazione è un lavoro duro. Si tratta di un’attività mentale molto intesa. I programmatori pensano al loro lavoro 24 ore su 24, 7 giorni su 7. Scrivono la le parti più importanti mentre sono sotto la doccia o durante i sogni. Dato che la maggior parte del lavoro viene fatta lontano da una tastiera, non serve trascorrere più tempo in ufficio o aggiungere altre persone ad un progetto.
Programmer´s aid
“Peccato per il sistema operativo, altrimenti questo è il mondo visto dagli occhi di un programmatore”

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

%d blogger hanno fatto clic su Mi Piace per questo: