
Преобладание новых и стремительно развивающихся проектов при-
вело к созданию различных методик быстрой разработки. Их цель —
быстро передать полезную функциональность в руки пользователям
(Gilb,
1988; Beck, 2000; Cockburn, 2002). В них применяется упрощен-
ный подход к разработке требований и неформальный подход к управ-
лению требованиями. Требования описываются в терминах характери-
стик продукта или в форме историй
пользователей,
похожими на
обычные варианты использования, описанные
в
главе 8. Вместо под-
робной документации к требованиям предпочтение отдается постоян-
ному взаимодействию с представителем клиента, который, находясь
рядом, имеет возможность разъяснять детали и отвечать на вопросы.
В философии быстрой разработки изменения ПО рассматриваются
как нечто неизбежное и желательное. Система корректируется под
воздействием обратной связи с клиентом и при изменении бизнес-
нужд, Чтобы справиться с этими изменениям, системы строятся с не-
большим приращением, причем подразумевается, что следующая
разработанная часть повлияет на уже созданную часть системы, улуч-
шит первоначальные функции и добавит новые. Этот способ хорошо
работает при высокой степени неясности в требованиях для информа-
ционных систем и Интернет-проектов. Однако он меньше подходит
для работы с приложениями, требования к которым ясны, и для разра-
ботки встроенных систем,
Совершенно
очевидно,
что процесс разработки должен быть осно-
ван на ясном понимании
того,
что пользователи хотят делать с помо-
щью системы. Требования к быстро меняющимся проектам слишком
нестабильны, чтобы оправдать массу усилий, затраченную на предва-
рительную разработку требований. Однако по мнению Jeff
Gainer
(1999):
«Трудность для разработчиков ПО заключается в
том,
при по-
вторяющихся циклах разработки появляется искушение изменить тре-
бования и расширить объем работ». Если этими циклами управлять
должным образом, то они помогут вам сделать ПО, соответствующее
текущим бизнес-нуждам, хотя и ценой переработки заблаговременнс
завершенного дизайна, кода и тестов.
Иногда лица, заинтересованные в проекте, утверждают, что роль
требований неизвестна и непостижима, тогда как они просто горят от
нетерпения
побыстрее заняться написанием кода, при этом они не
учитывают возможность всеобъемлющего перекодирования. Не под-
давайтесь искушению использовать
«время
Интернета» как оправ-
дание экономии на разработке требований. Если вы и в самом деле
работаете над совершенно новым проектом, вам, возможно, следует
322 Часть II. Разработка требований к ПО