IL CODICE SORGENTE...È TUO!
Se non ti è capitato, potrebbe capitarti.
Come diciamo spesso, chi come noi sviluppa i software, parla in codice. Il codice è alla base di tutta l’infrastruttura tecnologica. Dietro a tutto ciò che utilizziamo (gestionali, siti web, app, programmi vari e misti) c’è il linguaggio in codice, quello che permette di far interagire e dialogare la macchina con l’uomo: questo è il codice sorgente. È un elemento fondamentale senza il quale non esisterebbe la tecnologia: chilometriche stringhe che narrano la storia di un’idea, un progetto, un servizio tradotto in una realtà digitale comunicante con l’utente.
Il dizionario Treccani nell’Enciclopedia della Scienza e della Tecnica lo definisce come “Versione di un algoritmo scritta in un linguaggio di programmazione ad alto livello (ossia più vicino al linguaggio umano, tipicamente in pseudo inglese), le cui istruzioni sono poi eseguite dalla macchina mediante appositi programmi (compilatori, assemblatori o interpreti).” In parole semplici si tratta della traduzione in un linguaggio di programmazione comprensibile da un essere umano. Può essere compilato o interpretato per creare un programma eseguibile su un computer o da qualsiasi dispositivo tecnologico. Se scritto nella maniera corretta, può avere lunga vita e dunque, rappresentare un investimento a lungo termine. La sua durata ovviamente dipende da molte variabili ma può essere ancora funzionale dopo decenni (con la giusta manutenzione!).
Ora capite quanto sia rilevante scrivere un buon codice e mantenerlo aggiornato costantemente?
QUANTO È IMPORTANTE
Il codice sorgente rappresenta dunque le fondamenta per la creazione e la personalizzazione di un software specifico. Grazie a questo codice noi sviluppatori possiamo comprendere il funzionamento interno di un programma e modificarlo per adattarlo alle proprie esigenze o alle necessità del cliente. È inoltre fondamentale per risolvere eventuali bug, cosa non poco frequente nel nostro mondo anzi… sono all’ordine del giorno e possono causare non pochi problemi all’utilizzo del software. Aspetto ulteriormente importante e in cui crediamo è l’inclusività del codice sorgente: rende possibile la collaborazione tra sviluppatori che possono così lavorare sulla stessa base di codice e condividere le modifiche. Condivisione è crescita e come sappiamo, non si finisce mai di imparare. Alla luce di questo il codice è anche utile per la formazione e l'apprendimento: poiché permette agli sviluppatori junior di esaminare il codice e comprenderne il funzionamento. Conoscere il codice sorgente è importante per diversi - e non trascurabili - motivi:- Collaborazione: il codice sorgente condiviso rende possibile la collaborazione tra sviluppatori, che possono lavorare insieme sullo stesso progetto, condividendo le modifiche e pubblicando un prodotto qualitativamente
- Innovazione: la condivisione del codice sorgente stimola l'innovazione. Gli sviluppatori possono utilizzare e migliorare il lavoro dei developers che potranno subentrare al progetto in un secondo momento
- Trasparenza: condividere il codice sorgente rende cristallino il funzionamento di un programma, aumentando la fiducia degli utenti nel software
- Apprendimento: il codice sorgente condiviso è una risorsa preziosa per la formazione perché permette ai nuovi sviluppatori di esaminare il codice e comprenderne le dinamiche del funzionamento del software
- Ottimizzazione dei tempi: utilizzare un codice già esistente permette di poterlo modificare e migliorare senza dover impiegare notevoli risorse umane o di tempo. Questo comporta un notevole risparmio per chi commissiona lo sviluppo del programma software.
PROPRIETÀ DEL CODICE
La proprietà del codice sorgente dipende dalle leggi sul diritto d'autore e dalle condizioni contrattuali stabilite tra i proprietari del codice e le altre parti interessate. In generale, il codice sorgente può essere di proprietà di un'azienda, di un singolo sviluppatore o di un gruppo di sviluppatori. In alcuni casi, il codice sorgente può essere rilasciato con licenze open source che ne consentono la modifica e la distribuzione da parte di terze parti ma solitamente è il proprietario del codice sorgente che ha il diritto di decidere se cedere o meno il suo codice sorgente a chi lo richiede. C’è prima da distinguere se il codice sorgente in questione è alla base di un software libero o di un software proprietario. Il software libero e aperto è caratterizzato da un codice sorgente reso disponibile al pubblico per essere utilizzato, modificato e distribuito senza restrizioni. Questo tipo di software è spesso protetto da licenze che garantiscono che il codice sorgente rimanga sempre disponibile per la comunità. Il software proprietario invece è un software il cui codice sorgente è di proprietà del suo sviluppatore e quindi non pubblico. Il proprietario del software proprietario ha il diritto di rifiutarsi di cedere il codice sorgente a chiunque lo richieda. In sintesi, il proprietario del codice sorgente ha il diritto di decidere se cedere o meno il suo codice sorgente, a seconda se il software è libero e aperto o proprietario.
IL CODICE, SECONDO NOI
Il nostro modus operandi prevede che il codice sorgente sia proprietà del cliente. Questo è un aspetto per noi fondamentale e imprescindibile, aspetto che mettiamo per scritto nero su bianco sul nostro contratto. Perché abbiamo deciso di lasciarlo a chi commissiona il progetto? Semplice. La nostra policy aziendale si basa sulla trasparenza e sulla libertà. Parole troppo importanti? Ve le giustifichiamo: vogliamo che chiunque si interfacci con noi per realizzare qualsiasi tipo di software possa essere libero di avere la facoltà di decidere del futuro del prodotto pagato. Può decidere di lasciarlo nelle nostre mani per gestirne il suo mantenimento e aggiornamento o può decidere di cambiare strategia, modificare la tipologia di software o semplicemente sostituire il fornitore: nessuna falsa illusione, sono cose che accadono (purtroppo) anche se si spera non avvengano mai. Il codice è la struttura del software del committente e, non poterne usufruire, significa non poter decidere del suo futuro, del suo sviluppo e del suo potenziamento. Privare il cliente della propria idea, della propria volontà (e soprattutto dell'investimento effettuato) a nostro sindacabile parere rappresenta un gesto egoistico e dannoso: senza il codice sorgente un progetto durato anni deve essere ricostruito da zero. Inutile sottolineare gli sprechi di tempi e risorse che questo comporterebbe, con conseguente danno economico e rottura del rapporto di collaborazione. Al termine del lavoro, rilasciare al cliente il codice sorgente non è per nulla scontato ed è per questo che ci piace specificarlo durante le fasi decisionali prima della firma di approvazione contrattuale. Ometterlo può portare spiacevoli sorprese.
Per noi la trasparenza e la chiarezza sono alla base di ogni rapporto sano e costruttivo.