Steve Jobs cree que los clientes no pueden describir exactamente cómo quieren que sean los productos futuros, por lo que es su trabajo entregarlos. Entonces, a menos que entregue software personalizado todo el tiempo, olvide las especificaciones formales y comience creando prototipos y dejando que los clientes jueguen con ellos y le digan lo que piensan. Tienes que poner a la persona adecuada haciendo los prototipos, y necesitan ayuda. Lo digo por experiencia: soy el mono de prototipos que ama crear interfaces intuitivas y me uní a alguien en un producto que entiende lo que los clientes quieren y puede explicar las cosas en papel o usando Excel.
Ninguno de los dos somos genios, pero pensamos igual: casi se puede decir que tenemos química y hemos tenido un gran impacto sobre qué cosas se están construyendo y cómo. Ahora, solo un equipo de mediano a grande puede permitirse tener un prototipo y un no codificador que desarrolle productos exclusivamente, pero vale la pena. La creación de prototipos es la etapa más barata en el desarrollo de software, por lo que solo tiene sentido obtener la interfaz de usuario y el comportamiento aparente correcto. No he leído Code Complete pero creo que hay algo así escrito en ese libro.
Es bueno tener especificaciones, pero nunca son perfectas. Existe un teorema sobre eso. No puede probar que la especificación está completa y no puede probar que la herramienta no tiene errores o que se detendrá :)
Sin embargo, las compañías de software envían software todo el tiempo a pesar de estas imperfecciones en el proceso. La especificación nunca será perfecta. La especificación también es NO NATURAL y obsoleta. Una especificación para un prototipo es como una tabla de logaritmos para un solo gráfico: una especificación es esencialmente un folleto aburrido destinado a ser impreso, mientras que en su lugar podría interactuar con una herramienta / gráfico. Visite http://www.i-programmer.info/news/112-theory/3900-a-better-way-to-program.html para obtener inspiración.
Ahora, la especificación es buena si debe tener un contrato para cubrirse el trasero. Pero una especificación aún debe venir después de un prototipo, no antes. Es su trabajo descubrir cómo hacer que los prototipos sean baratos.