Creo que la prueba de Joel está actualizada: está tan actualizada como la mayoría de las otras escrituras de software que son "intemporales".
Hacer desarrollo de productos (que incluye desarrollo de software) sin una especificación es una locura.
¿Cómo sabes a dónde quieres ir?
Solo hay un punto que haré sobre escribir una especificación (en realidad no creo que las especificaciones de Joel sean muy buenas ... mejor que nada, pero no tan buenas como podrían ser). Ese punto es:
Al escribir una especificación, diga solo lo que debe hacer el producto, no cómo se debe hacer.
Esto significa que no dicta los detalles de implementación en una especificación. Esa es una actividad de diseño y la dejas a la experiencia y creatividad de los diseñadores.
[Solo hay una excepción a esta regla: a veces se exige o requiere un detalle o método de implementación particular, en cuyo caso ponerlo. Por ejemplo, si el software debe estar escrito en PHP y esto no es negociable, entonces entra la especificación Debería haber muy pocos casos de esto.]
Podría agregar: no tener un seguimiento de errores es un acto de locura igual. Es simplemente la forma menos profesional y tonta de operar y provocará un gran dolor y sufrimiento.