Non esiste un programmatore che fa il lavoro di dieci programmatori. Un buon programmatore fa lo stesso lavoro di un programmatore orinario, ma risolve dieci problemi alla volta
Non esiste un programmatore che fa il lavoro di dieci programmatori. Un buon programmatore fa lo stesso lavoro di un programmatore orinario, ma risolve dieci problemi alla volta.
Programmare è fondamentalmente un discorso di progettazione.Un buon progettista di ponti non fa il lavoro di dieci progettisti di ponti; il buon progettista di ponti fa un buon ponte nello stesso tempo che serve a un progettista di ponti mediocre a fare dieci ponti mediocri.La migliore approssimazione possibile è che ogni problema ha una certa grandezza e una certa complessità. La grandezza determina quanto tempo il problema richiederà per essere risolto, e la competenza dello sviluppatore non conta per questa misura. La complessità determina quanto uno sviluppatore deve essere bravo per fare un qualisasi progresso. Se si hanno solo problemi semplici, un buon programmatore non porta alcun beneficio, a meno che il programmatore non riesca a trasformare un problema grande e semplice in tanti piccoli problemi complicati.Se hai un problema complicato, dieci programmatori mediocri potranno lavorarci sopra per secoli senza alcun risultato.Esiste poi una particolarità relativa ai computer: i computer possono risolvere al tuo posto problemi semplici, ma istruirli in modo che lo facciano in modo corretto è dannatamente complicato. D’altro canto risolvere questo grosso problema significa risolvere molti problemi semplici.Un altro problema complicato è scrivere una libreria magica che trasforma una serie di problemi difficili in problemi abbastanza semplici da poter essere affrontati da programmatori mediocri. Se hai dieci programmatori che lavorano essenzialmente allo stesso problema, un buon programmatore può raddoppiare la loro produttività.Se si hanno dieci persone che fanno data entry, un buon programmatore può fare in modo che le dieci persone si occupino di cose più interessanti; se si hanno dieci sviluppatoi che lavorano allo stesso problema, un buon programmatore può raddoppiare la loro produttività. In entrambi questi casi il buon programmatore produce qualche cosa che non fa parte direttamente del progetto, ma i benefici sono dell’ordine di dieci programmatori mediocri.E se il buon programmatore riduce la complessità del problema in modo da renderlo alla portata del resto del team, il progetto trarrà maggior vantaggio dal lavoro del buon programmatore più che dal lavoro del resto del team.Ovviamente, se si ha necessità di un buon programmatore per fare esattamente lo stesso lavoro di un programmatore mediocre, non si avrà alcun beneficio.Fonte
8 Dicembre 2007
Categorie: Project Management
Articoli simili
- Panoramica IDE per Ruby e Rails
- Metaprogrammazione in Ruby
- Disqus rilascia le proprie API
- Rails 2.1.1: rilasciata nuova versione di Ruby on Rails
- Rails 2.1 e ottimizzazione Active Record