Sviluppo software

Come scrivere un brief per uno sviluppatore: requisiti, vincoli e criteri di accettazione

Un brief che produce stime affidabili: obiettivi, requisiti funzionali e non funzionali, integrazioni, ambienti, proprietà del codice e criteri di accettazione. Con un modello da usare.

Fabio Folgori5 min di lettura

Penna appoggiata su un libro aperto
Foto di Swanky Fella su Unsplash

Due sviluppatori che ricevono lo stesso brief vago produrranno due preventivi incomparabili, perché ognuno ha riempito i vuoti con le proprie ipotesi. Il brief serve a ridurre le ipotesi: non a descrivere la soluzione, ma a definire il problema, i vincoli e come si capirà che il lavoro è finito. Lo scrivo da chi i brief li riceve ogni settimana, soprattutto dalle agenzie.

Problema, non soluzione

L'errore più frequente è un brief che descrive l'implementazione: «serve un plugin che faccia X», «vogliamo un'app». Meglio partire dall'obiettivo misurabile e dal contesto: chi usa il sistema, che problema ha oggi, cosa deve succedere dopo. La soluzione tecnica è il lavoro dello sviluppatore, e un brief che la impone spesso impone quella sbagliata.

Le sezioni che servono

Contesto e obiettivo

Chi è il cliente finale (se scrive un'agenzia), che attività svolge, perché il progetto nasce adesso. Un obiettivo verificabile: «ridurre le richieste telefoniche sugli orari», non «migliorare la comunicazione».

Utenti e ruoli

Chi userà il sistema e con quali permessi: visitatori, clienti registrati, redattori, amministratori. Ogni ruolo in più è complessità in più, ed è bene saperlo subito.

Requisiti funzionali, con priorità

Elenco delle funzioni, divise in indispensabili, importanti e desiderabili. Questa divisione permette di stimare un perimetro minimo e di ragionare per fasi invece che per tutto o niente.

Requisiti non funzionali

Sono quelli che mancano quasi sempre e che generano le discussioni a fine progetto:

  • obiettivi di prestazione (per esempio Core Web Vitals «buoni» sui template principali);
  • livello di accessibilità (WCAG 2.1 AA o 2.2 AA);
  • lingue e gestione delle traduzioni;
  • browser e dispositivi supportati;
  • requisiti di sicurezza e privacy, inclusi i dati personali trattati.

Sistemi esistenti e integrazioni

Cosa c'è già: sito, hosting, dominio, gestionale, CRM, piattaforma di pagamento. Per ogni integrazione: esiste un'API documentata? Chi fornisce l'accesso? C'è un ambiente di prova? Un'integrazione senza documentazione è la prima fonte di sforamento dei tempi.

Contenuti e materiali

Chi fornisce testi, immagini, traduzioni, e quando. Se il design esiste, in che formato e con quale grado di completezza: un file Figma con componenti e stati è un'altra cosa rispetto a tre schermate statiche (ne parlo in Da Figma a WordPress).

Tempi, budget, decisioni

Scadenze reali e il motivo (un evento, una campagna), una forbice di budget, e chi approva. Un solo referente che decide accorcia i progetti più di qualunque scelta tecnica.

Proprietà e consegna

Di chi è il codice, dove vive il repository, chi detiene gli account (hosting, dominio, store), cosa si consegna a fine lavoro: documentazione, accessi, ambiente di staging.

Criteri di accettazione

Come si stabilisce che il lavoro è concluso. Per ogni funzione indispensabile, una frase verificabile: «l'utente registrato vede solo le proprie prenotazioni», «il modulo invia la richiesta e mostra conferma anche senza JavaScript». Sono il contratto tecnico tra le parti.

Un modello

  • Contesto e obiettivo misurabile: …
  • Utenti e ruoli: …
  • Funzioni indispensabili / importanti / desiderabili: …
  • Requisiti non funzionali (prestazioni, accessibilità, lingue, sicurezza): …
  • Sistemi esistenti e integrazioni, con documentazione: …
  • Contenuti e design disponibili: …
  • Scadenza e motivo: …
  • Budget (forbice): …
  • Referente che decide: …
  • Proprietà del codice e degli account: …
  • Criteri di accettazione: …

Come leggere le risposte

Un buon preventivo restituisce il brief con domande, ipotesi esplicite ed esclusioni. Diffiderei di chi risponde in un'ora con una cifra secca su un progetto complesso: non ha letto, o ha riempito i vuoti a modo suo. Il confronto tra preventivi ha senso solo se le ipotesi sono le stesse.

Gli errori più comuni

  • Descrivere la soluzione invece del problema: «serve un plugin», «serve un'app», senza dire per fare cosa.
  • Nessuna priorità: tutte le funzioni sembrano indispensabili, e la stima diventa un tutto o niente.
  • Requisiti non funzionali assenti: velocità, accessibilità e lingue scoperte a fine progetto.
  • Integrazioni date per scontate: «si collega al gestionale», senza sapere se il gestionale ha un'API.
  • Contenuti «in arrivo»: testi e immagini che arrivano a progetto finito e cambiano il layout.
  • Troppi decisori: ogni revisione apre un nuovo giro di opinioni.
  • Budget taciuto: lo sviluppatore propone una soluzione fuori scala, in un senso o nell'altro.
  • Scadenze senza motivo: una data arbitraria impedisce di ragionare per fasi.

Se il progetto è ancora vago, la scelta più onesta è una fase di analisi separata e pagata, che produce il brief e una stima affidabile. Costa poco rispetto al progetto e riduce molto il rischio di entrambe le parti.

Come la vedo io

Il brief migliore che ricevo è quello che ammette ciò che non sa. Lavorando soprattutto con agenzie, preferisco un documento breve con obiettivi e vincoli chiari a un capitolato lungo che descrive già la soluzione. Poi lavoro per anteprime: ogni settimana una versione online consultabile (con Netlify ogni modifica ne genera una), così il brief si verifica sul prodotto vero e non sulla carta.

E chiedo sempre di mettere per iscritto proprietà del codice e degli account: non per sfiducia, ma perché è la domanda che, fatta tardi, crea più problemi.

Un brief onesto, per me, vale più di un capitolato perfetto.

Perché affidarlo a me

Programmo dal 1999, ho consegnato più di 300 progetti e lavoro come sviluppatore esterno con circa 30 agenzie, da Roma e da remoto. Rispondo a un brief con domande, ipotesi esplicite e una stima per fasi, non con una cifra secca.

Se hai un progetto da impostare, scrivimi: in una chiacchierata di circa 20 minuti trasformiamo l'idea in un brief che regge. Il servizio è in Sviluppo software su misura.

Domande frequenti

Quanto serve a rendere le stime confrontabili. Due pagine ben scritte valgono più di venti generiche: conta che obiettivi, vincoli e criteri di accettazione siano espliciti.

Sì, anche come forbice. Senza budget lo sviluppatore deve indovinare il livello di soluzione: con la stessa richiesta si può proporre un tema pronto o un'applicazione su misura, e le stime non saranno confrontabili.

Sono le qualità che il sistema deve avere oltre alle funzioni: prestazioni, accessibilità, sicurezza, lingue, browser supportati, disponibilità. Sono quelli che più spesso mancano nei brief e che più spesso generano contestazioni.

Si fa una fase di analisi pagata e separata, che produce il brief. È più onesto di un preventivo a corpo su un progetto indefinito.

  • #brief
  • #preventivo sviluppo
  • #requisiti
  • #criteri di accettazione
  • #agenzie

Altri articoli

// Contatti

Un progetto, un problema o solo un dubbio?

Agenzia, attività o professionista: scegli come preferisci parlarmi. Rispondo entro un giorno lavorativo, senza impegno.