Введение
Управление требованиями — это процесс документирования, анализа, прослеживания, приоритизации и согласования требований, а также контроля изменений и информирования заинтересованных сторон. Это непрерывный процесс, осуществляемый на протяжении всего проекта. Требование — это характеристика, которой должен соответствовать результат проекта (продукт или услуга).
Обзор
Целью управления требованиями является обеспечение того, чтобы организация документировала, верифицировала и удовлетворяла потребности и ожидания своих клиентов, а также внутренних и внешних заинтересованных сторон. Управление требованиями начинается с анализа и выявления целей и ограничений организации. Управление требованиями также включает в себя поддержку планирования требований, интеграцию требований и организацию работы с ними (атрибуты требований), а также взаимосвязи с другой информацией, реализующей требования, и изменения, связанные с ними. Установленная таким образом отслеживаемость используется для отчетности об удовлетворении интересов компании и заинтересованных сторон в части соответствия, полноты, охвата и непротиворечивости. Отслеживаемость также поддерживает управление изменениями как часть управления требованиями, позволяя оценить влияние изменений, вносимых в требования или связанные с ними элементы (например, функциональное влияние через связи с функциональной архитектурой), и облегчить внедрение этих изменений. Управление требованиями предполагает коммуникацию между членами проектной команды и заинтересованными сторонами, а также адаптацию к изменениям требований на протяжении всего проекта. Чтобы избежать ситуации, когда один тип требований превалирует над другим, крайне важно постоянное взаимодействие между членами команды разработчиков. Например, при разработке программного обеспечения для внутренних нужд бизнеса, потребности бизнеса могут быть настолько сильными, что он может игнорировать требования пользователей или полагать, что при создании вариантов использования пользовательские требования учитываются.
Отслеживаемость
Отслеживаемость требований подразумевает документирование жизненного цикла требования. Должна быть возможность проследить происхождение каждого требования, а каждое изменение требования должно быть задокументировано для обеспечения прослеживаемости. Даже использование требования после развертывания и применения реализованных функций должно быть отслеживаемым, чтобы определить его ценность для конкретного пользователя. Это также может быть полезно после развертывания, когда исследования пользователей показывают, что функция не используется, чтобы понять, зачем она изначально требовалась.
Деятельность по требованиям
На каждом этапе процесса разработки существуют ключевые мероприятия и методы управления требованиями. Для иллюстрации рассмотрим стандартный пятиэтапный процесс разработки, включающий этапы исследования, оценки осуществимости, проектирования, реализации и тестирования, а также выпуска.
Расследование
В ходе исследования первые три класса требований собираются у пользователей, от бизнеса и от команды разработки. Во всех этих областях задаются схожие вопросы: каковы цели, какие существуют ограничения, какие текущие инструменты или процессы уже используются и так далее. Только при полном понимании этих требований можно приступать к разработке функциональных требований. Как правило, требования не могут быть полностью определены в начале проекта. Некоторые из них будут меняться, либо из-за того, что они изначально не были выявлены, либо из-за влияния внутренних или внешних факторов в середине цикла разработки. Итогом этапа исследования является документ с требованиями, утвержденный всеми членами команды. В дальнейшем, в процессе активной разработки, этот документ будет критически важен для предотвращения разрастания области применения или внесения ненужных изменений. По мере развития системы каждая новая функция открывает новые возможности, поэтому спецификация требований помогает команде оставаться верной первоначальному видению и обеспечивает контролируемое обсуждение изменений области применения. Многие организации по-прежнему используют только документы для управления требованиями, однако другие управляют базовыми требованиями с помощью специализированного программного обеспечения. Эти инструменты позволяют хранить требования в базе данных и обычно включают функции автоматизации отслеживаемости (например, создание электронных связей между родительскими и дочерними требованиями или между тест-кейсами и требованиями), создание электронных базовых версий, контроль версий и управление изменениями. Как правило, такие инструменты содержат функцию экспорта, позволяющую создать документ спецификации путем экспорта данных о требованиях в стандартное приложение для работы с документами.
Дизайн
Предполагая, что затраты определены точно, а ожидаемые выгоды достаточно велики, проект может перейти к стадии проектирования. На стадии проектирования основной задачей управления требованиями является сопоставление результатов проектирования с документом требований, чтобы убедиться, что работа ведется в рамках заданного объема. И снова, гибкость – ключ к успеху. Вот классический пример успешного изменения объема работ в процессе реализации. В начале 80-х конструкторы Ford ожидали, что к концу десятилетия цена бензина достигнет 3,18 доллара за галлон. В середине разработки Ford Taurus цены стабилизировались на уровне около 1,50 доллара за галлон. Команда дизайнеров решила, что при сохранении низких цен на бензин они могут создать более крупный, комфортный и мощный автомобиль, и поэтому перепроектировали машину. Запуск Taurus установил общенациональные рекорды продаж, главным образом благодаря просторному салону и комфорту вождения. Однако в большинстве случаев отклонение от первоначальных требований в такой степени не приводит к успеху. Поэтому документ требований становится критически важным инструментом, помогающим команде принимать решения об изменениях в дизайне.
Конструкция и испытания
На этапе разработки и тестирования основная задача управления требованиями – обеспечить, чтобы работа и затраты оставались в рамках графика и бюджета, и чтобы разрабатываемый инструмент действительно соответствовал установленным требованиям. Основным инструментом на этом этапе является создание прототипов и итерационное тестирование. Для программного приложения пользовательский интерфейс можно создать на бумаге и протестировать с потенциальными пользователями, пока строится каркас программного обеспечения. Результаты этих тестов фиксируются в руководстве по дизайну пользовательского интерфейса и передаются команде разработчиков интерфейса, когда они готовы приступить к его разработке. Важным аспектом этого этапа является верификация. Эта работа подтверждает, что требование реализовано правильно. Существует четыре метода верификации: анализ, инспекция, тестирование и демонстрация. Например, результаты численного выполнения программного обеспечения или пропускная способность сети в ходе тестирования предоставляют аналитические доказательства выполнения требования. Инспекция документации поставщика или технических спецификаций также подтверждает соответствие требованиям. Тестирование или демонстрация программного обеспечения в лабораторных условиях также верифицирует требования: верификация посредством тестирования происходит, когда используется тестовое оборудование, не являющееся обычно частью лаборатории (или тестируемой системы). Подробные процедуры тестирования, в которых четко описаны этапы и ожидаемые результаты, однозначно определяют, что должно быть видно при выполнении каждого этапа. После завершения этапа или набора этапов ожидаемый результат последнего этапа указывает на то, что было замечено, и определяет, какие требования (идентифицированные по номеру) были верифицированы. Номер требования, его название и формулировка связаны между собой в другом разделе документа по тестированию.
Управление изменениями требований
Вряд ли какой-либо проект разработки программного обеспечения будет завершен без запроса на внесение изменений. Эти изменения могут быть вызваны изменениями в среде, в которой предполагается использовать готовый продукт, изменениями в бизнесе, изменениями в законодательстве, ошибками в первоначальной спецификации требований, технологическими ограничениями, изменениями в области безопасности и так далее. Деятельность по управлению изменениями требований включает в себя получение запросов на изменения от заинтересованных сторон, документирование полученных запросов, анализ и определение целесообразности и способа реализации, реализацию запроса на изменение, обеспечение качества реализации и закрытие запроса. Затем данные о запросах на изменения компилируются, анализируются, вычисляются соответствующие метрики и интегрируются в корпоративный репозиторий знаний.
Релиз
Управление требованиями не прекращается с выпуском продукта. С этого момента собираются данные о приемлемости приложения и используются в фазе исследования следующего поколения или выпуска. Таким образом, процесс начинается снова.
Инструментальная работа
Приобретение инструмента для поддержки управления требованиями – задача не из простых, и к ней следует подходить в рамках более масштабной инициативы по совершенствованию процессов. Долгое время бытовало мнение, что приобретенный и внедренный в проект инструмент способен решить все задачи, связанные с управлением требованиями. Однако покупка или разработка инструмента для поддержки управления требованиями может оказаться дорогостоящим решением. Организации могут столкнуться с затратными контрактами на поддержку, непропорционально большие усилия могут быть направлены на изучение инструмента и его настройку под конкретные нужды, а неправильное использование может привести к ошибочным решениям. Организациям следует придерживаться поэтапного подхода к выбору инструментов, соответствующих их потребностям, рассматривая этот вопрос в контексте всего процесса разработки и используемых инструментов. Обзор инструментов представлен в разделе «Прослеживаемость требований».