La software house è responsabile se il software “su misura” non funziona?

Tempo di lettura: 5 minuti

Abstract

Chi affida lo sviluppo di un software a un fornitore esterno si aspetta – giustamente – un risultante funzionante, affidabile e consegnato nei tempi previsti. Tuttavia, non è raro che le aspettative si infrangono su ritardi, bug e criticità che compromettono l’operatività aziendale. In questi casi, la domanda che sorge spontanea è una: la software house è responsabile?

Obbligo di risultato: cosa succede se il software non fa quello che deve?

La responsabilità di una software house non si esaurisce nel “fare del proprio meglio”. Quando si sviluppa un software su misura – gestionale, e-commerce, CRM, ERP – si assume un vero e proprio obbligo di risultato: il prodotto deve funzionare come pattuito.

Se il software viene consegnato ma non svolge le funzioni previste, non basta dire che “ci si sta ancora lavorando” o che “serve tempo per l’assestamento”. È un inadempimento a tutti gli effetti.

Lo ha affermato chiaramente anche il Tribunale di Milano, sent. 5752/2017. In quel caso, un software house aveva consegnato un gestionale nei tempi previsti, ma il programma risultava inutilizzabile a causa di gravi carenze tecniche. Il Tribunale ha stabilito che, in simili circostanze, non basta il rispetto formale della scadenza. Infatti, ciò che rileva è che il prodotto sia effettivamente conforme all’uso per cui è stato commissionato. La sentenza ha portato alla risoluzione del contratto e alla condanna della software house alla restituzione delle somme ricevute nonché al risarcimento del danno subito dalla committente.

Ma anche i ritardi nella consegna possono assumere una rilevanza giuridica significativa. Se la software house non rispetta i tempi concordati, soprattutto in progetti strategici per il business, il danno può essere notevole: perdita di fatturato, occasioni mancate, problemi operativi. Non serve che il contratto preveda una penale: l’art. 1218 Codice Civile è già sufficiente a stabilire che il debitore (in questo caso la software house) risponde dell’inadempimento se non prova che la mancata o ritardata prestazione dipende da causa a lui non imputabile.

Infine, uno dei motivi di conflitto più aspri riguarda la mancata consegna del codice sorgente. Molte aziende scoprono troppo tardi che, pur avendo pagato interamente per lo sviluppo del software, non possono modificarlo né migrarlo, perché non possiedono il c.d. “cuore” del software. Trattenere il codice come leva contrattuale è illegittimo, se non espressamente previsto dal contratto, secondo la giurisprudenza prevalente. Ne abbiamo parlato qui: Inadempimenti nei contratti di sviluppo software: come recuperare il codice sorgente? – Canella Camaiora.

Crash, bug, perdite e la responsabilità per danni della software house

Ricevere un software incompleto o malfunzionante è già di per sé un problema. Ma quando da quel malfunzionamento derivano danni patrimoniali reali e documentabili, la responsabilità della software house è pressoché certa. In questi casi, non si discute più soltanto della mancata esecuzione di una prestazione, ma della sua conseguenza dannosa per l’impresa committente. Pensiamo a un gestionale che perde dati contabili, a un CRM che invia comunicazioni errate ai clienti, o a una piattaforma e-commerce che va in crash proprio durante una campagna promozionale.

Nel contesto dello sviluppo software, le cause di responsabilità più frequenti sono:

  • errori di progettazione,
  • mancanza di test o collaudi, specie su moduli critici,
  • vulnerabilità nei sistemi di sicurezza,
  • assenza di misure di recupero.

Uno strumento utile per ridurre i rischi di cui sopra è il c.d. contratto di sviluppo Agile. Ne abbiamo parlato qui: Contratti software e sviluppo “Agile”: criticità legali e proprietà del codice – Canella Camaiora.

Naturalmente, il cliente deve dimostrare l’inadempimento e il danno subito, oltre al nesso causale tra i due.

È utile ricordare che la responsabilità può estendersi anche a danni indiretti, come la perdita di chance commerciali o l’interruzione dell’attività, purché siano effettivamente riconducibili al difetto del software.

Quando la colpa invece è del cliente?

È importante chiarire un aspetto spesso trascurato: non sempre la software house è responsabile dei problemi che sorgono durante o dopo un progetto. Se da un lato lo sviluppatore ha il dovere di rispettare tempi, specifiche e funzionalità pattuite, dall’altro il committente – cioè l’impresa che commissiona il software – ha una parte attiva e determinante nella riuscita del progetto. E proprio da qui nascono situazioni ambigue, che possono portare a conflitti in cui le colpe non sono così nette come sembrano.

Capita, ad esempio, che il committente modifichi ripetutamente le proprie richieste in corso d’opera, senza aggiornare formalmente il documento dei requisiti e senza firmare una nuova analisi tecnica. Oppure che chieda aggiunte e modifiche con una telefonata non tracciata. In questi casi, si rischia di trovarsi di fronte a una mancata definizione contrattuale del perimetro del progetto, con inevitabili equivoci.

Un altro esempio ricorrente riguarda i test funzionali: se il committente rinuncia a testare il software nei tempi previsti – magari per accelerare la messa online o perché “non c’è tempo” – rinuncia implicitamente anche alla possibilità di segnalare anomalie prima della consegna definitiva.Questa situazione può configurare una concorrenza di colpa (ex art. 1227 Codice Civile), ovvero una riduzione della responsabilità della software house in proporzione al comportamento omissivo o negligente del cliente. Pertanto, se il danno è stato causato anche dalla condotta del committente, il risarcimento potrà essere ridimensionato o addirittura escluso.

Definire bene i confini evita il contenzioso

Nel mondo dello sviluppo software su misura, la responsabilità non è mai un concetto banale o preconfezionato. Se da un lato le software house devono garantire un prodotto funzionante, conforme alle specifiche e consegnato nei tempi previsti, dall’altro i committenti hanno il dovere di collaborare attivamente e documentare correttamente ogni passaggio del progetto.

La giurisprudenza è chiara: quando il software non funziona, arriva in ritardo o manca di elementi essenziali come il codice sorgente, la software house può essere ritenuta responsabile – con conseguenze economiche importanti. Ma è altrettanto vero che una gestione poco attenta da parte del cliente può ridurre o addirittura annullare la responsabilità dello sviluppatore.

Per questo motivo è fondamentale impostare il rapporto contrattuale in modo trasparente, preciso e verificabile, sin dalle fasi iniziali. Solo così si potrà tutelare efficacemente il proprio investimento tecnologico e prevenire contenziosi che, oltre al danno economico, rischiano di rallentare l’intera attività aziendale. La chiave è una sola: disciplinare il rapporto con regole contrattuali chiare ed efficaci.

© Canella Camaiora S.t.A. S.r.l. - Tutti i diritti riservati.
Data di pubblicazione: 18 Giugno 2025

È consentita la riproduzione testuale dell’articolo, anche a fini commerciali, nei limiti del 15% della sua totalità a condizione che venga indicata chiaramente la fonte. In caso di riproduzione online, deve essere inserito un link all’articolo originale. La riproduzione o la parafrasi non autorizzata e senza indicazione della fonte sarà perseguita legalmente.

Margherita Manca

Avvocato presso lo Studio Legale Canella Camaiora, iscritta all’Ordine degli Avvocati di Milano, si occupa di diritto industriale.

Leggi la bio
error: Content is protected !!