In questa guida spieghiamo quali sono le caratteristiche del contratto di sviluppo software e mettiamo a disposizione un fac simile di contratto da scaricare.
Contratto di Sviluppo Software
Negli ultimi anni, vista la continua evoluzione tecnologica, il contratto di sviluppo software ha avuto una crescente diffusione. Questo accordo atipico non consente di disciplinare anche rapporti di fornitura continuativi nei quali non viene stabilita la consegna finale.
Vediamo, più nel dettaglio, in cosa consiste il contratto di sviluppo software, le riconducibilità con il contratto d’opera e con l’appalto, oltre che le implicazioni che riguardano il diritto d’autore.
Che cos’è esattamente un software, altrimenti chiamato programma per elaboratore? Si tratta di un bene immateriale, composto da un insieme strutturato e organizzato di simboli e istruzione, attraverso il quale sarà possibile svolgere una funzione, un compito e ottenere un risultato.
I programmi vengono tutelati come opere di ingegno, ovvero dall’articolo 2 della Legge 633/1941 in tema di Diritto d’Autore. La norma prevede che sono inclusi nella protezione anche i programmi per l’elaborazione espressi in qualsiasi linguaggio, a condizione che siano originali, in quanto rappresentano il frutto di una creazione intellettuale.
Non sono oggetto di tutela, invece, idee e principi che stanno alla base degli elementi del programma, compresi quelli che riguardano le interfacce. Il termine programma si riferisce inoltre al materiale preparatorio per la progettazione.
Bisogna poi far presente che in base all’articolo 45 del codice della proprietà industriale, ovvero del D. Lgs n. 30/2005, viene escluso che queste opere possano essere brevettate.
In linea generale sono ammessi tre distinte modalità di sfruttamento del software, ovvero
-cessione
-licenza
-contratti di sviluppo.
In merito a quest’ultima forma di sfruttamento sono tanti gli aspetti da trattare ed è proprio su questi che si concentra la presente guida.
I contratti di sviluppo software sono atipici e permettono di disciplinare i rapporti tra i soggetti che richiedono la realizzazione di un custom made software, detti committenti, e i professionisti sviluppatori, software house o freelance, chiamati concedenti, ovvero gli incaricati della realizzazione del progetto.
Il programma, che avrà le caratteristiche volute dal cliente, dovrà essere consegnato nel rispetto di un termine stabilito dalle parti di comune accordo. Questo aspetto comporta che il contratto di sviluppo software non possa essere impiegato per disciplinare rapporti che prevedono la fornitura di servizi continuativi, come ad esempio manutenzione del programma, supporto tecnico o bug fixing, cioè tutte situazioni in cui manca la consegna finale.
Per quanto riguarda i soggetti che intervengono nel contratto di sviluppo del software, si distinguono
-il cliente che richiede e andrà ad usare il software
-la software house che sarà incaricata del progetto di sviluppo
-il professionista, che dipende dall’agenzia, cioè il soggetto terzo che provvederà alla realizzazione.
Occorre fare presente che tra le parti non viene instaurato un rapporto di subordinazione e l’obbligazione consiste nella realizzazione di opere dotate di originalità, dietro il pagamento di un corrispettivo.
Naturalmente si possono sempre adottare specifiche cautele in fase di formulazione del contratto, ad esempio in alcuni casi vengono definite il numero di modifiche in corso d’opera con la rispettiva entità, la tempistica per far valere eventuali anomalie e i giorni entro i quali verranno risolte, i termini di esclusività di utilizzo del committente, la durata di garanzia del prodotto e molto altro ancora.
In ogni caso il contratto di sviluppo software richiede la forma scritta ad probationem, ex articolo 110 della Legge sul diritto d’Autore e le parti sono tenute a collaborare fra loro.
Il nostro ordinamento giuridico non prevede una disciplina contrattuale specifica per la fattispecie, aspetto che rende difficoltosa la stesura del contratto, tenuto conto anche della necessità di applicare la Legge sul diritto d’Autore, visto che il software viene considerato un’opera dell’ingegno.
La natura giudica viene determinata dall’aspetto soggettivo del programmatore e di conseguenza di perfezionerà un contratto che potrà essere riconducibile al contratto d’opera previsto dall’articolo 2222 del codice civile e seguenti qualora si tratti di un professionista, nonché al contratto d’appalto, ex articolo 1655 del codice civile e seguenti qualora si tratti di una società. La conseguenza principale sarà il differente regime di responsabilità del programmatore.
-Quando lo sviluppo software è riconducibile al contratto d’opera
In queste situazioni il professionista sarà chiamato ad impegnarsi nello sviluppo del programma, svolgendo un lavoro prevalentemente proprio, quindi con maggiore autonomia. Nonostante le differenti opinioni, si ritiene che in questo caso si configuri un’obbligazione di mezzi e non di risultato.
Questi dubbi, invece, vengono meno con altre tipologie contrattuali per il web, in cui la natura di obbligazione di mezzo resta pacifica. Ad ogni modo, la qualificazione diventa rilevante per ciò che riguarda responsabilità dello sviluppatore, soggetto che sarà eventualmente chiamato a rispondere per le sole ipotesi di danni che derivano da dolo o colpa grave, così come previsto dall’articolo 2236 del codice civile.
-Quando lo sviluppo software è riconducibile al contratto d’appalto
Nel momento in cui il programmatore è una società, il contratto atipico di sviluppo del software si riconduce al contratto d’appalto, nel quale è previsto che lo specialista si impegna ad elaborare il software in base alle esigenze tecniche del cliente.
In buona sostanza verrà instaurata un’obbligazione di risultato e per questo la società che dovrà sviluppare il software metterà a disposizione l’organizzazione dei mezzi necessari, gestendo il tutto a proprio rischio.
Prevalentemente usato per commissionare software personalizzati, la responsabilità di estende alla conformità dello stesso programma, considerate le specifiche richieste ed esigenze tecniche volute dal committente e indicate nel contratto. Inoltre troverà applicazione la garanzia per vizi e difformità ex articoli 1667 e 1668 del codice civile. Com’è facile intuire, quando si configura un’obbligazione di risultato il committente avrà più tutele nell’ipotesi di inadempimento.
In merito alle fasi di sviluppo del contratto è bene far presente che le varie attività possono avvenire sia prendendo le mosse da un nucleo già esistente, quindi da un codice semilavorato e sia avviando uno sviluppo ex novo.
In ogni caso la stipula del contratto implica dei passi fondamentali, in quanto alla fase della progettazione seguirà quella di esecuzione, ma per entrambe si possono sempre sottoscrivere due distinti contratti.
Prima di approfondire queste fasi è necessaria una premessa. Quando il cliente specifica il tipo di software che intende sviluppare potrebbe anche rivelare delle informazioni riservate e per tale motivo è fondamentale valutare, ancora prima della contrattazione, un accordo sulla riservatezza.
La prima delle fasi del contratto di sviluppo software è quella sullo studio della fattibilità, che rappresenta un importante passaggio e consiste nell’analisi svolta dallo sviluppatore relativa alle richieste che vengono avanzate dal committente e all’effettiva realizzabilità delle stesse.
Nel caso in cui le verifiche portino all’esito positivo, si procede con la stesura di un preventivo, che specifica varie informazioni fra i quali i tempi di realizzazione e i costi. Le richieste del committente devono essere espressamente specificate nel contratto, in modo da aver chiari gli obiettivi che si vogliono raggiungere.
A questo punto si passa alla fase della progettazione, quindi alla traduzione delle richieste del cliente in un linguaggio di programmazione. A tal fine verrà elaborata la scheda tecnica del software che successivamente sarà allegata al contratto. Allo scopo di semplificare la determinazione delle specifiche è ammesso l’uso di disegni, schemi e mockup commentati.
Questa fase in molti casi potrebbe costituire oggetto di un contratto autonomo che influenza profondamente il seguente contratto di sviluppo del software. Proprio con questa fase si determina la natura dell’obbligazione che potrà essere di mezzi o di risultato.
Il terzo passo è rappresentato dal contratto, grazie al quale verranno regolamentate le fasi di attuazione del progetto con la relativa consegna.
C’è poi il collaudo, quindi il momento di verifica delle funzionalità previste dallo stesso contratto che si risolve in un test finalizzato all’identificazione di eventuali errori da correggere. Quando il collaudo ha un esito positivo il committente dovrà procedere con l’accettazione del programma informatico. Qualora questo non fosse possibile, ad esempio per la presenza di vizi, il programmatore dovrà apportare le necessarie modifiche.
In certe situazioni potrebbe capitare che i difetti siano così gravi da determinare l’inidoneità del software e per questo il committente potrà richiedere la risoluzione del contratto, oltre al risarcimento dei danni. Infine, sia nella fase d’esame che in quella d’accettazione è importante procedere con la stesura di verbali che avranno rilevanza ai fini probatori, specie nell’ipotesi di inadempimento.
L’ultima fase di norma non si perfeziona con la consegna del bene, ma con un periodo di garanzia che costituisce un momento ulteriore. Questa prerogativa, prevista in favore della parte committente, viene del resto suggerita dalla stessa disciplina del contratto di appalto e si estende per due anni dal momento in cui è avvenuta consegna del software. I vizi, tuttavia, dovranno essere denunciati entro 60 giorni dalla scoperta.
Gli aspetti che ruotano attorno ai diritti d’autore sull’opera che viene realizzata dallo sviluppatore costituiscono uno degli aspetti più ostici della fattispecie. Occorre chiarire che il contratto di sviluppo software non necessariamente implica il riconoscimento ad acquistare i diritti di proprietà intellettuale sullo stesso risultato dello sviluppo.
Questo principio trova conferma nell’articolo 4 della Legge 81/2017, in virtù del quale, in assenza di un’espressa pattuizione in tal senso, quando il rapporto di lavoro è autonomo e a condizione che l’attività creativa non sia espressamente oggetto del contratto, i diritti possono restare in capo al creatore dell’opera.
Alla luce della normativa che disciplina i diritti del titolare del diritto d’autore, si evince che in tutti i casi lo sviluppatore non potrà cedere il diritto morale, in quanto intrasmissibile. Conseguentemente egli manterrà la facoltà di rivendicare la paternità dell’opera in ogni momento, oltre che il diritto di vietare le modifiche. Potrà comunque cedere in modo legittimo il diritto allo sfruttamento economico dell’opera.
Nell’ipotesi in cui il committente fosse interessato ad ottenere l’esclusività di utilizzo, questo aspetto dovrà essere specificato nel contratto e ovviamente quantificato dal punto di vista economico, per cui sarà necessario indicare un corrispettivo per l’esecuzione del contratto informatico. Di norma, infatti, lo sviluppatore non è tenuto a procedere in tal senso.
Degno di segnalazione è poi il tema che riguarda l’accesso al codice sorgente, un aspetto determinante nel momento in cui si verifica il passaggio dei diritti di proprietà intellettuale, momento che segue all’attività di sviluppo vera e propria. Diversamente, potrebbe non esserlo quando l’uso del software a monte dello sviluppo venga disciplinato in modo specifico.
Ad ogni buon conto, una tipologia di risoluzione di possibili controversie rispetto alla messa a disposizione del codice sorgente, anche quando si pongano a carico dello sviluppatore altre attività rispetto allo sviluppo vero e proprio, come ad esempio manutenzioni e assistenza, potrebbe essere il ricorso ad un contratto oppure alle clausole di source code escrow.
Queste tipologie di accordi o di clausole prevedono la possibilità di mettere a disposizione di un terzo fiduciario il codice sorgente al quale il committente potrà avere accesso, ma nel rispetto di determinate condizioni tassativamente indicate a monte.
Infine c’è un’altra criticità di ordine pratico, ovvero data dalla possibilità di usare in fase di progettazione alcuni singoli elementi, come ad esempio free e/o open source software, quali parti o componenti di un programma più complesso. Questa tipologia di software potrebbe richiedere licenze specifiche, consultabili e disponibili, che bisogna attentamente valutare in ragione della possibile presenza di clausole virali.
Più nello specifico, queste si configurano quali obblighi e impegni che impongono di rendere a disposizione anche il software realizzato sulla base dei singoli componenti, ma a condizioni analoghe a quelle del software open source originario. Tutto questo potrebbe determinare in capo ai committenti che vantano diritti su questo software anche la necessità di rendere accessibile il codice sorgente.
Modello Contratto di Sviluppo Software
Di seguito è possibile trovare un fac simile contratto di sviluppo software in formato Doc da scaricare e da utilizzare come esempio. La bozza di contratto di sviluppo software può essere modificata inserendo i dati delle parti e gli altri elementi contrattuali mancanti, per poi essere convertita in formato PDF o stampata.