16 febbraio 2010

Cosa rende uno sviluppatore grande?

Prima di tutto un grande sviluppatore è uno che scrive codici di buona qualità, o almeno cosi dovrebbe essere, ed è proprio questa la questione sollevata dallo sviluppatore Namid Azimi sul blog MSDN: “what makes a great developer?” La risposta alla domanda non è facile, in quanto egli stesso confessa di non conoscere molti grandi sviluppatori, ma non nel senso che non ve ne siano di eccellenti ma nel senso che è difficile stabilire quanto questi si possono veramente considerare “great”.

“I actually started off by thinking about all the great developers that I knew and tried to reason why they're great. The first problem was that I don't really know that many great developers. Now there are plenty of unbelievably talented and intelligent people at Microsoft. There's no question about that. The problem was not with the developers but rather with the definition of great”

Navid Azimi tenta dunque di definire un grande sviluppatore attraverso una lista di attributi:

  • They understand the difference between covariance and contravariance.
  • They use phrases such as referential transparency and idempotent in daily speech.
  • They can quickly and seemingly effortlessly point holes in designs and implementation.
  • They rarely execute code to see "if it works" but rather just write code that just works.

Da questa lista si potrebbe dedurre che un grande sviluppatore è colui che scrive dei codici di qualità, ma in fondo quanti errori si trovano continuamente nei codici???. Lo stesso Navid Azim si dichiara ancora molto lontano dal definirsi tale perché lavora ad un livello di implementazione, invece il grande sviluppatore lavora ad un livello concettuale.

“The implementation can always be improved or optimized (here, optimization is not necessarily a function of performance but likely completeness, correctness, conciseness and clarity). However, the design and problem solving approach provides unparalleled longevity and code quality. It becomes in many ways invisible“

Navid Azim afferma dunque che il grande codice è spesso il codice che non si vede o addirittura a cui non si pensa. Questo è il codice che opera naturalmente come parte del problema, che è già incapsulato in una predetta variazione o è perfettamente aperto alle estensioni per soddisfare nuove esigenze.  Per molti aspetti, il grande codice passa inosservato e non viene apprezzato.

Scrivere grandi codici, secondo Navid Azim, è un lavoro ingrato ed il più delle volte dato per scontato:

“Writing great code is a thankless job”, “We take great code for granted”.

(fd)

Condividi

Commenti

Cosa pensi?

Il tuo commento
6 volte 8 uguale