La funzione più importante di una specifica è progettare il programma . Anche se stai lavorando sul codice da solo e scrivi una specifica esclusivamente a tuo vantaggio, l'atto di scrivere la specifica - descrivendo come funziona il programma in dettaglio, ti costringerà a progettare il programma ...
... quando progetti il tuo prodotto in un linguaggio umano, ci vogliono solo pochi minuti per provare a pensare a diverse possibilità, a rivedere e migliorare il tuo design. Nessuno si sente male quando elimina un paragrafo in un elaboratore di testi. Ma quando progetti il tuo prodotto in un linguaggio di programmazione, ci vogliono settimane per fare progetti iterativi. Quel che è peggio, un programmatore che ha appena trascorso 2 settimane a scrivere del codice sarà abbastanza attaccato a quel codice, non importa quanto sia sbagliato ...
... Quando scrivi una specifica, devi solo comunicare come dovrebbe funzionare il programma una volta . Tutti nel team possono solo leggere le specifiche. Gli addetti al QA lo leggono in modo da sapere come dovrebbe funzionare il programma e sapere per cosa testare. Gli addetti al marketing lo usano per scrivere i loro vaghi white paper sul vaporware da vomitare sul sito web sui prodotti che non sono ancora stati creati. Le persone che si occupano dello sviluppo del business lo hanno letto male per far girare strane fantasie su come il prodotto curerà la calvizie, le verruche e le cose, ma attirerà gli investitori, quindi va bene. Gli sviluppatori lo hanno letto in modo da sapere quale codice scrivere. I clienti lo hanno letto per assicurarsi che gli sviluppatori stessero costruendo un prodotto per il quale avrebbero voluto pagare. Gli scrittori tecnici lo leggono e scrivono un bel manuale ...
Quando non si dispone di una specifica, tutte queste comunicazioni continuano, perché è necessario , ma avviene ad hoc . La gente del QA si scherza con il programma, volenti o nolenti, e quando qualcosa sembra strano, vanno e interrompono ancora una volta i programmatori per chiedere loro un altro stupida domanda su come dovrebbe funzionare la cosa ...
senza una specifica dettagliata, è impossibile fare un programma ... In troppe organizzazioni di programmazione, ogni volta che c'è un dibattito sul design, nessuno riesce mai a prendere una decisione, di solito per motivi politici. Quindi i programmatori lavorano solo su cose non controverse. Col passare del tempo, tutte le decisioni difficili vengono spinte alla fine ... Scrivere una specifica è un ottimo modo per inchiodare tutte quelle fastidiose decisioni di progettazione, grandi e piccole, che vengono nascoste se non si dispone di una specifica. ..