Стив Джобс полагал, что клиенты не могут точно описать, как они хотят, чтобы будущие продукты выглядели, поэтому поставлять их - ваша работа. Так что, если вы не поставляете заказное программное обеспечение постоянно, забудьте о формальных спецификациях и начните с создания прототипов, позволяя покупателям играть с ними и рассказывать, что они думают. Вы должны поставить правильного человека, делающего прототипирование, и им нужна помощь. Я говорю это по опыту - я - обезьяна-прототип, которая любит создавать интуитивно понятные интерфейсы, и я объединился с кем-то из продукта, который понимает, чего хотят клиенты, и может объяснить все на бумаге или с помощью Excel.
Ни один из нас не является гением, но мы думаем одинаково - вы можете почти сказать, что мы получили химию и оказали огромное влияние на то, какие вещи строятся и как. Теперь только команда среднего и большого размера может позволить себе иметь прототип и некодера, который разрабатывает продукт исключительно, но это того стоит. Прототипирование является самым дешевым этапом в разработке программного обеспечения, поэтому имеет смысл только правильно настроить интерфейс и очевидное поведение. Я не читал Code Complete, но, думаю, что-то подобное написано в этой книге.
Спецификации приятно иметь, но они никогда не бывают идеальными. Существует теорема об этом. Вы не можете доказать, что спецификация завершена, и вы не можете доказать, что в инструменте нет ошибок или что он остановится :)
Тем не менее, компании-разработчики программного обеспечения все время поставляют программное обеспечение, несмотря на эти недостатки в процессе. Спецификация никогда не будет идеальной. Спецификация также НЕТРАЛЬНАЯ и устаревшая. Спецификация к прототипу похожа на логарифмическую таблицу для отдельного графика - спецификация - это, по сути, скучная брошюра, предназначенная для печати, тогда как вместо этого вы можете взаимодействовать с инструментом / графиком. Проверьте http://www.i-programmer.info/news/112-theory/3900-a-better-way-to-program.html для вдохновения.
Теперь, спецификация хороша, если у вас должен быть контракт, чтобы покрыть вашу задницу. Но спецификация все же должна появиться после прототипа, а не до. Ваша задача выяснить, как сделать прототипы дешевыми.