Chi scrive le specifiche?

“I volontari facciano un passo avanti”

Per la precisione, l’argomento di questo articolo è  “le specifiche dei requisiti software”, specifiche che definiscono quali funzionalità deve fornire un software per soddisfare i bisogni del cliente.
Sovente contengono anche “come” tali funzionalità devono essere realizzate, ma sempre e solo dal punto di vista del cliente. Inoltre, non sarebbe male se chiarissero anche il “perché”, cioè gli obiettivi di alto livello da raggiungere.

Procediamo per  esclusione.

Il cliente

Tipicamente dà per scontate molte conoscenze sul contesto in cui il software dovrà operare. Inoltre, se è un entusiasta, tende a confondere la definizione del problema con quella della soluzione. Non sembra un buon candidato.

Il fornitore

Gli anni d’esperienza e i progetti di successo sono un ottimo biglietto da visita. In questo caso il rischio è di saltare troppo rapidamente alle conclusioni per eccessiva sicurezza, classificando forzatamente il caso specifico in una tipologia la cui la soluzione è già nota. In pratica è la risposta che definisce la domanda. Anche se sembra migliore del precedente, dovremo scartare anche questo candidato.

L’analista

Questo è il candidato naturale, a condizione che abbia una visione del suo lavoro in linea con i concetti di sviluppo software elaborati nell’ultimo decennio(!). Spesso a non volerlo in gioco è il cliente, con l’intento di risparmiare, o il fornitore, per avere più margine di manovra.

Avendo pugnalato alle spalle l’analista, non rimangono nemmeno i giocatori per improvvisare una partita a ping pong.

Come spesso accade, una buona soluzione è basata sulla collaborazione.

  • Il cliente prepara un documento preliminare con cui descrive il contesto in cui opera e i problemi che vuole risolvere.
  • Il fornitore studia il documento per individuare e comprendere gli aspetti concettuali dell’attività del cliente, necessari a inquadrare i problemi da risolvere in un modello il più completo possibile.
  • Cliente e fornitore si incontrano per chiarire il contesto e i problemi da risolvere.
  • Il fornitore redige la prima versione del documento contenente i requisiti e, separatamente, la sua proposta di soluzione. La soluzione conterrà gli elementi architetturali e funzionali necessari perché il cliente comprenda e valuti quanto proposto e dovrà essere scritta in un linguaggio a lui comprensibile.
  • Il documento dei requisiti sarà elaborato in uno o più incontri, fino a quando entrambe le parti non lo riterrano sufficientemente chiaro per iniziare lo sviluppo.
  • Il documento così ottenuto dovrà essere aggiornato sempre e solo a cura del fornitore ogni volta che, durante lo sviluppo, si presenteranno le inevitabili modifiche ai requisiti.