Ho notato che i miei clienti, aziende o persone che vogliono avere una propria applicazione per iPhone, iPad o Android (le cosiddette app mobile), rispetto ai codici sorgenti si dividono sommariamente in 3 categorie:

  • quelli che hanno una vaga idea di cosa siano</li>
  • quelli che non si fidano: a volte sapendo di cosa si tratti a volte no, li vogliono assolutamente
  • i saggi: quelli che se gli servono davvero li vogliono. Altrimenti preferiscono uno sconto

Un articolo di un blog è un modo per poter spiegare alle persone alcune cose su cui evidentemente c’è bisogno di far chiarezza. Cercherò allora di raccontare cosa sono i sorgenti, a cosa possano servire a chi vuole avere una applicazione iOS o Android e perché si cerca di farli pagare come extra al cliente.

Cos'è il codice sorgente?

Le app sono programmi per computer. I programmi vengono scritti dagli sviluppatori sotto forma di codice sorgente Dal codice sorgente viene generato il programma eseguibile che è quella cosa che ci scarichiamo sul telefonino dall’Apple App Store o dall’Android Market. Ovvero il classico programma dei nostri computer da scrivania.

Ciascun programmatore scrive questi codici in modo differente. I programmatori più bravi sono quelli che scrivono codice facile da mantenere: un codice che è stato scritto con l’intenzione di facilitarne la comprensione da parte di altri programmatori e non solo con quella di produrre un programma efficiente per la macchina.

Un codice scritto male può essere davvero incomprensibile anche alla stessa persona che l’ha scritto. Magari genera un programma che funziona abbastanza bene, ma la correzione di bug, il riutilizzo e la modifica risultano talmente dispendiosi da rendere la sua riscrittura più conveniente.

Una caratteristica del codice scritto bene è, invece, che si può riutilizzare. Raramente un programmatore riscrive ciascuna app da zero. In genere prende il codice di una app analoga che ha già scritto, o del codice open source dalla Rete e lo modifica o lo riadatta. Il risultato è quello di risparmiare un sacco di tempo, di commettere meno errori, di evitare il lavoro noioso e ripetitivo.

Come posso avere i codici sorgenti della app che comissiono?

Per i sorgenti valgono le norme del diritto d’autore in modo analogo al testo di un articolo di giornale o alla musica di un brano. Il sorgente nasce di proprietà di chi lo scrive e nella maggioranza dei casi non è il software che si vende, ma la licenza d’uso sul programma e/o sui sorgenti.

La cosa è analoga all’acquisto di un CD musicale, un giornale o un libro. In questi casi si acquista il diritto di ascoltare o leggere le parole e non quello di riutilizzarle o modificarle. A meno di non acquistare, a parte, anche i diritti di pubblicazione o riutilizzo.

Sento una voce: “Ma io ti sto chiedendo di scrivere una app, è come se ti chiedessi di scriverlo il libro! Mica sto comperando una cosa già scritta!”

Certo. Però se tu commissioni a uno scrittore un libro in esclusiva solo per te (ad esempio per la sceneggiatura di un film che stai producendo), ti costerà molto di più che commissionare la stessa sceneggiatura lasciando all’autore la possibilità di pubblicarsela a suo nome per conto suo, o di riutilizzare la trama in un altro romanzo, o di rivendere la storia a chi ci farà poi un fumetto.

Si tratta di trovare la convenienza economica.

I sorgenti possono o rimanere di proprietà dello sviluppatore, o venire ceduti in toto (cessione di tutti i diritti), o venire ceduti in modalità esclusiva o non esclusiva, o sotto altre formule. In particolare la cessione non esclusiva prevede che sia il committente che lo sviluppatore possano entrambi utilizzare i sorgenti.

Mi serve il codice sorgente se commissiono una app per iPhone o Android?

Abbiamo visto che il possesso dei codici sorgenti di una app serve a poterla modificare, migliorare, ampliare. E a scrivere altre app in modo più efficiente.

Chi commissiona una app, ad esempio per iPhone, dovrebbe cercare di rivolgersi a una azienda o a una persona con cui sente di poter avere un rapporto di fiducia.

Spesso capita, invece, che l’interesse per i sorgenti sia più spinto dalla diffidenza e dalla paura di rimanere legato allo sviluppatore che da reali necessità pratiche o economiche. Spesso, in questi casi, l’avere acquistato i diritti sui sorgenti è solo un costo in più. Passare da uno sviluppatore all’altro è sempre un costo e il passaggio non è detto risolva eventuali problemi. Se, poi, i sorgenti sono scritti male, si rischia di dover comunque rincominciare tutto daccapo.

In questi casi lasciare che sia lo sviluppatore ad occuparsi dei sorgenti vuol dire un grattacapo in meno e un costo finale ridotto. L’importante è scegliere lo sviluppatore giusto!

Può accadere, piuttosto, che un azienda, trovandosi temporaneamente priva di risorse interne, provi a rivolgersi a un freelance per la scrittura di codice che, in seguito, vorrà proseguire da sé. In questi casi è ragionevole che il freelance cerchi di farsi pagare il valore aggiunto dell’outsorcing, della cessione del codice e delle proprie capacità personali. In questi casi si può valutare la licenza in esclusiva su alcune parti e non in esclusiva su altre, anche se, devo dire, ci si sente in genere dire semplicemente “vogliamo tutti i sorgenti”.

Infine ricordiamo che naturalmente c’è anche l’interesse da parte di chi sviluppa di tenere legato a sé il cliente, che dovrà rivolgersi a chi detiene il codice nel momento in cui volesse ampliare la sua app. Ma se il cliente è soddisfatto del lavoro e del prezzo pagato, perché non dovrebbe farlo?

Cerchiamo dunque di armarci di buon senso e di trovare degli accordi vantaggiosi per tutti.

Negli USA le grandi corporation stanno spendendo miliardi di dollari in cause reciproche sui brevetti software perché la legislazione è talmente inadeguata da spingerli farsi la guerra a suon di avvocati. Ma a noi non interessa essere clienti degli avvocati… giusto? :)