Molto spesso i miei clienti mi chiedono alcuni suggerimenti in merito alla redazione di un contratto di sviluppo di una web app. In questo articolo, riprendendo alcune considerazioni già espresse in un precedente articolo, vi parlerò della mia esperienza di avvocato e (aspirante) sviluppatore, cercando di fornire alcuni consigli utili.
Il contratto di sviluppo di una web app: non si scrive più nulla da zero!
“Write less, do more”. Si tratta della tagline di una delle più famose librerie javascript, vale a dire jquery. Per chi non lo sapesse, jquery vi consente di utilizzare un set di funzioni preimpostate per applicare una serie di gradevoli effetti javascript sulle vostre pagine web.
Il senso di quest’approccio è molto semplice.
Invece di scrivere da zero righe e righe di codice, si utilizza il codice scritto da altri e disponibile in rete.
Ad esempio, se volessi nascondere un determinato testo da una pagina HTML, cliccando su un bottone potrei utilizzare la seguente sintassi:
Come si può ben vedere, lo sviluppatore è tenuto a scrivere una piccola porzione di codice, in quanto le funzioni ready(); click(); hide(); sono definite e contenute all’interno della libreria jQuery che viene richiamata nel documento HTML attraverso il tag <script src=””></script>, specificando il relativo path
La questione legale che si pone è la seguente: ci sono restrizioni all’utilizzo di jQuery in un progetto software?
Tutti sappiamo che jQuery è un progetto open source (ciò significa che il codice sorgente è “aperto”) per cui la prima risposta sarebbe: no, non c’è nessuna restrizione.
Per rispondere alla domanda in modo più esaustivo, tuttavia, occorre esaminare le condizioni della licenza OS applicata, ovverosia la MIT License.
The MIT License (MIT)
Copyright (c) <year> <copyright holders>
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
La licenza, in buona sostanza, concede all’utente il permesso (permission) di utilizzare, modificare, redistribuire la libreria jQuery, per qualsiasi finalità, commerciale e non commerciale. Ma l’informativa sul copyright deve essere inclusa all’interno del programma derivato (e aggiungerei io, anche all’interno dei Termini e Condizioni di utilizzo).
Si pone un secondo problema: si può inserire nel contratto di sviluppo di una web app una clausola in cui lo sviluppatore garantisce la piena originalità del Programma?
A mio avviso, la risposta deve essere negativa! Nel caso dell’utilizzo della libreria jQuery, pur essendoci una licenza estremamente ampia, lo sviluppatore non può affermarne la piena titolarità. Sarebbe preferibile inserire una specificazione all’interno della clausola, ove si escludano dall’ambito della garanzia le eventuali componenti OS utilizzate (es. jQuery), indicando le relative condizioni di licenza.
Quali sono le regole fondamentali da osservare nella costruzione di una web app?
- Verificare quali librerie siano utilizzate (es. jQuery, ReactJS, Angular JS, Bootstrap ecc.)
- Leggere con attenzione le condizioni di licenza applicabili (es. le condizioni della MIT license sono diverse dalla GPL, v.3)
- Verificare che non ci siano restrizioni e/o ostacoli alla realizzazione della web app.
- Specificare nel contratto di sviluppo di una web app le librerie utilizzate e le condizioni di licenza applicabili.
L’immagine del presente articolo è realizzata da Ruiwen Chua