Часть 2. Формулирование и планирование проекта
• Установка Уделите внимание установке ПО. В опреде-
лении требований должны обсуждаться по крайней
мере действия, которые должен выполнить пользова-
тель, чтобы установить ПО, а также действия самой
программы установки, необходимые для завершения
процесса установки. Кроме того, укажите платформы,
которые должна поддерживать программа установки.
•
Тестирование Требования к тестированию продукта
могут не только способствовать существенному повы-
шению продуктивности работы, но и принести допол-
нительные выгоды. Так, если в программе установки
предусмотрен режим, не требующий ручного ввода ин-
формации, можно будет автоматически устанавли-
вать и тестировать все ежедневные сборки программы.
Не исключено, что программный продукт должен будет
поддерживать набор API, позволяющих группе, прово-
дящей испытания, читать любые двоичные файлы, ис-
пользуемые или генерируемые приложением. Это по-
зволит сравнивать файлы, полученные в результате не-
скольких испытаний программы с последовательно
измененными параметрами. Также можно заставить
программу вести протокол внутренних несогласован-
ностей, который будет полезен при диагностике труд-
но воспроизводимых сбоев в работе программы.
Детализация требований
Еще одна проблема, которую придется решить, — насколь-
ко подробно нужно формулировать требования. Разумеет-
ся, в данном случае задача в том, чтобы определение было
как можно полнее: чем подробнее описано требование, тем
легче следить за ходом его реализации. Чем больше аспек-
тов определено заранее, тем больше параллелизма в рабо-
те разработчиков и групп, отвечающих за тестирование,
обучение пользователей и выпуск программного продукта,
Глава 8. Требования
так как тогда им проще понять, какой продукт создается.
Однако часто подробно документировать требования
очень трудно и даже невозможно, так как приходится ра-
ботать в незнакомых областях (так чаще всего и бывает при
работе над программными проектами). Как правило, что-
бы понять, что именно пытаются создать участники проек-
та, приходится изрядно поэкспериментировать и испробо-
вать много новых идей. Бывает и так, что поставленная цель
оказывается вовсе недостижима. Ниже я опишу способ, по-
зволяющий согласовать потребности в эксперименте и в
документировании требований к проекту.
Недостаточно подробное определение обычно являет-
ся следствием недостаточного понимания. Если недостаю-
щие сведения относятся к маркетингу или другим вопросам
бизнеса, то разработчики мало чем помогут — это работа
менеджера проекта и менеджера по маркетингу. Однако
при нехватке сведений о реализуемых функциях, например,
когда неясно, как работает та или иная функция, откуда бе-
рется информация или чего хочет пользователь, можно
создать прототип пользовательского интерфейса, иллюст-
рирующий внешний вид этих функций. Если недостающая
информация касается технических возможностей, скажем,
может ли программный продукт выполнять те или иные
действия, можно провести анализ технической осуществи-
мости, а затем создать прототип. Вот как свести воедино
информацию из реального мира, экспериментальную рабо-
ту и творческий процесс в процесс формулирования тре-
бований, прежде чем перейти к планированию (рис. 8-1).
Главная идея в том, чтобы заранее выяснить места воз-
можного риска и до начала работы над проектом разрабо-
тать решения потенциальных проблем. Анализ осуществи-
мости и прототипы пользовательского интерфейса помо-
гут понять суть проблемы, оценить потребности и снизить
общий риск. Эти методики обеспечивают процесс форму-
182
183