Steve Jobs acreditava que os clientes não podem descrever exatamente como eles querem que os futuros produtos sejam, portanto, é seu trabalho entregá-los. Portanto, a menos que você forneça software personalizado o tempo todo, esqueça as especificações formais e comece a criar protótipos, deixando os clientes brincar com eles e dizer o que pensam. Você precisa colocar a pessoa certa para fazer a prototipagem e ela precisa de ajuda. Digo isso por experiência própria - sou o macaco de prototipagem que adora criar interfaces intuitivas e me uni a alguém do produto que entende o que os clientes querem e pode explicar as coisas em papel ou usando o Excel.
Nenhum de nós é gênio, mas pensamos da mesma forma - você quase pode dizer que temos química e tivemos um enorme impacto sobre como as coisas estão sendo construídas e como. Agora, apenas uma equipe de médio a grande porte pode ter um protótipo e um não codificador que desenvolvem o produto exclusivamente, mas vale a pena. A prototipagem é o estágio mais barato no desenvolvimento de software; portanto, faz sentido obter a interface do usuário e o comportamento aparente corretamente. Eu não li o Código Completo, mas acho que há algo assim escrito nesse livro.
É bom ter especificações, mas nunca são perfeitas. Existe um teorema sobre isso. Você não pode provar que a especificação está completa e não pode provar que a ferramenta não possui bugs ou que irá parar :)
No entanto, as empresas de software fornecem software o tempo todo, apesar dessas imperfeições no processo. A especificação nunca será perfeita. A especificação também é NÃO NATURAL e desatualizada. Uma especificação para um protótipo é como a tabela de logaritmo é para um único gráfico - uma especificação é essencialmente uma brochura chata que deve ser impressa, enquanto você pode interagir com uma ferramenta / gráfico. Confira http://www.i-programmer.info/news/112-theory/3900-a-better-way-to-program.html para obter inspiração.
Agora, a especificação é boa se você precisar de um contrato para cobrir sua bunda. Mas uma especificação ainda deve vir após um protótipo, não antes. É seu trabalho descobrir como fazer protótipos baratos.