Penso che il test di Joel sia aggiornato - è tanto aggiornato quanto la maggior parte degli altri software che scrivono è "senza tempo".
Fare lo sviluppo del prodotto (che include lo sviluppo di software) senza una specifica è solo una follia.
Come fai a sapere dove vuoi andare?
C'è solo un punto su come scrivere una specifica (non credo che le specifiche di Joel siano molto buone ... meglio di niente, ma non così buone come potrebbero essere). Questo punto è:
Quando scrivi una specifica, dì solo ciò che il prodotto deve fare, non come deve essere fatto.
Questo significa che non devi dettare i dettagli di implementazione in una specifica. Questa è un'attività di design e la lasci all'esperienza e alla creatività dei designer.
[C'è una sola eccezione a questa regola: a volte un particolare dettaglio o metodo di implementazione è obbligatorio o richiesto, nel qual caso inserirlo. Ad esempio, se il software deve essere scritto in PHP e questo non è negoziabile, quindi va nelle specifiche. Ci dovrebbero essere pochissimi esempi di questo.]
Potrei aggiungere: non avere il bug tracking è un atto di pari follia. È semplicemente il modo più poco professionale e folle di operare e porterà a grandi sofferenze e sofferenze.