L’artigiano del software

swcraftmanship-smaller-web

Chi è l’artigiano? Nella definizione classica l’artigiano è : “Chi esercita un’attività lavorativa a livello famigliare o con un apporto limitato di operai, per la produzione di beni o servizi e parti di oggetti non di serie, artistici o no.”

Può il concetto di “artigiano” essere applicato al mondo dello sviluppo software? Noi sviluppatori cosa siamo in verità? Consulenti? Liberi professionisti? Oppure siamo degli artigiani del software? Esiste una formalizzazione di questo concetto?

Dalla definizione che abbiamo dato possiamo dire che un artigiano:

  •  Ha un apporto limitato di operai
  •  non produce oggetti di serie

In genere il software sviluppato da “un programmatore freelance” non è mai “di serie”. Si tratta spesso di progetti molto specifici o di progetti che usano software di serie o open source per essere adattati alle esigenze specifiche di un committente.  Il programmatore freelance spesso si avvale del lavoro di altri collaboratori ma difficilmente può permettersi di avere degli “operai” alle sue dipendenze.

L’artigiano non è soltanto un professionista che crea dal nulla degli oggetti con dei materiali ma mette parte di se stesso nel processo di creazione. Un prodotto artigianale è un prodotto unico in cui si mescola conoscenza e migliori pratiche. Questo accade anche per l’artigiano del software. L’artigiano del software conosce molto bene la teoria ma è bel calato nella pratica data dall’esperienza e dalle migliori pratiche apprese durante lo svolgimento di progetti.

Anche nelle grandi aziende in cui i processi sono molto standardizzati, il processo creativo è unico ed è legato alla personalità dello sviluppatore.  Esiste un movimento chiamato “Software Craftmanship Manifesto” che ha formalizzato questi concetti. Il manifesto parte dallo sforzo di definire il processo di sviluppo software. L’idea di base è che il processo software sia molto di più un processo artigianale che una disciplina dell’ingegneria. Il manifesto si intreccia e da supporto alle ormai consolidate “metodologie agili”. Chi ha sviluppato software per anni sa bene che il processo di sviluppo per quanto standardizzato attraverso pattern e pratiche rappresenti sempre un momento di assoluta creatività. Per chi volesse approfondire, lascio alcuni link sull’argomento.

Riferimenti :

Lascia un commento