Помните: задача — обеспечение желаемого коммерческого эффекта при реализации сформулированных вами требований. Хотя вполне можно создать набор требований, распределяющийся по ячейкам таблицы практически поровну, в общем случае это нежелательно, поскольку так можно легко отойти от намеченной цели. Намного лучше сосредоточить большинство требований в одной из ячеек, а остальные требования разместить ещё в одной-двух ячейках.
Определение приоритетов
Определив и проанализировав требования, вы вплотную приблизились к обладанию полным набором функциональности. Но, прежде чем идти дальше, нужно задать приоритеты требований. Это поможет заранее оценить важность каждого требования и понять, как они связаны с другими требованиями.
Расстановка приоритетов определяет планирование и распределение задач. Вообще при планировании стараются наметить окончание реализации наиболее критичных требований на максимально ранние сроки. Если сначала сконцентрировать усилия команды на воплощении самых важных требований, можно снизить неопределённый риск, неизбежно присутствующий в любом плане. После завершения реализации критичных функций новая программа уже будет жизнеспособной. Если на этом этапе придётся сжимать сроки или вносить непредвиденные изменения, то вы окажетесь в выигрышном положении и сможете быстро завершить работу над новым выпуском программы, так как её основные функции будут уже готовы.
Коллектив должен заранее прийти к соглашению об уровне приоритета каждого из требований. Лучше, чтобы в момент принятия трудных решений (если такой момент настанет) об исключении той или иной функции вами не владели эмоции и напряжённость ситуации, что может сказаться на принятии решения. Не должно быть никаких сомнений в том, какие функции обязательны, а какие — нет. Приоритетные функции данного выпуска должны быть ясны каждому участнику проекта.
Каждому требованию должен быть назначен тот или иной приоритет. Детализация приоритетов может быть любой, в зависимости от потребностей. Уровни приоритета можно определить следующим образом:
•
Обязательно должны быть воплощены в программе, без этого её нельзя выпускать на рынок. Необходимые функции должны быть реализованы и испытаны как можно раньше; этому нужно уделить максимум внимания и все ресурсы.
•
Присутствие этих требований крайне желательно. При достаточном обосновании от их реализации можно отказаться, но это не уменьшает важности их наличия в программе. Реализация и испытания желательных требований начинается сразу после обязательных.
•
Эти требования также желательны, но реализуются в последнюю очередь и являются первыми кандидатурами на удаление, если вдруг возникнут проблемы со сроками.
Утверждение требований
Многие ошибочно считают, что сформулировав требования, они готовы к распределению заданий и планированию проекта. Это не так. Нужно выполнить ещё два важных действия: провести техническую экспертизу основных факторов риска, связанных с технологиями, и создать прототип пользовательского интерфейса вашей программы. См. об этом главы 9 и 10.