Наиболее важной функцией спецификации является разработка программы . Даже если вы работаете над кодом самостоятельно, и вы пишете спецификацию исключительно для своей выгоды, сам процесс написания спецификации - описывающей, как программа работает в мельчайших деталях - заставит вас фактически разработать программу ...
... когда вы разрабатываете свой продукт на человеческом языке, вам нужно всего несколько минут, чтобы подумать о нескольких возможностях, пересмотреть и улучшить свой дизайн. Никто не чувствует себя плохо, когда они удаляют абзац в текстовом редакторе. Но когда вы разрабатываете свой продукт на языке программирования, для итеративного проектирования требуются недели . Что еще хуже, программист, который потратил 2 недели на написание некоторого кода, будет очень привязан к этому коду, независимо от того, насколько он неправильный ...
... Когда вы пишете спецификацию, вам нужно только сообщить, как программа должна работать один раз . Все в команде могут просто прочитать спецификацию. Специалисты по тестированию читают его, чтобы знать, как должна работать программа, и знать, что нужно проверять. Специалисты по маркетингу используют его для написания своих смутных документов, в которых содержится информация о продуктах, которые еще не были созданы. Люди, занимающиеся развитием бизнеса, неправильно истолковывают это, чтобы раскручивать странные фантазии о том, как продукт излечит облысение, бородавки и все такое, но он привлекает инвесторов, так что все в порядке. Разработчики читают это, чтобы они знали, какой код написать. Клиенты читают его, чтобы убедиться, что разработчики создают продукт, за который они хотели бы заплатить. Технические писатели читают это и пишут хорошее руководство ...
Когда у вас нет спецификации, все это общение все еще происходит, потому что оно должно , но это происходит на разовой основе . Сотрудники QA дурачатся с программой вольно-невольно, и когда что-то выглядит странно, они снова и снова прерывают программистов, чтобы задать им еще один глупый вопрос о том, как это должно работать ...
без детальной спецификации невозможно составить график ... Во многих организациях, занимающихся программированием, каждый раз, когда обсуждаются вопросы проектирования, никому не удается принять решение, обычно по политическим причинам. Таким образом, программисты работают только над спорными вещами. Со временем все трудные решения доводятся до конца ... Написание спецификации - это отличный способ закрепить все эти раздражающие дизайнерские решения, большие и маленькие, которые скрываются, если у вас нет спецификации. ..