Perchè rendere pubblico il proprio codice

E’ di qualche giorno fa il rilascio della prima versione (in realtà molto beta) di iPampics, il piccolo progetto di photo gallery scritto in PHP.
Come anticipato, voglio spendere 5 minuti per spiegare il perchè abbia reso pubblico, e scaricabile, quei pochi kappa di codice.

Crescita controllata. Ogni grande software ha iniziato ad emettere i primi vagiti sotto forma di piccola applicazione ancora non ben sviluppata. Rilasciare periodicamente nuovi aggiornamenti e funzionalità del software aiuta a studiarne bene l’architettura, focalizzando sulle features che si vogliono prioritarizzare; si tenderà quindi a sviluppare step by step, ma con una visione chiara di quali sono gli orizzonti che si vogliono raggiungere.

Esercizio di stile. C’è una bella differenza tra un software funzionante ed uno fruibile. iPampics, per esempio, era funzionante già diverso tempo prima del rilascio; il pensiero che però il tuo software possa davvero finire in mano a qualcun altro, ti porta a rigiudicare le scelte effettuate, dall’architettura allo stile di coding. E poi, la documentazione, importantissima: i vari Readme per gli utenti, e i commenti al codice, magari utilizzando doxygen, per gli eventuali sviluppatori. Con tutto vantaggio non solo loro, ma anche nostro.

Fonte di stimoli. E se qualcuno finisse davvero per utilizzare il nostro software? E ci arrivassero feedback, idee, critiche, consigli? Non c’è dubbio, ne trarremmo sicuramente giovamento. Saremmo spronati a migliorare quello che già avremo fatto, con l’effetto collatterale di migliorare noi stessi come professionisti. In fondo, rendere pubblicamente visibile qualcosa scritto di proprio pugno, in ogni sua forma, è un modo per mostrarsi, aprirsi al confronto e, con la giusta dose di umiltà, arrivare a capire dove si sbaglia. E ho menzionato le possibili collaborazioni che potrebbero nascere?

Rimangono comunque delle questioni poco chiare che devo ancora approfondire. Come, per esempio: con quale licenza pubblicare il mio software?

  • Digg
  • del.icio.us
  • Facebook
  • StumbleUpon
  • Technorati
  • Twitter

Tags: , ,

Leave a Reply