как его понимают все участники проекта, может изменяться в ходе проекта;
– связи требования с другими требованиями могут прояснятся и изменятся значимым для понимания других требований образом в ходе проекта;
– состав требований проекта может изменяться в ходе его выполнения, а именно, возможно возникновение новых требований, а какие-то существующие требования могут удалятся из рассмотрения как неактуальные.
Назовем это динамической моделью требования.
Перечитаем еще раз… Ничего стабильного… Как с этим работать то можно? Кажется, что с такими постулатами мы стоим на чем-то зыбком и совершенно неустойчивом… Как обрести твердую почву под ногами? Ответ прост – «замораживать» на время проведения работ. Именно так поступают строители, когда возводят сооружения на неустойчивых грунтах, также будем поступать и мы.
Стоит заметить, что если динамика возникает в требованиях, то в критериях приемки тоже появляется динамика, обусловленная этими изменениями требований.
Итерационные и гибкие методологии, как средства реализации динамической модели требований
Разработка чего бы то ни было, будь то программное обеспечение, опытный образец продукта, методика или иной продукт творческо-производственной деятельности, происходит по одному и тому же укрупненному циклу:
– требования;
– проектирование;
– изготовление;
– проверка соответствия требованиям;
– устранение несоответствий;
… (пока не будет устранено несоответствие требованиями)
– проверка соответствия требованиям;
– приемка (передача в эксплуатацию)
Предсказуемость (да и возможность) выхода из этого цикла зависит от двух параметров:
– фиксированы ли требования,
– возможно ли исправить несоответствие требованиям.
Оба параметра, по сути, есть качества требования, а именно, неизменность и исполнимость. Таким образом, естественным выбором является сформировать исполнимые требования и зафиксировать их до окончания производственного цикла.
Это не что иное, как ранее упомянутая простая модель требований со всеми ее достоинствами и недостатками.
Производство не может работать в условиях динамической модели требований, потому что это станет непредсказуемо по времени и затратам ресурсов.
В то же время простая модель может не отвечать жизненным реалиям, которые скорее описываются динамической моделью.
В этом случае необходимо представить динамическую модель как последовательность простых. То есть, на какое-то время требования фиксируются, затем опять могут изменяться, затем снова фиксируются и т.д. Как это сделать?
Решением являются итерационные и гибкие методологии, которые, по сути, вводят какие-то законченные шаги, следующие друг за другом, на каждом из которых происходит фиксация требований, производство, приемка результата.
Затем требования могут