Contratto software: cosa deve contenere e cosa controllare
Cosa deve contenere un contratto software? Clausole essenziali, red flag e checklist pratica per imprenditori pronti a firmare con una software house.

Stai per firmare un contratto con una software house. Il documento è di venti pagine, scritto in legalese, e il tuo referente ti rassicura: "È il nostro contratto standard, lo firmiamo con tutti i clienti." A questo punto hai due opzioni: fidarti e firmare, oppure sapere esattamente cosa stai sottoscrivendo. Il contratto software è il documento che protegge il tuo investimento — e ignorarne le clausole chiave può costarti caro, anche con un partner onesto.
In questa guida trovi tutte le clausole che un contratto di sviluppo software deve contenere, i red flag da riconoscere prima di firmare e una checklist operativa per non farti trovare impreparato.
Cos'è un contratto software e perché è diverso dagli altri
Un contratto software — detto anche contratto di sviluppo software o accordo di fornitura IT — è l'accordo formale tra te (il cliente) e la software house (il fornitore) che regola la realizzazione di un prodotto digitale: un'app, una piattaforma web, un gestionale su misura o qualsiasi altro software personalizzato.
A differenza di un contratto per la fornitura di beni fisici, il software ha caratteristiche particolari che lo rendono più complesso da tutelare:
- È immateriale: non puoi "restituirlo" se non funziona come ti aspettavi
- È difficile da valutare per un non tecnico: come fai a sapere se la consegna è conforme?
- Evolve nel tempo: la versione 1.0 non sarà mai l'ultima
- La proprietà intellettuale del codice è spesso ambigua se non definita esplicitamente
Per questo il contratto software deve essere molto più preciso di un qualsiasi accordo commerciale standard.
Le clausole che non possono mancare in un contratto software
1. Proprietà intellettuale del codice
È la clausola più importante e quella su cui si litiga di più. Devi avere chiaro chi è il proprietario del codice sorgente a sviluppo completato. Le opzioni sono due:
- Il codice è tuo: alla consegna, diventi proprietario del codice sorgente e puoi farne ciò che vuoi — modificarlo, affidarlo ad altri, venderlo
- Il codice rimane della software house: ti viene concessa una licenza d'uso, ma non puoi toccare l'interno. Questo è il modello che crea vendor lock-in
Se il contratto non specifica nulla, in Italia la legge tende a lasciare i diritti al creatore dell'opera, non al committente. Assicurati che la clausola di proprietà intellettuale sia esplicita e a tuo favore.
2. Specifiche funzionali e deliverable
Il contratto deve fare riferimento a un documento tecnico — le specifiche funzionali, il capitolato o un allegato con le funzionalità da sviluppare. Senza questo riferimento, non hai un metro di valutazione per sapere se la consegna è conforme.
Controlla che il contratto indichi: cosa viene consegnato, in quale formato, con quale documentazione allegata (codice sorgente, manuale tecnico, credenziali di accesso agli ambienti).
3. Milestone, tempi e penali
Un contratto senza date di consegna non è un contratto — è una promessa. Il contratto di sviluppo software deve includere un piano di milestone con date specifiche e, idealmente, penali in caso di ritardi imputabili al fornitore.
Attenzione: le penali devono essere bilaterali. Se sei tu a ritardare l'approvazione di una milestone o a cambiare i requisiti in corsa, il fornitore ha diritto a richiedere una proroga. Questo è normale — l'importante è che il meccanismo sia scritto.
4. Prezzo, pagamenti e gestione delle varianti
Specifica chiaramente il prezzo totale (o le tariffe orarie, in caso di contratto T&M), il piano di pagamento e le condizioni per eventuali extra. Le voci da chiarire sono:
- Acconto iniziale e percentuale
- Pagamenti legati alle milestone
- Saldo finale: quando scatta e a quale condizione
- Come vengono gestite le richieste di modifica fuori scope (change request): a tariffa oraria? Con un preventivo separato?
Se il contratto prevede un prezzo fisso ma non definisce esattamente lo scope, rischi di trovarti in un negoziato continuo su cosa è "incluso" e cosa no.
5. Garanzie e bug fix post-consegna
Qualsiasi software contiene bug. La domanda non è "se" ne troverai, ma "chi li corregge e in quanto tempo". Il contratto deve definire:
- Durata del periodo di garanzia (di solito 30-90 giorni dalla consegna)
- Cosa si intende per "bug" (difetto funzionale) vs "modifica" (nuova richiesta)
- Tempi massimi di risposta per i bug critici
Se il tuo fornitore non vuole inserire una clausola di garanzia, è un red flag serio.
6. NDA e riservatezza
Se condividi con la software house informazioni sui tuoi processi, sul tuo business model o sui tuoi dati, hai bisogno di una clausola NDA (Non-Disclosure Agreement) o di un accordo di riservatezza separato. Verifica che copra:
- Informazioni riservate condivise durante il progetto
- Dati degli utenti finali (importantissimo in ottica GDPR)
- Codice sorgente e architettura tecnica
Se stai valutando il tuo progetto e cerchi un partner tecnologico affidabile, possiamo aiutarti: contattaci dalla sidebar per una consulenza gratuita.
7. SLA e supporto post-lancio
Se il contratto include anche la gestione e manutenzione del software dopo il lancio, deve esserci uno SLA (Service Level Agreement) che definisce: uptime garantito, tempi di risposta in caso di problemi, canali di supporto e orari di disponibilità.
Senza SLA, non hai nessuna leva per chiedere conto di un'interruzione del servizio o di un'assistenza lenta.
8. Clausola di exit e portabilità dei dati
Prima o poi potresti voler cambiare fornitore. Il contratto deve prevedere una clausola di exit che regoli: il trasferimento del codice sorgente, la migrazione dei dati, la documentazione da consegnare e i tempi di transizione. Senza questa clausola, sei in balia del fornitore.
Red flag: cosa non deve mai essere nel contratto
Alcune clausole, spesso nascoste nel corpo del contratto, possono trasformare un accordo apparentemente standard in una trappola. Ecco le più comuni:
- Proprietà intellettuale ambigua: frasi come "il software viene sviluppato sulla piattaforma proprietaria del fornitore" significano che non sarai mai il vero proprietario del codice
- Diritto unilaterale di modifica: alcune software house si riservano il diritto di modificare le condizioni contrattuali con un semplice avviso. Non accettarlo
- Rinnovo automatico senza preavviso: nei contratti di manutenzione o SaaS whitelabel, il rinnovo automatico a lungo termine ti lega le mani
- Esclusione totale di responsabilità: il fornitore può limitare la propria responsabilità, ma azzerarla del tutto — anche in caso di dolo o colpa grave — non è accettabile
- Foro esclusivo in altra città: se il foro competente per eventuali controversie è distante da te, diventa un disincentivo a far valere i tuoi diritti
Accordo software personalizzato vs contratto standard: cosa scegliere
Molte software house usano un contratto standard che hanno fatto redigere una volta e applicano a tutti i clienti. Non è necessariamente sbagliato — dipende da quanto è ben scritto e da quanto rispecchia le tue esigenze specifiche.
Per progetti piccoli e ben definiti (sito vetrina, landing page, integrazione API semplice), il contratto standard è spesso sufficiente, a patto che contenga le clausole essenziali descritte sopra.
Per progetti complessi — piattaforme SaaS, marketplace, app mobile con backend articolato — vale la pena farsi affiancare da un legale specializzato in contratti IT. Il costo di qualche ora di consulenza legale è trascurabile rispetto al valore del progetto e ai rischi di un contratto mal scritto.
Checklist: cosa controllare prima di firmare
Prima di apporre la firma, verifica punto per punto che il contratto risponda "sì" a queste domande:
- Il codice sorgente sarà di tua proprietà alla consegna?
- Ci sono specifiche funzionali allegate o richiamate esplicitamente?
- Le milestone e le date di consegna sono scritte nel contratto?
- Il piano di pagamento è chiaro e legato ai deliverable?
- Esiste una clausola di garanzia con durata e tempi di intervento?
- È presente un NDA o una clausola di riservatezza?
- C'è uno SLA se il fornitore gestirà il software post-lancio?
- La clausola di exit definisce come recuperare codice e dati?
- Hai letto le clausole sulla responsabilità del fornitore?
- Il foro competente per le controversie è accettabile?
Conclusione
Un buon contratto software non serve a complicare il rapporto con il fornitore — serve a renderlo più chiaro e a proteggere entrambe le parti. Una software house seria non avrà problemi ad accettare le clausole descritte in questa guida: sono standard di settore, non pretese eccessive.
Se una software house si irrigidisce alla sola richiesta di chiarire la proprietà del codice o di inserire una garanzia sui bug, hai già una risposta su quanto vale quel partner.
Hai bisogno di supporto per valutare un contratto o scegliere la software house giusta per il tuo progetto? Scrivici: trovi il form di contatto qui a destra e ti risponderemo entro 24 ore.
Consigliati
Altri articoli su Scegliere il partner

Come scegliere una software house: guida pratica per imprenditori
Scegliere una software house è una delle decisioni più critiche per chi vuole sviluppare un prodotto digitale. Guida pratica con criteri concreti, domande da fare e gli errori da non commettere.

Outsourcing sviluppo software: come farlo e quando conviene
Vuoi esternalizzare lo sviluppo software ma non sai da dove partire? Guida pratica sull'outsourcing sviluppo software: modelli onshore, nearshore e offshore, costi reali, come scegliere il partner giusto ed errori da evitare.

Vendor lock-in software: cos'è e come evitarlo
Il vendor lock-in software è uno dei rischi più costosi e sottovalutati nella gestione di un progetto digitale. Scopri cos'è, come riconoscerlo in anticipo e come evitarlo con 7 regole pratiche e una checklist operativa.