Acho que o teste de Joel está atualizado - é tão atualizado quanto os outros softwares escritos que são "atemporais".
Fazer desenvolvimento de produtos (que inclui desenvolvimento de software) sem uma especificação é apenas loucura.
Como você sabe para onde quer ir?
Há apenas um ponto que vou fazer sobre escrever uma especificação (na verdade, não acho que as especificações de Joel sejam muito boas ... melhores que nada, mas não tão boas quanto poderiam ser). Esse ponto é:
Ao escrever uma especificação, diga apenas o que o produto deve fazer, não como deve ser feito.
Isso significa que você não determina os detalhes da implementação em uma especificação. Essa é uma atividade de design e você deixa isso para a experiência e criatividade dos designers.
[Existe apenas uma exceção a esta regra: Às vezes, um determinado detalhe ou método de implementação é obrigatório ou obrigatório, nesse caso, coloque-o. Por exemplo, se o software precisar ser escrito em PHP e isso não for negociável, ele será incluído. a especificação. Deve haver muito poucas instâncias disso.]
Devo acrescentar: não ter rastreamento de bugs é um ato de loucura igual. É simplesmente a maneira mais não profissional e tola de operar e levará a uma grande dor e sofrimento.