Литмир - Электронная Библиотека
Содержание  
A
A

2. Убедиться, что:

– при открытии окна обработка останавливается (попробовать кликнуть мышью по интерфейсу программы вне окна, не должно быть возможно);

– при нажатии «ОК» окно закрывается, обработка продолжается (попробовать кликнуть мышью по интерфейсу программы вне окна, должно быть возможно).

Такова традиционная модель: выясняем у заказчика, что нужно сделать, фиксируем, далее выполняем, проверяем результат на соответствие критериям, передаем результат заказчику.

Жизненный цикл требования состоит из его формулирования (сбора) и выполнения – это и есть простая модель требования.

Традиционная методология водопада отлично согласуется с такой моделью требования.

Поговорим об этом подробнее.

«Водопад» – методология на простой модели требований

Как известно, «Водопадная», или каскадная модель – модель процесса разработки программного обеспечения, в которой процесс разработки выглядит как поток, последовательно проходящий фазы анализа требований, проектирования, реализации, тестирования, интеграции и поддержки.

Традиционно для каскадной модели фазы следуют в таком порядке:

– определение требований;

– проектирование;

– конструирование;

– воплощение;

– тестирование и отладка;

– инсталляция;

– поддержка.

Переход от одной фазы к другой происходит только после полного и успешного завершения предыдущей.

Следуя каскадной модели, разработчик переходит от одной стадии к другой строго последовательно.

Сначала полностью завершается этап «определение требований», в результате чего получается список требований.

После того как требования полностью определены, происходит переход к проектированию и далее, последовательно, по всем фазам, вплоть до инсталляции и поддержки.

Задумаемся, какие ограничения устанавливаются для требований в момент завершения фазы определения требований по каскадной методологии? Ответ достаточно очевиден – в этот момент требования фиксируются и далее являются неизменными.

Что означает «неизменными» с точки зрения проекта? Как минимум, следующее:

– содержание требования, как его понимают все участники проекта, более не меняется;

– связи требования с другими требованиями прояснены и не изменяются значимым для понимания других требований образом;

– не возникает новых требований;

– существующие требования не удаляются из рассмотрения.

По существу, мы имеем вышеописанную нами простую модель требований, когда они зафиксированы, поняты и более не могут изменяться вплоть до окончания проекта.

Долгое время «водопадная» методология, как наиболее просто представляющая разработку, формировала упрощенный взгляд аналитиков и специалистов заказчика на требования, как нечто, что нужно просто собрать и выполнить.

Этот взгляд практически полностью акцентирует внимание аналитика на сборе и фиксации требований и связанных с этим коммуникации с заказчиком. Как только требование зафиксировано, работа аналитика считается выполненной вплоть до приемки результата.

Допущения простой модели требования довольно быстро ограничили область применения «чистой» «водопадной» методологии, потому что в реальности требования далеко не всегда столь стабильны, как допускается для этой методологии.

Это порождает серьезные риски в проектах, которые достаточно часто недооценивают.

Ответом на выявление этих рисков стало развитие гибридных, итерационных, гибких методологий, рассматривающих требования не статично, а в динамике, но об этом чуть позже.

Стоит отметить, что развитые инструменты управления требованиями (тот же IBM Rational), предоставляют возможности именно управления изменениями в требованиях, но их использование в реальных проектах не очень распространено в силу высоких затрат как на приобретение и сопровождение самих инструментов, так и на связанные с их использованием процессы. Поэтому встретить эти средства можно только в очень масштабных и длительных проектах, и то редко.

Для начинающих свой путь аналитиков часто фокусировка на сборе и фиксировании требований выглядит некоторым культом, инициацией в профессии. Они часто полагают, что суть работы аналитика в том, чтобы получить от заказчика требования и зафиксировать их.

Это верно, но лишь отчасти, другие аспекты работы по поддержанию жизненного цикла требований остаются в тени.

При этом простая модель не выделяет других аспектов, для этого нужна иная модель.

Рассмотрим детально каждое из допущений простой модели и сформируем эту другую модель.

Глава 2. Как работать, если требования постоянно меняются?

Вместо эпиграфа

"Однажды к раввину пришел посетитель и начал жаловаться:

– Ребе, у меня все так плохо, так плохо! Я потерял работу, моя жена болеет, дочка никак не может выйти замуж, мой сын не хочет учиться. Ребе, подскажите, может, вы знаете, что мне делать?

– Да-да, есть одно старинное средство, – ответил раввин. – Нужно взять много бумажек, написать на них: «И это все пройдет», и разложить во всех комнатах.

Озадаченный человек поблагодарил и ушел.

Через пару лет возвращается тот же человек и благодарит:

– Ребе, как я вам благодарен, как благодарен, просто нет слов! Я нашел отличную работу, жена выздоровела, дочка вышла замуж, сын закончил учебу и устроился на фирме. Все просто отлично! Спасибо вам большое! Да, только еще хотел спросить – те бумажки, которые я в квартире разложил, их можно уже убирать?

– Зачем убирать? – удивился раввин. – Пусть пока полежат".

Да, говорит известная притча, проекты, как и вся наша жизнь, крайне изменчивы.

И для требований, как отражения жизни, фраза «и это все пройдет» часто более чем справедлива.

Что это означает для нас, как специалистов, работающих с требованиями? Вернемся к постулатам простой модели требований и посмотрим на них с позиции течения жизни.

Результат такого рассмотрения обеспечит нам более приближенную к жизни, чем простая, модель требований.

Динамическая модель требований

Ранее мы назвали допущения-постулаты для простой модели требований.

Пройдем по этим ранее заявленным постулатам, которыми обеспечивалась характерная для простой модели фиксация «неизменности» требований.

Насколько неизменным в реальности является тот постулат, что содержание требования, как его понимают все участники проекта, более не меняется?

На самом деле, это допущение не очень точно, потому что со временем коммуникации приводят к углублению и, иногда, изменению понимания требований участниками проекта. Чем длиннее по времени и сложнее проект, тем более вероятно, что понимание требований со временем претерпит изменения.

Далее, постулат, что связи требования с другими требованиями прояснены и не изменяются значимым для понимания других требований образом в ходе проекта.

Связи – элемент, характеризующий сложность системы. Очевидно, что по мере углубления и детализации понимания могут быть как выявлены новые связи, так и установлена ошибочность представления о каких-то связях, ранее кажущихся существующими.

Так что, длительность и сложность проекта и в этом постулате существенно увеличивает вероятность того, что неизменность, в данном случае, связей будет нарушена.

К тем же выводам мы придем, рассмотрев набор требований с точки зрения неизменности его состава, то есть, что не возникает новых требований, а существующие требования не удаляются из рассмотрения.

Увы, и это гарантировать тем труднее, чем длительнее и сложнее проект.

Проиллюстрируем тем же примером диалогового окна программы, что был приведен при описании простой модели. Вот пара требований из списка:

2
{"b":"717843","o":1}