Инженерия требований: от теории к практической реализации
Понимание инженерных требований: основа успешной разработки программного обеспечения
Инженерия требований является одним из наиболее важных этапов в разработке программных систем, приложений и сложных технологических решений. Она представляет собой систематический процесс выявления, анализа, документирования, проверки и управления потребностями, ожиданиями и ограничениями всех заинтересованных сторон, участвующих в проекте. При эффективном применении инженерия требований служит важным мостом между абстрактными теоретическими концепциями и осязаемой, практической реализацией, которая обеспечивает реальную ценность для бизнеса.
Дисциплина инженерии требований значительно эволюционировала за последние несколько десятилетий, превратившись из простых методов документации в сложную методологию, которая включает в себя элементы теории коммуникации, когнитивной психологии, бизнес-анализа и системного мышления. Организации, которые овладевают искусством и наукой проектирования требований, последовательно доставляют проекты, которые соответствуют или превосходят ожидания заинтересованных сторон, остаются в рамках бюджетных ограничений и достигают своих намеченных бизнес-целей.
Несмотря на свою признанную важность, разработка требований остается одним из самых сложных аспектов разработки программного обеспечения. Исследования последовательно показывают, что плохое управление требованиями является одной из ведущих причин сбоев в проектах, перерасхода средств и недовольства заинтересованных сторон. Разрыв между теоретическими знаниями и практическим применением часто оставляет команды, пытающиеся перевести принципы учебника в практические процессы, которые работают в реальных средах с реальными ограничениями.
Основные принципы инженерии требований
По своей сути, инженерия требований включает в себя несколько фундаментальных принципов, которые направляют практиков к успешным результатам. Понимание этих принципов обеспечивает теоретическую основу, необходимую для эффективного практического применения в различных контекстах проекта и организационной среде.
Центричный подход заинтересованных сторон
Разработка требований начинается с признания того, что программные системы существуют для обслуживания людей и организаций. Каждое требование в конечном итоге восходит к потребностям заинтересованных сторон, будь то конечный пользователь, руководитель бизнеса, регулирующий орган или член технической команды. Подход, ориентированный на заинтересованных сторон, означает активное взаимодействие со всеми соответствующими сторонами, понимание их перспектив и балансирование конкурирующих интересов для достижения требований, которые служат более широким целям проекта.
Эффективное управление заинтересованными сторонами требует выявления всех соответствующих сторон на ранних этапах жизненного цикла проекта. Это включает в себя очевидные заинтересованные стороны, такие как конечные пользователи и спонсоры проекта, но также и менее заметные заинтересованные стороны, такие как группы технического обслуживания, персонал по безопасности, сотрудники по соблюдению и даже конкуренты, действия которых могут влиять на системные требования. Каждая группа заинтересованных сторон приносит уникальные перспективы, приоритеты и ограничения, которые должны быть поняты и включены в процесс проектирования требований.
Итеративное и инкрементальное открытие
Требования редко полностью известны в начале проекта. Вместо этого они возникают и развиваются в процессе итеративного обнаружения, уточнения и проверки. Этот принцип признает присущую неопределенность в сложных программных проектах и охватывает изменения как естественную часть процесса разработки, а не провал первоначального планирования.
Итеративный характер разработки требований означает, что команды должны устанавливать процессы для непрерывного обнаружения и уточнения требований на протяжении всего жизненного цикла проекта. Ранние требования обеспечивают отправную точку и направление, но команды должны ожидать и планировать, чтобы требования развивались, поскольку заинтересованные стороны получают лучшее понимание того, что возможно, поскольку условия бизнеса меняются, а прототипы и ранние выпуски раскрывают новые идеи о потребностях пользователей и возможностях системы.
Четкая коммуникация и документация
Требования служат средством коммуникации между различными заинтересованными сторонами, которые часто говорят на разных профессиональных языках и имеют разные ментальные модели создаваемой системы. Заинтересованные стороны бизнеса думают с точки зрения процессов и результатов, пользователи думают с точки зрения задач и рабочих процессов, а разработчики думают с точки зрения компонентов и алгоритмов. Документация требований должна соединить эти различные перспективы с использованием четкого, однозначного языка, который все стороны могут понять.
Эффективная документация по требованиям должна быть достаточно конкретной, чтобы направлять решения по внедрению и обеспечивать проверку, но достаточно понятной, чтобы нетехнические заинтересованные стороны могли подтвердить, что их потребности точно отражены. Это часто требует множественного представления одних и тех же требований, используя различные форматы и уровни детализации, подходящие для разных аудиторий.
Процесс разработки требований: комплексная структура
Хотя конкретные подходы различаются в разных организациях и методологиях, большинство процессов разработки требований включают в себя несколько основных видов деятельности, которые работают вместе, чтобы превратить потребности заинтересованных сторон в подтвержденные, документированные требования, готовые к реализации.
Требования к элицитации: выявление того, что действительно нужно заинтересованным сторонам
Выявление требований — это процесс активного сбора информации о потребностях заинтересованных сторон, бизнес-процессах, системных ограничениях и целях проекта. Этот этап выходит за рамки простого вопроса заинтересованным сторонам, чего они хотят; он включает в себя глубокое расследование, чтобы выявить незаявленные предположения, скрытые потребности и основные проблемы, которые система должна решать.
Успешное выдвижение требований использует несколько методов для сбора информации с разных точек зрения. Интервью предоставляют возможности для углубленного изучения индивидуальных потребностей заинтересованных сторон и позволяют инженерам по требованиям глубже исследовать сложные темы. Интервью один на один особенно хорошо работают для понимания потребностей ключевых заинтересованных сторон и изучения чувствительных тем, которые могут не всплывать в групповых настройках.
Семинары и облегченные сессии объединяют различные заинтересованные стороны для совместного изучения требований, разрешения конфликтов и построения общего понимания. Эти сессии используют групповую динамику для генерации идей, выявления зависимостей и достижения консенсуса по приоритетам. Хорошо организованные семинары могут выполнять в течение нескольких часов то, что может занять недели через индивидуальные интервью, хотя они требуют квалифицированной помощи, чтобы обеспечить все голоса услышаны и дискуссии остаются продуктивными.
Наблюдение и этнографические исследования включают наблюдение за пользователями в их естественной рабочей среде, чтобы понять, как они на самом деле выполняют задачи, в отличие от того, как они описывают свою работу в интервью. Этот метод часто раскрывает обходные пути, неформальные процессы и негласные знания, которые пользователи могут не думать упоминать в интервью. Наблюдение особенно ценно для понимания сложных рабочих процессов и выявления возможностей для улучшения процесса.
Анализ документов рассматривает существующую документацию, включая описания бизнес-процессов, руководства пользователя, нормативные требования и спецификации устаревшей системы. Этот метод обеспечивает ценный контекст и помогает определить требования, которые заинтересованные стороны могут предположить очевидными и поэтому не упоминать явно. Анализ документов также помогает обеспечить соблюдение существующих стандартов и правил.
Вопросники и опросы позволяют инженерам по требованиям эффективно собирать информацию от большого числа заинтересованных сторон. Хотя опросы менее гибкие, чем интервью, они могут охватывать географически распределенные заинтересованные стороны и предоставлять количественные данные о предпочтениях и приоритетах пользователей.
Анализ требований: понимание собранной информации
После того, как требования были выявлены, они должны быть проанализированы для выявления конфликтов, пробелов, зависимостей и возможностей для оптимизации. Анализ требований превращает исходный вклад заинтересованных сторон в согласованные, согласованные требования, которые могут направлять разработку и внедрение системы.
Анализ начинается с классификации и организации требований по логическим категориям.Общие схемы классификации различают функциональные требования, которые описывают, что система должна делать, и нефункциональные требования, которые описывают, насколько хорошо система должна выполнять. Требования также могут быть классифицированы группой заинтересованных сторон, системным компонентом, уровнем приоритета или другими критериями, относящимися к контексту проекта.
Решение конфликтов касается ситуаций, когда разные заинтересованные стороны имеют несовместимые требования или когда требования противоречат ограничениям проекта. Решить конфликты требует понимания основных потребностей, определяющих каждое требование, и поиска творческих решений, которые удовлетворяют основные потребности, даже если они не выполняют первоначальные запросы точно так, как указано. Это часто включает в себя переговоры и анализ компромиссов для достижения приемлемых компромиссов.
Анализ осуществимости оценивает, могут ли требования быть реализованы в рамках ограничений проекта, включая бюджет, график, технологические возможности и организационный потенциал. Этот анализ может выявить требования, которые технически невозможны, экономически нецелесообразны или несовместимы с другими целями проекта. Ранний анализ осуществимости не позволяет командам выполнять требования, которые они не могут выполнить.
Моделирование требований создает абстрактные представления требований с использованием диаграмм, формальных обозначений и структурированных спецификаций. Модели помогают заинтересованным сторонам визуализировать поведение системы, выявлять отсутствующие требования и проверять, что документированные требования точно отражают их потребности. Общие методы моделирования включают диаграммы сценариев использования, диаграммы потоков данных, машины состояний и диаграммы отношений с объектами.
Спецификация требований: документирование на предмет точности и ясности
Спецификация требований предполагает создание формальной документации, которая фиксирует требования в ясной, полной и однозначной манере.Тификация служит контрактом между заинтересованными сторонами и командой разработчиков, обеспечивая основу для проектирования, внедрения, тестирования и деятельности по управлению проектами.
Хорошо структурированная спецификация требований обычно включает в себя несколько ключевых компонентов. Введение обеспечивает контекст, описывая цель системы, целевую аудиторию для спецификации и объем проекта. Этот раздел помогает читателям понять общую картину, прежде чем погрузиться в подробные требования.
В разделе общего описания представлен высокоуровневый обзор системы, включая ее основные функции, характеристики пользователя, операционную среду и ограничения. Этот раздел помогает заинтересованным сторонам понять, как индивидуальные требования вписываются в более широкий системный контекст.
Конкретные требования составляют ядро документа спецификации, предоставляя подробные описания функциональных и нефункциональных требований. Каждое требование должно быть однозначно идентифицировано, четко указано и включать критерии принятия, которые определяют, как требование будет проверяться. Требования должны быть написаны с использованием последовательной терминологии и структурированных форматов, которые делают их простыми для понимания и отслеживания.
Технические характеристики эффективных требований имеют несколько качественных характеристик. Они полные , включая все необходимые требования без существенных пробелов. последовательные , свободные от противоречий между различными требованиями. недвусмысленные , каждое требование имеет только одну возможную интерпретацию. поддающиеся проверке , с четкими критериями для определения того, было ли каждое требование выполнено. поддающиеся изменению , структурированные для включения изменений без обширной переработки. отслеживаемые , с четкими отношениями между требованиями и их источниками, обоснованиями и элементами реализации.
Валидация требований: обеспечение точности и полноты
Проверка требований подтверждает, что документально оформленные требования точно отражают потребности заинтересованных сторон и что в случае их реализации требования приведут к созданию системы, которая достигнет намеченных целей. Проверка улавливает ошибки и упущения до того, как они будут распространяться на проектирование и реализацию, где их исправление становится намного дороже.
Обзоры требований включают в себя систематический анализ документации по требованиям заинтересованными сторонами, экспертами по предметам и членами технической группы. Обзоры могут быть формальными проверками с определенными ролями и процедурами или неофициальными сквозняками, когда инженер по требованиям предъявляет требования к заинтересованным сторонам для обратной связи. Обзоры особенно эффективны при выявлении неясностей, несоответствий и отсутствующих требований.
Прототипирование создаёт рабочие модели системы, с которыми заинтересованные стороны могут взаимодействовать для проверки требований.Прототипы делают абстрактные требования конкретными, помогая заинтересованным сторонам визуализировать, как система будет работать, и идентифицировать требования, которые являются неверными, неполными или отсутствующими.Прототипы варьируются от простых бумажных макетов до сложных интерактивных симуляций, с соответствующим уровнем точности в зависимости от того, что необходимо проверить.
Разработка тестовых сценариев предполагает создание сценариев испытаний на основе требований до начала реализации. Процесс разработки тестовых случаев часто выявляет неоднозначности и пробелы в требованиях, которые могут быть не очевидны из простого чтения спецификации. Если требование не может быть протестировано, оно, вероятно, недостаточно конкретно для руководства реализацией.
Требование моделирования и моделирования использует формальные модели для анализа требований к полноте, последовательности и выполнимости. Автоматизированные инструменты анализа могут проверять модели на наличие логических противоречий, выявлять недостижимые состояния и проверять, что требования удовлетворяют заданным свойствам. В то время как более технические, чем другие методы проверки, моделирование и моделирование могут улавливать тонкие ошибки, которые могут пропустить рецензенты.
Управление требованиями: контроль изменений на протяжении всего проекта
Управление требованиями включает в себя действия, необходимые для поддержания требований на протяжении всего жизненного цикла проекта по мере развития понимания, изменения приоритетов и условий ведения бизнеса.Эффективное управление требованиями гарантирует, что изменения оцениваются, утверждаются и реализуются контролируемым образом, что поддерживает целостность системы и согласование проектов.
Процессы управления изменениями устанавливают процедуры предложения, оценки, утверждения и реализации изменений требований. Формальный процесс контроля изменений предотвращает неконтролируемый ползучесть области, позволяя законным изменениям быть включенными, когда они добавляют ценность. Запросы на изменения должны оцениваться на предмет их влияния на график, бюджет и другие требования до утверждения.
Версионный контроль поддерживает историю изменений требований, позволяя командам отслеживать, как требования развивались и возвращаться к предыдущим версиям, если это необходимо.Версионный контроль необходим для понимания того, почему были приняты решения, и для управления требованиями в нескольких выпусках или вариантах продукта.
Требование прослеживаемости устанавливает и поддерживает связь между требованиями и другими артефактами проекта, включая потребности заинтересованных сторон, элементы дизайна, модули кода и тестовые случаи. прослеживаемость позволяет анализировать воздействие при изменении требований, помогает обеспечить выполнение и тестирование всех требований и поддерживает соблюдение нормативных требований, которые требуют прослеживаемости.
Отслеживание состояния отслеживает состояние каждого требования на протяжении всего жизненного цикла проекта, от первоначального предложения до реализации и проверки. Отслеживание состояния помогает руководителям проектов понять прогресс, выявить узкие места и убедиться, что никакие требования не игнорируются.
Теория и практика преодоления: стратегии применения в реальном мире
В то время как теоретические рамки обеспечивают ценное руководство, применение инженерных принципов требований в реальных проектах требует адаптации общих концепций к конкретным организационным контекстам, проектным ограничениям и возможностям команды.Успешные практики разрабатывают стратегии для перевода теории на практику, которые работают в их уникальных обстоятельствах.
Адаптация процессов к контексту проекта
Ни один единый процесс разработки требований не подходит для всех проектов. Соответствующий уровень формальности, детализации документации и вовлеченности заинтересованных сторон зависит от факторов, включая размер проекта, сложность, риск, нормативную среду и организационную культуру. Малые проекты с совместно расположенными командами и стабильными требованиями могут преуспеть с легкими процессами, в то время как крупные, распределенные проекты в регулируемых отраслях требуют более строгих подходов.
Адаптация начинается с понимания характеристик и ограничений проекта. Проекты с высоким риском, в которых неудача может привести к значительным финансовым потерям, опасностям безопасности или нормативным штрафам, оправдывают более тщательные инженерные процессы требований. Проекты со многими заинтересованными сторонами или сложные требования интеграции требуют большего внимания к анализу требований и разрешению конфликтов. Проекты в быстро меняющихся бизнес-средах должны подчеркивать гибкость и итеративную уточнение по всеобъемлющей предварительной спецификации.
Организационная зрелость также влияет на процесс адаптации. Организации, новые для формальных требований инженерия должна начинать с базовых практик и постепенно принимать более сложные методы по мере развития возможностей. Попытка реализовать чрезмерно сложные процессы до того, как организация будет готова часто приводит к разочарованию и отказу от требований инженерных практик в целом.
Интеграция инженерных требований с методологиями разработки
Инженерия требований должна соответствовать общей методологии разработки, используемой организацией. Традиционные подходы к водопаду рассматривают инженерию требований как отдельную фазу, которая производит полную спецификацию до начала проектирования. Agile методологии интегрируют инженерию требований на протяжении всего процесса разработки с требованиями, возникающими и развивающимися посредством постоянного сотрудничества заинтересованных сторон.
В Проворные среды, разработка требований принимает форму постоянного улучшения задела продукта, разработки истории пользователя и определения критериев принятия. Вместо того, чтобы создавать всеобъемлющие спецификации заранее, Agile команды поддерживают приоритетное задание функций и работают с владельцами продуктов, чтобы разработать требования как раз вовремя для реализации. Этот подход охватывает изменения и позволяет командам быстро реагировать на новую информацию и меняющиеся приоритеты.
Agile requirements engineering подчеркивает личную связь по поводу комплексной документации, хотя некоторая документация остается необходимой для сложных функций, соответствия нормативным требованиям и сохранения знаний. Пользовательские истории обеспечивают легкий формат для захвата требований с точки зрения пользователя, в то время как критерии принятия определяют конкретные условия, которые должны быть выполнены для того, чтобы история считалась полной.
В традиционных подходах, основанных на планировании, инженерия требований выдает подробные спецификации, которые определяют последующие этапы проектирования и реализации. Этот подход хорошо работает, когда требования относительно стабильны и могут быть полностью поняты до значительных инвестиций в разработку. Подходы, основанные на планировании, обеспечивают четкие базовые условия для планирования проекта и контроля изменений, хотя они менее гибки, когда требования часто меняются.
Многие организации применяют гибридные подходы, которые сочетают в себе элементы как Agile, так и традиционных методологий. Например, команды могут заранее разработать требования высокого уровня и архитектуру для определения общего направления, а затем использовать Agile-практики для разработки и реализации требований итеративно. Гибридные подходы могут обеспечить гибкость Agile при сохранении структуры и предсказуемости, которые требуются некоторым организациям.
Формирование эффективных отношений с заинтересованными сторонами
Разработка требований - это в основном социальная деятельность, которая зависит от эффективной коммуникации и сотрудничества между различными заинтересованными сторонами.Построение прочных отношений с заинтересованными сторонами имеет важное значение для выявления точных требований, разрешения конфликтов и поддержания взаимодействия на протяжении всего проекта.
Эффективное взаимодействие с заинтересованными сторонами начинается с определения всех соответствующих заинтересованных сторон на ранних этапах проекта. Это включает в себя не только очевидных заинтересованных сторон, таких как конечные пользователи и спонсоры проекта, но и менее заметные стороны, чьи потребности или ограничения могут повлиять на систему. Методы анализа заинтересованных сторон помогают идентифицировать заинтересованные стороны, понимать их интересы и влияние и разрабатывать соответствующие стратегии взаимодействия для каждой группы.
Построение доверия с заинтересованными сторонами требует демонстрации компетентности, надежности и подлинного интереса к пониманию их потребностей. Инженеры-требователи должны активно слушать, задавать уточняющие вопросы и подтверждать свое понимание, прежде чем двигаться вперед. Следование обязательствам и информирование заинтересованных сторон о прогрессе и решениях укрепляет доверие и поощряет дальнейшее участие.
Управление ожиданиями включает в себя честность в отношении того, что возможно в рамках ограничений проекта, и помощь заинтересованным сторонам в понимании компромиссов между конкурирующими требованиями. Инженеры по требованиям должны объяснять технические ограничения и последствия затрат с точки зрения, которую могут понять заинтересованные стороны, и работать совместно, чтобы найти решения, которые уравновешивают идеальные результаты с практическими ограничениями.
Содействие сотрудничеству между заинтересованными сторонами с различными перспективами и приоритетами требует квалифицированных переговоров и разрешения конфликтов. Инженеры по требованиям часто служат посредниками, помогая заинтересованным сторонам найти общую почву и достичь консенсуса по требованиям, которые служат более широким целям проекта, даже если они не полностью удовлетворяют всем индивидуальным предпочтениям.
Эффективно расставить приоритеты
Большинство проектов имеют больше потенциальных потребностей, чем может быть реализовано в пределах имеющихся временных и бюджетных ограничений. Эффективная приоритизация обеспечивает, чтобы наиболее ценные потребности были реализованы в первую очередь и чтобы ресурсы выделялись на функции, которые обеспечивают наибольшую выгоду для заинтересованных сторон и организации.
Несколько методов поддерживают требования приоритизации.MoSCoW приоритизация классифицирует требования как Должны иметь, Должны иметь, Могли иметь или не будут иметь в этот раз. Эта простая схема помогает заинтересованным сторонам различать существенные требования и функции «хорошо иметь», хотя это может привести к тому, что слишком много требований классифицируются как «должны иметь», если не применяется строго.
Приоритизация на основе ценности ранжирует требования в соответствии с ценностью бизнеса, которую они обеспечивают по отношению к стоимости их реализации. Этот подход фокусирует ресурсы на высокоценных, недорогих требованиях, в первую очередь, максимизируя отдачу от инвестиций. Оценка стоимости должна учитывать как ощутимые выгоды, такие как экономия затрат и получение доходов, так и нематериальные выгоды, такие как повышение удовлетворенности пользователей и конкурентное преимущество.
Приоритизация на основе рисков придает более высокий приоритет требованиям, которые устраняют значительные риски или позволяют смягчать риски. Этот подход особенно подходит для проектов, где определенные технические или бизнес-риски должны быть устранены на ранней стадии, чтобы избежать сбоя проекта.
Приоритизация на основе зависимости рассматривает технические и логические зависимости между требованиями, гарантируя, что основополагающие требования реализуются до функций, которые зависят от них.Анализ зависимостей помогает создавать реалистичные последовательности реализации и идентифицирует требования, которые позволяют или ограничивают другие функции.
Эффективная приоритизация предполагает участие заинтересованных сторон в принятии решений при обеспечении структуры и критериев для руководства обсуждениями. Инженеры по требованиям должны содействовать проведению сессий приоритезации, представлять соответствующую информацию о затратах и зависимостях и помогать заинтересованным сторонам понять последствия различных вариантов приоритезации.
Основные методы для инженерной практики требований
Успешная разработка требований опирается на набор проверенных методов, которые поддерживают деятельность по выявлению, анализу, спецификации и валидации. Освоение этих методов позволяет практикам эффективно справляться с различными ситуациями проекта и потребностями заинтересованных сторон.
Моделирование пользовательских ситуаций: захват взаимодействия пользователей
Моделирование примера использования описывает, как пользователи взаимодействуют с системой для достижения конкретных целей. В примере использования идентифицируется субъект (пользователь или внешняя система), цель, которую актер хочет достичь, и последовательность взаимодействий между актером и системой, необходимых для достижения этой цели. Случаи использования обеспечивают ориентированный на пользователя взгляд на функциональность системы, который заинтересованные стороны могут легко понять и проверить.
Каждый вариант использования включает в себя первичный поток, описывающий нормальную последовательность взаимодействий, а также альтернативные потоки, которые обрабатывают вариации и исключения. Эта структура помогает обеспечить, чтобы требования касались не только сценариев счастливого пути, но и условий ошибок и крайних случаев, которые в противном случае могли бы быть упущены.
Диаграммы сценариев использования обеспечивают визуальный обзор функциональности системы, показывая актеров, варианты использования и отношения между ними.Хотя диаграммы полезны для связи, реальная ценность моделирования сценариев использования исходит из подробных текстовых описаний, которые точно определяют, как система должна вести себя в разных сценариях.
Особенно хорошо работают варианты использования для систем с четко определенными взаимодействиями пользователей и четкими границами задач. Они менее подходят для систем со сложными алгоритмами, преобразованиями данных или непрерывной обработкой, где модель взаимодействия не применяется естественным образом. В таких случаях варианты использования могут быть дополнены другими методами моделирования, которые лучше фиксируют соответствующие системные характеристики.
Пользовательские истории: спецификация Agile Requirements
Истории пользователей обеспечивают легкий формат для захвата требований в Agile средах разработки. Пользовательская история описывает функцию с точки зрения человека, который будет ее использовать, как правило, следуя шаблону: «Как [тип пользователя], я хочу [некоторую цель], чтобы [некоторая причина]». Этот формат сохраняет фокус на ценности пользователя, а не на технических деталях реализации.
Истории пользователей намеренно краткие, служащие заполнителями для разговоров между разработчиками и заинтересованными сторонами, а не всеобъемлющими спецификациями.Детали появляются в ходе обсуждения при планировании и реализации спринта, позволяя требованиям развиваться на основе обучения и обратной связи.
Каждая история пользователя должна включать критерии принятия, которые определяют конкретные условия, которые должны быть выполнены для того, чтобы история считалась полной. Критерии принятия обеспечивают детали, необходимые для реализации и тестирования, сохраняя при этом фокус истории на ценности пользователя. Хорошо написанные критерии принятия являются конкретными, проверяемыми и ориентированными на результаты, а не на подходы к реализации.
Пользовательские истории работают лучше всего, когда команда разработчиков имеет регулярный доступ к заинтересованным сторонам, которые могут отвечать на вопросы и предоставлять обратную связь.Когда доступность заинтересованных сторон ограничена или когда нормативные требования требуют всеобъемлющей документации, пользовательские истории могут потребоваться в дополнение к более подробным спецификациям.
Требование матриц отслеживания: поддержание соединений
Матрица прослеживаемости требований (RTM) документирует отношения между требованиями и другими артефактами проекта, включая бизнес-цели, элементы дизайна, модули кода и тестовые случаи.Матрица обычно принимает форму таблицы с требованиями, перечисленными в строках, и связанными артефактами в столбцах, с ячейками, указывающими, где существуют отношения.
Прослеживаемость служит нескольким важным целям. Она позволяет анализу воздействия , показывая, какие элементы дизайна, код и тесты влияют на изменение требования. Она поддерживает анализ покрытия , проверяя, что все требования реализованы и протестированы. соответствие , предоставляя доказательства того, что нормативные требования рассматриваются на протяжении всего жизненного цикла разработки.
Для поддержания прослеживаемости требуется дисциплина и поддержка инструментов. Матрики прослеживаемости вручную быстро устаревают по мере развития проектов, поэтому большинство организаций используют инструменты управления требованиями, которые автоматически поддерживают ссылки на прослеживаемость и предоставляют отчеты, показывающие статус прослеживаемости. Инвестиции в поддержание прослеживаемости окупаются за счет сокращения переделки, лучшего управления изменениями и улучшения качества.
Прослеживаемость должна быть двунаправленной, что позволяет осуществлять навигацию как вперед от требований к реализации, так и назад от реализации к требованиям.Прослеживаемость вперед помогает обеспечить выполнение всех требований, а отслеживаемость назад помогает идентифицировать осиротевшие элементы дизайна или код, не поддерживающий никаких требований.
Прототипирование: делая требования осязаемыми
Прототипирование создает рабочие модели системы, с которыми заинтересованные стороны могут взаимодействовать для проверки требований и изучения альтернатив дизайна.Прототипы делают абстрактные требования конкретными, помогая заинтересованным сторонам визуализировать, как система будет работать, и выявлять требования, которые являются неправильными, неполными или отсутствующими.
Прототипы, которые выбрасываются, быстро создаются для изучения конкретных вопросов или проверки конкретных требований, а затем отбрасываются, как только они служат своей цели. Эти прототипы отдают приоритет скорости и гибкости по сравнению с качеством кода, позволяя быстро экспериментировать без бремени поддержания кода качества производства.
Эволюционные прототипы начинаются как простые модели и постепенно эволюционируют в конечную систему посредством итеративной доработки. Этот подход хорошо работает, когда требования неопределенны и, вероятно, изменятся на основе обратной связи с пользователем. Каждая итерация добавляет функциональность и улучшает качество, пока прототип не станет производственной системой.
Соответствующий уровень точности прототипа зависит от того, что необходимо проверить. Прототипы с низкой точностью , такие как бумажные эскизы или каркасы, быстро создаются и хорошо работают для изучения общего рабочего процесса и информационной архитектуры. Прототипы с высокой точностью с реалистичным визуальным дизайном и интерактивным поведением лучше подходят для проверки подробных моделей взаимодействия и решений визуального дизайна.
Прототипирование особенно ценно для требований пользовательского интерфейса, где заинтересованные стороны часто пытаются представить конечный продукт только из текстовых описаний. Видение и взаимодействие с прототипом помогает заинтересованным сторонам обеспечить более конкретную и действенную обратную связь, чем они могли бы от рассмотрения спецификаций.
Сценарий анализа: исследование поведения системы
Сценарии описывают конкретные ситуации, в которых будет использоваться система, включая контекст, вовлеченных субъектов и последовательность событий. Хотя сценарии, как правило, более конкретны и повествовательны, описывая конкретные случаи, а не общие закономерности. Сценарии помогают заинтересованным сторонам понять, как система будет работать в реалистичных ситуациях, и определить требования, которые могут быть пропущены более абстрактными методами анализа.
Эффективные сценарии включают в себя богатые контекстуальные детали, которые помогают заинтересованным сторонам представить себя в ситуации. Они описывают не только то, что происходит, но и почему это происходит и что пытаются достичь действующие лица. Этот контекст помогает выявить скрытые требования и предположения, которые в противном случае могли бы остаться скрытыми.
Анализ сценариев особенно хорошо подходит для изучения крайних случаев и условий исключения. Пройдя по конкретным сценариям, команды могут определить ситуации, когда нормальные процессы ломаются и требуются требования к обработке исключений. Сценарии также помогают подтвердить, что требования работают вместе согласованно для поддержки реалистичных рабочих процессов.
Моделирование данных: определение информационных структур
Моделирование данных создает формальные представления информации, которую система будет хранить, обрабатывать и обменивать. Диаграммы отношений сущности показывают типы объектов данных, их атрибуты и отношения между объектами. Модели данных помогают обеспечить, чтобы требования к хранению данных и манипулированию были полными и последовательными.
Эффективное моделирование данных определяет не только то, какие данные нужны системе, но и ограничения на эти данные, включая типы данных, допустимые диапазоны значений, требования к уникальности и правила ссылочной целостности. Эти ограничения становятся требованиями, которые система должна обеспечивать для поддержания качества и согласованности данных.
Моделирование данных часто выявляет недостающие требования, выделяя информацию, которая нужна системе, но которая не была явно обсуждена. Например, моделирование данных о клиентах может выявить необходимость отслеживания предпочтений клиентов, истории контактов или статуса учетной записи, которые не были упомянуты в первоначальных обсуждениях требований.
Инструменты и технологии, поддерживающие требования Инженерия
Современные требования инженерии опирается на специализированные инструменты, которые поддерживают выдвижение, документацию, анализ, валидацию и управление деятельностью.Выбор и эффективное использование соответствующих инструментов может значительно повысить требования инженерной эффективности и результативности.
Платформы управления требованиями
Выделенные платформы управления требованиями обеспечивают всестороннюю поддержку всего жизненного цикла проектирования требований. Эти инструменты обычно включают возможности для сбора требований и документации, управления прослеживаемостью, контроля версий, управления изменениями и отчетности.
IBM Engineering Requirements Management DOORS (ранее Rational DOORS) — одна из наиболее устоявшихся платформ управления требованиями, особенно популярная в аэрокосмической, оборонной и автомобильной промышленности, где необходимо строгое управление требованиями.
Jama Connect предлагает современную веб-платформу для управления требованиями с сильной поддержкой для совместной работы, прослеживаемости и интеграции с инструментами разработки. Jama подчеркивает простоту использования и сотрудничество с заинтересованными сторонами, обеспечивая при этом строгость, необходимую для сложной разработки продукта.
Polarion Requirements обеспечивает управление требованиями, интегрированное с более широкими возможностями управления жизненным циклом приложений. Эта интеграция обеспечивает бесшовную прослеживаемость от требований посредством проектирования, внедрения, тестирования и развертывания.
При выборе платформы управления требованиями организациям следует учитывать такие факторы, как сложность их требований, необходимость прослеживаемости и соответствия, интеграция с существующими инструментами и техническая изощренность пользователей.Предпринимательские платформы предоставляют мощные возможности, но требуют значительных инвестиций в лицензирование, обучение и адаптацию процессов.
Agile инструменты управления проектами
Организации, использующие Agile-методологии, часто управляют требованиями с помощью Agile-инструментов управления проектами, а не специализированных платформ управления требованиями.Эти инструменты поддерживают создание пользовательской истории, управление задолженностями, планирование спринта и отслеживание прогресса.
Jira является наиболее широко используемым инструментом управления проектами Agile, предлагающим гибкое отслеживание проблем, настраиваемые рабочие процессы и широкие возможности интеграции. Jira поддерживает пользовательские истории, эпосы и критерии принятия, с функциями для определения приоритетов и управления спринтом. Хотя Jira специально не предназначена для управления требованиями, гибкость Jira позволяет командам адаптировать его к своим инженерным процессам требований.
Azure DevOps обеспечивает интегрированную поддержку Agile-планирования, контроля версий, автоматизации сборки и тестирования. Его возможности отслеживания рабочих элементов поддерживают управление требованиями к требованиям через пользовательские истории, функции и элементы заднего ряда продуктов, со встроенной прослеживаемостью кода и тестов.
VersionOne (в настоящее время входит в состав Digital.ai) фокусируется на управлении проектами Agile с сильной поддержкой масштабирования Agile-практик в крупных организациях. Он предоставляет возможности для управления требованиями на нескольких уровнях от стратегических тем до подробных пользовательских историй.
Инструменты моделирования и диаграммирования
Инструменты визуального моделирования поддерживают анализ и спецификацию требований с помощью диаграмм, включая диаграммы сценариев использования, модели данных, технологические потоки и машины состояний. Эти инструменты помогают командам визуализировать требования и выявлять пробелы или несоответствия.
Enterprise Architect предоставляет комплексные возможности моделирования, поддерживающие UML, BPMN, SysML и другие языки моделирования. Он включает в себя функции управления требованиями и может генерировать документацию из моделей, поддерживая подходы к разработке, основанные на моделях.
Lucidchart предлагает облачные диаграммы с интуитивно понятным интерфейсом и сотрудничеством в реальном времени. В то время как менее формальный, чем Enterprise Architect, простота использования Lucidchart делает его популярным для создания диаграмм, которые сообщают требования различным заинтересованным сторонам.
Draw.io (теперь diagrams.net) предоставляет бесплатные возможности построения диаграмм с открытым исходным кодом без затрат на лицензирование. Он поддерживает широкий спектр типов диаграмм и интегрируется с популярными платформами совместной работы, что делает его доступным для команд с ограниченным бюджетом инструментов.
Платформы для совместной работы и документирования
Современные требования инженерии подчеркивает сотрудничество между распределенными заинтересованными сторонами. платформы сотрудничества поддерживают связь в реальном времени, совместное использование документов и совместное редактирование, которые позволяют эффективно разрабатывать требования через географические и организационные границы.
Confluence предоставляет вики-документацию с контролем версий, комментированием и интеграцией с Jira. Многие команды используют Confluence для документирования требований, захвата заметок о заседаниях и поддержания баз знаний проекта, которые дополняют более формальные инструменты управления требованиями.
Команды Microsoft и Slack облегчают общение в реальном времени и обмен файлами, поддерживая текущие разговоры, которые необходимы для выдвижения и проверки требований. Интеграция с другими инструментами позволяет обсуждения требований связывать с формальной документацией требований.
Miro и Mural предоставляют виртуальные возможности белой доски, которые поддерживают семинары по требованиям к совместной работе и сеансы мозгового штурма. Эти инструменты особенно ценны для распределенных команд, которым необходимо воспроизвести динамику совместной работы в личных семинарах.
Инструменты прототипирования и Wireframing
Специализированные инструменты прототипирования позволяют быстро создавать интерактивные макеты, которые помогают проверять требования пользовательского интерфейса. Эти инструменты варьируются от простых приложений для проволочного обрамления до сложных платформ, которые создают прототипы высокой точности с реалистичными взаимодействиями.
Figma стала ведущей платформой для совместного проектирования и прототипирования, предлагая возможности совместной работы в режиме реального времени, библиотеки компонентов и интерактивные возможности прототипирования. Подход Figma на основе браузера устраняет барьеры установки и позволяет легко обмениваться информацией с заинтересованными сторонами.
Axure RP предоставляет мощные возможности прототипирования, включая условную логику, динамический контент и сложные взаимодействия.Axure особенно полезен для прототипирования сложных приложений, где реалистичное поведение взаимодействия важно для проверки требований.
Balsamiq фокусируется на низкоточных проволочных обрамлениях с намеренно эскизным визуальным стилем, который побуждает заинтересованные стороны сосредоточиться на функциональности и рабочем процессе, а не на деталях визуального дизайна.
Общие проблемы в инженерии требований и как их преодолеть
Несмотря на все усилия, проекты по разработке требований часто сталкиваются с проблемами, которые могут сорвать прогресс и поставить под угрозу результаты. Понимание общих подводных камней и разработка стратегий для их решения имеет важное значение для успешной инженерной практики требований.
Неполные или неоднозначные требования
Неполные требования оставляют пробелы, которые должны быть заполнены с помощью предположений во время проектирования и реализации, часто приводя к системам, которые не полностью удовлетворяют потребности заинтересованных сторон.Неоднозначные требования могут быть интерпретированы по-разному разными членами команды, что приводит к непоследовательной реализации и переработке.
Решение этой проблемы требует систематических методов проверки, включая обзоры требований, прототипирование и разработку тестовых случаев. Требования должны быть написаны с использованием четкого, конкретного языка с конкретными примерами, где это уместно. Критерии принятия должны точно определять, какие условия должны быть выполнены для требования, которое должно быть удовлетворено. Когда обнаруживается двусмысленность, инженеры по требованиям должны работать с заинтересованными сторонами для уточнения намерения и обновления документации соответственно.
Структурированные шаблоны и контрольные списки помогают обеспечить, чтобы требования включали всю необходимую информацию. Например, шаблон требований может подсказать утверждение требований, обоснование, приоритет, критерии принятия и зависимости, гарантируя, что эти элементы явно рассматриваются, а не оставляют неявным.
Сфера действия: Ползучесть и неконтролируемые изменения
Сфера охвата ползет, когда новые требования постоянно добавляются без соответствующих корректировок графика, бюджета или других требований.В то время как некоторые изменения требований неизбежны и здоровы, неконтролируемые изменения могут сорвать проекты и предотвратить доставку основной функциональности.
Предотвращение расширения масштабов требует установления четких границ проекта и формальных процессов контроля за изменениями. В первоначальном спецификации требований должно быть четко определено, что находится в сфере охвата и что находится вне сферы охвата для текущего проекта. Когда предлагаются новые требования, они должны оцениваться с учетом целей и ограничений проекта до их принятия.
Процессы контроля за изменениями должны требовать, чтобы предлагаемые изменения были документированы, оценены на предмет воздействия и одобрены соответствующими заинтересованными сторонами до их осуществления. Анализ воздействия должен учитывать влияние на график, бюджет, другие требования и риск проекта. Некоторые изменения могут быть достаточно ценными, чтобы оправдать их стоимость, но решение должно приниматься сознательно с полным пониманием последствий.
Сохранение списка отставания в разработке продукта или будущих требований обеспечивает место для сбора хороших идей, которые не подпадают под действие текущего проекта. Это подтверждает ценность предложения, не позволяя ему нарушить текущую работу.
Конфликты между заинтересованными сторонами и конкурирующие приоритеты
Различные заинтересованные стороны часто имеют противоречивые требования, основанные на их различных ролях, перспективах и приоритетах. Деловые заинтересованные стороны могут расставлять приоритеты в функциях, которые стимулируют доход, в то время как пользователи расставляют приоритеты в простоте использования, а технические команды расставляют приоритеты в обслуживаемости и производительности. Решение этих конфликтов имеет важное значение для создания согласованных требований, которые служат общим целям проекта.
Для решения конфликтов между заинтересованными сторонами необходимо понимание основных потребностей и ограничений, определяющих каждую позицию. Инженеры по требованиям должны способствовать дискуссиям, которые помогают заинтересованным сторонам понять перспективы друг друга и найти творческие решения, которые удовлетворяют основные потребности, даже если они не выполняют первоначальные запросы в точности, как указано.
В тех случаях, когда конфликты не могут быть полностью разрешены, может возникнуть необходимость в эскалации конфликта с участием исполнительных спонсоров или руководящих комитетов, которые могут пойти на компромиссы, основанные на стратегических приоритетах и организационных целях, выходящих за рамки индивидуальных предпочтений заинтересованных сторон.
Прозрачные процессы приоритезации помогают управлять конкурирующими требованиями, четко определяя критерии, используемые для приоритезации требований, и обоснование решений о приоритетности. Когда заинтересованные стороны понимают, почему одни требования имеют приоритет над другими, они с большей вероятностью принимают решения, даже когда их предпочтительные требования отложены.
Пробелы в коммуникации между техническими и нетехническими заинтересованными сторонами
Технические и нетехнические заинтересованные стороны часто изо всех сил пытаются эффективно сообщать о требованиях из-за различных словарей, ментальных моделей и уровней технического понимания.Заинтересованные стороны бизнеса могут описывать требования в терминах, которые слишком расплывчаты для реализации, в то время как члены технической команды могут использовать жаргон, который не понимают заинтересованные стороны бизнеса.
Инженеры по требованиям выполняют функции переводчиков, помогая техническим и нетехническим заинтересованным сторонам понять друг друга. Это требует развития беглости как в деловой, так и в технической областях и способности объяснять концепции на соответствующих уровнях детализации для разных аудиторий.
Визуальные модели и прототипы обеспечивают общие ориентиры, которые могут обсуждать заинтересованные стороны с различным фоном. Прототип или диаграмма часто общаются более эффективно, чем страницы текста, помогая заинтересованным сторонам развивать общее понимание, несмотря на различные словари.
Создание глоссария проекта, в котором определяются ключевые термины, помогает предотвратить недоразумения, вызванные различными интерпретациями одних и тех же слов. Глоссарий должен разрабатываться совместно и на него следует ссылаться во всей документации по требованиям.
Требования, которые сложно проверить
Некоторые требования сформулированы таким образом, что невозможно объективно определить, были ли они удовлетворены. Такие требования, как "система должна быть удобной для пользователя" или "система должна иметь хорошую производительность", являются слишком субъективными или расплывчатыми для проверки с помощью тестирования.
Вместо «дружественных к пользователю» требований можно указать, что «90% пользователей должны иметь возможность выполнять общие задачи без консультации с справочной документацией» или «пользователи должны оценивать простоту использования в 4,0 или выше по 5-балльной шкале». Вместо «хорошей производительности» требования могут указывать, что «система должна отвечать на запросы пользователей в течение 2 секунд при нормальных условиях нагрузки».
Критерии приемлемости должны определять конкретные, проверяемые условия, которые должны удовлетворять каждому требованию. Если требование не может быть проверено, оно должно быть уточнено до тех пор, пока не будут определены четкие критерии приемлемости. Процесс разработки тестовых случаев часто выявляет требования, которые нуждаются в уточнении или дополнительной детализации.
Неадекватное взаимодействие с заинтересованными сторонами
Разработка требований зависит от активного участия заинтересованных сторон, но заинтересованные стороны часто заняты другими обязанностями и могут не расставлять приоритеты в деятельности по требованиям. Неадекватное взаимодействие с заинтересованными сторонами приводит к требованиям, которые не точно отражают потребности заинтересованных сторон и проверку, которая не улавливает ошибки до внедрения.
Для улучшения взаимодействия с заинтересованными сторонами необходимо продемонстрировать ценность их участия и максимально упростить их участие. Инженеры-требователи должны четко объяснить, как будет использоваться вклад заинтересованных сторон, и показать, как их участие влияет на результаты проекта.
Планирование мероприятий, в то время удобных для заинтересованных сторон, и поддержание встреч сосредоточенными и продуктивными, уважает время заинтересованных сторон и поощряет дальнейшее участие. Предоставление нескольких каналов для внесения вклада, включая интервью, семинары, опросы и обзоры прототипов, позволяет заинтересованным сторонам вносить свой вклад таким образом, чтобы соответствовать их графикам и предпочтениям.
Исполнительное спонсорство помогает обеспечить вовлечение заинтересованных сторон, четко давая понять, что деятельность по требованиям является приоритетной и что участие заинтересованных сторон ожидается и оценивается. Когда руководители активно поддерживают разработку требований и привлекают заинтересованные стороны к ответственности за участие, участие обычно улучшается.
Лучшие практики для требований Инженерное превосходство
Организации, которые последовательно преуспевают в разработке требований, следуют проверенной практике, которая улучшает качество требований, удовлетворенность заинтересованных сторон и результаты проектов. Эти лучшие практики представляют собой уроки, извлеченные из многолетнего опыта проектирования требований в различных отраслях и типах проектов.
Начните с четких бизнес-целей
Требования должны быть прослежены до четких бизнес-целей, которые определяют, чего организация надеется достичь через проект. Понимание бизнес-целей обеспечивает контекст для оценки требований и принятия компромиссных решений. Требования, которые не поддерживают бизнес-цели, должны быть поставлены под сомнение и потенциально устранены.
Цели бизнеса должны быть конкретными и измеримыми, определяющими критерии успеха, которые могут быть оценены после развертывания системы.Неопределенные цели, такие как «повышение удовлетворенности клиентов», должны быть уточнены в измеримые цели, такие как «увеличение показателей удовлетворенности клиентов с 3,5 до 4,2 по 5-балльной шкале в течение шести месяцев после развертывания».
Вовлекать заинтересованных лиц рано и часто
Раннее участие заинтересованных сторон помогает обеспечить, чтобы требования точно отражали потребности заинтересованных сторон и чтобы заинтересованные стороны развивали право собственности на требования. Постоянное участие заинтересованных сторон на протяжении всего проекта позволяет постоянно проверять и совершенствовать по мере развития понимания.
Участие заинтересованных сторон должно включать не только выдвижение требований, но и валидацию, такую как обзоры прототипов и приемочное тестирование. Заинтересованные стороны, которые участвуют в валидации, с большей вероятностью принимают конечный продукт и с меньшей вероятностью утверждают, что он не соответствует их потребностям.
Документ на правильном уровне детализации
Документация по требованиям должна содержать достаточно подробностей для руководства реализацией и обеспечения возможности проверки, но не настолько подробную информацию, чтобы ее создание и поддержание стало обременительным. Соответствующий уровень детализации зависит от контекста проекта, включая опыт работы в команде, сложность системы и нормативные требования.
Для выполнения требований, сопряженных с высоким риском или комплексными требованиями, может потребоваться подробная документация, а для выполнения простых требований могут потребоваться лишь краткие описания, дополненные примерами или прототипами.
Сохраняйте отслеживаемость на протяжении всего жизненного цикла
Связи между требованиями и другими артефактами проекта позволяют анализировать воздействие, проверять охват и демонстрировать соответствие. Хотя поддержание прослеживаемости требует усилий, преимущества с точки зрения сокращения переделки и улучшения качества обычно оправдывают инвестиции.
Прослеживаемость должна быть установлена на раннем этапе и поддерживаться на протяжении всего проекта с использованием соответствующих инструментов. Ручная прослеживаемость быстро устаревает, поэтому поддержка инструментов имеет важное значение для всех, кроме самых маленьких проектов. Отчеты о прослеживаемости должны регулярно пересматриваться для выявления пробелов и обеспечения надлежащего отслеживания всех требований.
План изменений
Требования будут меняться по мере того, как заинтересованные стороны узнают больше о том, что возможно, и по мере развития условий ведения бизнеса. Вместо того, чтобы пытаться предотвратить все изменения, успешная разработка требований устанавливает процессы для управления изменениями контролируемым образом, который поддерживает целостность системы.
Процессы управления изменениями должны сочетать гибкость с контролем, позволяя ценные изменения, предотвращая неконтролируемый охват ползучести. Изменения должны оцениваться на предмет их влияния на цели проекта, график, бюджет и другие требования до утверждения. Некоторые изменения могут быть достаточно важными, чтобы оправдать их стоимость, но решение должно приниматься сознательно с полным пониманием последствий.
Проверка требований перед внедрением
Методы проверки, включая обзоры, прототипирование и разработку тестовых случаев, должны применяться систематически, чтобы гарантировать, что требования точно представляют потребности заинтересованных сторон и что они являются полными, последовательными и осуществимыми.
Валидация должна включать заинтересованные стороны, которые могут подтвердить, что требования точно отражают их потребности.Техническая валидация архитекторами и старшими разработчиками помогает обеспечить, чтобы требования были технически осуществимыми и чтобы они не содержали скрытых противоречий или невозможностей.
Инвестируйте в инженерные навыки требований
Инженерные требования требуют специальных навыков, включая общение с заинтересованными сторонами, аналитическое мышление, техническое письмо и знания домена. Организации должны инвестировать в развитие этих навыков посредством обучения, наставничества и возможностей профессионального развития.
Опытные инженеры-требования приносят ценный опыт, который может значительно улучшить результаты проекта. Организации должны признать инженерные требования как специализированную дисциплину и обеспечить карьерные пути, которые позволяют практикам развивать глубокие знания, а не рассматривать инженерные требования как деятельность начального уровня, которую может выполнить любой.
Учитесь на опыте
Организации должны систематически обобщать уроки, извлеченные из инженерных мероприятий по требованиям, и использовать эти уроки для улучшения будущих проектов. В ходе обзоров после завершения проектов следует изучить, что хорошо работает и что можно улучшить в процессах, методах и инструментах разработки требований.
Метрики, включая волатильность требований, коэффициенты дефектов, связанные с ошибками требований, и удовлетворенность заинтересованных сторон процессами требований, предоставляют объективные данные для выявления возможностей улучшения. Эти показатели должны отслеживаться с течением времени для оценки того, оказывают ли улучшения процесса желаемый эффект.
Отраслевые специфические требования Инженерные соображения
Хотя основные требования инженерных принципов применяются в различных отраслях промышленности, различные области имеют уникальные характеристики, которые влияют на то, как требования инженерии практикуется. Понимание отраслевых соображений помогает практикам адаптировать общие принципы к их конкретным контекстам.
Критические системы безопасности
Системы, критически важные для безопасности в таких областях, как аэрокосмическая промышленность, медицинские устройства и автомобилестроение, требуют исключительно строгих требований к инженерии, поскольку сбои могут привести к травмам или смерти. Эти системы должны соответствовать строгим нормативным стандартам, которые требуют всеобъемлющей документации по требованиям, формальной проверки и широкой прослеживаемости.
Требования к критически важным для безопасности системам должны быть полными, однозначными и поддающимися проверке. Формальные методы и математическое моделирование часто используются для анализа требований к полноте и согласованности. Требования безопасности должны быть четко определены и прослежены посредством проектирования, внедрения и тестирования, чтобы продемонстрировать, что цели безопасности выполнены.
Регуляторное соблюдение требует обширной документации и доказательств того, что процессы проектирования требований соответствуют установленным стандартам. Организации, разрабатывающие критически важные для безопасности системы, обычно используют зрелые процессы проектирования требований с определенными ролями, процедурами и качественными воротами.
Финансовые услуги и банковское дело
Системы финансовых услуг должны соответствовать обширным нормативным требованиям, связанным с безопасностью, конфиденциальностью, аудитом и финансовой отчетностью.Проектирование требований в этой области должно учитывать не только функциональные потребности, но и соответствие нормативным требованиям, контроль безопасности и требования аудита.
Финансовые системы часто интегрируются с многочисленными внешними системами и должны поддерживать согласованность данных в сложных потоках транзакций. Требования должны подробно указывать точки интеграции, форматы данных, обработку ошибок и процедуры сверки. Требования безопасности и конфиденциальности особенно важны, учитывая чувствительный характер финансовых данных.
Изменения в нормативных актах могут привести к значительным изменениям требований даже после развертывания систем. Инженерные процессы должны соответствовать текущим требованиям соответствия нормативным требованиям и обеспечивать быстрое реагирование на изменения в нормативных актах.
Здравоохранение и медицинская информатика
Системы здравоохранения должны соответствовать таким правилам, как HIPAA в Соединенных Штатах или GDPR в Европе, которые регулируют конфиденциальность пациентов и безопасность данных. Требования должны касаться не только клинической функциональности, но и контроля конфиденциальности, регистрации аудита и управления согласием.
Взаимодействие является одной из основных проблем в здравоохранении, поскольку системы должны обмениваться данными с использованием таких стандартов, как HL7 и FHIR. Требования должны подробно указывать форматы обмена данными, стандарты терминологии и протоколы интеграции.
Клинические рабочие процессы сложны и различаются в разных организациях, что требует тщательного определения требований, чтобы понять, как системы будут использоваться на практике. Юзабилити особенно важен в здравоохранении, где плохие пользовательские интерфейсы могут способствовать медицинским ошибкам.
Электронная коммерция и потребительские приложения
Приложения, ориентированные на потребителя, работают на высококонкурентных рынках, где пользовательский опыт является ключевым отличием. Инженерия требований должна балансировать бизнес-цели с потребностями пользователей, часто требуя компромиссов между богатством функций и простотой.
Требования к потребительским приложениям часто возникают благодаря экспериментам и обратной связи с пользователем, а не всеобъемлющей предварительной спецификации. A/B-тестирование и аналитика предоставляют данные о поведении пользователя, которые информируют об уточнении требований. Гибкие подходы, которые позволяют быстро итерировать на основе обратной связи с пользователем, распространены в этой области.
Требования к масштабируемости и производительности имеют решающее значение для потребительских приложений, которые могут испытывать быстрый рост или высокую переменную нагрузку. Требования должны учитывать не только текущие потребности, но и ожидаемые будущие масштабы.
Планирование ресурсов предприятия и бизнес-системы
Системы предприятия поддерживают сложные бизнес-процессы, которые охватывают несколько отделов и интегрируются с многочисленными другими системами.Инженерные требования должны понимать существующие бизнес-процессы, определять возможности улучшения и определять, как система будет поддерживать как текущие, так и будущие процессы.
Управление заинтересованными сторонами является особенно сложным для корпоративных систем, учитывая большое количество заинтересованных сторон с различными потребностями и приоритетами. Инженерия требований должна сбалансировать стандартизацию, которая обеспечивает эффективность с настройкой, которая учитывает конкретные потребности департаментов.
Требования к управлению изменениями и обучению важны для корпоративных систем, которые могут коренным образом изменить работу людей. Требования должны касаться не только функциональности системы, но и управления организационными изменениями и принятия пользователей.
Будущее инженерных требований
По мере появления новых технологий, методологий и бизнес-контекстов инженерия требований продолжает развиваться. Понимание новых тенденций помогает специалистам подготовиться к будущим вызовам и возможностям в этой области.
Искусственный интеллект и машинное обучение
ИИ и машинное обучение начинают дополнять инженерные требования. Обработка естественного языка может анализировать документы требований для выявления неясностей, несоответствий и недостающей информации. Модели машинного обучения могут прогнозировать требования на основе аналогичных прошлых проектов или предлагать требования, которые обычно связаны с заданными функциями.
Чат-боты и виртуальные помощники на базе ИИ могут поддерживать выдвижение требований путем проведения первоначальных собеседований с заинтересованными сторонами и сбора базовой информации до того, как в них будут участвовать инженеры по человеческим требованиям. Однако сложные социальные и когнитивные аспекты разработки требований означают, что ИИ будет дополнять, а не заменять инженеров по человеческим требованиям в обозримом будущем.
Системы, которые включают в себя ИИ и машинное обучение, сами представляют новые инженерные проблемы требований. Традиционные требования определяют детерминированное поведение системы, но системы ИИ учатся и адаптируются способами, которые могут быть не полностью предсказуемыми. Инженерия требований для систем ИИ должна решать качество данных обучения, показатели производительности модели, смягчение предвзятости и объяснимость.
Непрерывные требования Инженерия
Переход к непрерывной доставке и практике DevOps ведет эволюцию к разработке непрерывных требований, где требования возникают и развиваются непрерывно, а не определяются в дискретных фазах. Этот подход согласуется с принципами Agile, но расширяет их, охватывая весь жизненный цикл продукта, включая эволюцию после развертывания.
Инженерия непрерывных требований опирается на телеметрию и аналитику развернутых систем, чтобы понять, как пользователи на самом деле используют функции и где они сталкиваются с проблемами. Эти данные информируют о текущих уточнениях требований и помогают расставить приоритеты улучшений на основе фактических моделей использования, а не предположений.
Флаги функций и A/B-тестирование позволяют экспериментировать с различными реализациями требований, позволяя командам проверять требования с помощью реального использования, прежде чем придерживаться конкретных подходов. Этот эмпирический подход к проверке требований дополняет традиционные методы, такие как прототипирование и тестирование пользователей.
Модельно-ориентированная инженерия систем
В качестве основного средства определения требований и проектирования системы в проектировании систем на основе моделей (MBSE) используются формальные модели. Вместо текстовых документов требований MBSE создает исполняемые модели, которые могут быть смоделированы и проанализированы для проверки требований перед внедрением.
MBSE обещает улучшить качество требований посредством формального анализа и моделирования, улучшить связь через визуальные модели и автоматизированное генерирование документации и тестовых случаев из моделей.Однако MBSE требует значительных инвестиций в инструменты, обучение и изменение процессов и наиболее применима к сложным системам, где инвестиции оправданы.
Такие стандарты, как SysML, обеспечивают стандартизированные языки моделирования для системной инженерии, обеспечивая совместимость инструментов и передачу знаний между организациями. По мере того, как инструменты MBSE созревают и становятся более доступными, внедрение, вероятно, будет расширяться за пределы аэрокосмической и оборонной промышленности, где в настоящее время наиболее распространено.
Усилить фокус на нефункциональных требованиях
Поскольку функциональные возможности становятся все более товарными, нефункциональные требования, связанные с производительностью, безопасностью, удобством использования и надежностью, становятся ключевыми дифференциаторами. Инженерия требований уделяет больше внимания выявлению, определению и проверке нефункциональных требований, которые исторически получали меньше внимания, чем функциональные требования.
Требования безопасности и конфиденциальности получают особое внимание, учитывая растущие кибер-угрозы и нормативные требования. Инженерные требования должны учитывать безопасность на протяжении всего жизненного цикла системы, от принципов безопасного проектирования до практики безопасного кодирования и постоянного мониторинга безопасности.
Устойчивость и воздействие на окружающую среду становятся важными нефункциональными требованиями, поскольку организации сосредотачиваются на сокращении своего воздействия на окружающую среду. Требования могут касаться энергоэффективности, потребления ресурсов и соображений утилизации в конце срока службы.
Практическая реализация: поэтапный подход
Для организаций, стремящихся улучшить свои требования к инженерной практике, системный подход к реализации повышает вероятность успеха. Следующие шаги обеспечивают дорожную карту для перехода от теории к эффективной практике.
Шаг 1: Оцените текущее состояние
Начните с понимания современных требований инженерных практик, в том числе того, что хорошо работает и что нуждается в улучшении. Эта оценка должна изучить процессы, инструменты, навыки и организационную культуру, связанные с требованиями инженерного дела.
Соберите данные путем интервью с заинтересованными сторонами, ретроспективы проектов и анализ прошлых результатов проектов. Ищите закономерности в проблемах, связанных с требованиями, включая ползучесть по охвату, дефекты требований, неудовлетворенность заинтересованных сторон и переработку, вызванную ошибками требований.
Такие модели зрелости потенциала, как CMMI, обеспечивают основу для оценки зрелости инженерных требований и определения областей для улучшения.
Шаг 2: Определите целевое состояние и цели улучшения
На основе текущей оценки состояния определить конкретные, измеримые цели для требований инженерного совершенствования.Цели могут включать в себя уменьшение дефектов требований на определенный процент, улучшение оценки удовлетворенности заинтересованных сторон, или снижение переделки, вызванной ошибками требований.
Целевая структура должна быть реалистичной, учитывая организационные ограничения и культуру. Попытка слишком быстро осуществить слишком амбициозные изменения часто приводит к сопротивлению и неудаче. Повышенное улучшение, основанное на существующих практиках, обычно более успешно, чем радикальная трансформация.
Приоритетное внимание уделяется инициативам по улучшению с учетом их потенциального воздействия и осуществимости. В первую очередь внимание уделяется изменениям, которые решают наиболее важные проблемы и которые могут быть реализованы с использованием имеющихся ресурсов и организационной поддержки.
Шаг 3: Разработка и документирование процессов
Процессы проектирования требований к документации, которые определяют, как требования будут выявляться, анализироваться, уточняться, проверяться и управляться. Процессы должны быть достаточно конкретными, чтобы обеспечить четкое руководство, но достаточно гибкими, чтобы учитывать различные контексты проекта.
Документация по процессам должна включать роли и обязанности, мероприятия и результаты, шаблоны и инструменты, а также критерии качества. Визуальные модели процессов помогают заинтересованным сторонам понять рабочий процесс и распределение ролей между различными ролями.
Привлекать практикующих к процессу разработки, чтобы гарантировать, что процессы являются практическими и удовлетворяют реальные потребности. Процессы, навязанные сверху без участия практиков, часто терпят неудачу, потому что они не учитывают реальные ограничения и условия работы.
Шаг 4: Выберите и внедрите инструменты
Выберите инструменты, которые поддерживают определенные процессы и которые соответствуют организационным потребностям, бюджету и технической среде. Выбор инструмента должен учитывать не только функции, но и простоту использования, интеграцию с существующими инструментами, поддержку поставщиков и общую стоимость владения.
Внедряйте инструменты постепенно, начиная с основных возможностей и добавляя расширенные функции, поскольку пользователи становятся удобными с базовой функциональностью. Обеспечить адекватное обучение и поддержку, чтобы пользователи могли эффективно использовать инструменты для поддержки своей работы.
Не поддавайтесь искушению позволить инструментам управлять процессами. Инструменты должны поддерживать определенные процессы, а не диктовать их. Если инструмент не соответствует тому, как работает организация, либо настройте инструмент, либо выберите другой инструмент, а не заставляйте организацию адаптироваться к ограничениям инструмента.
Шаг 5: Навыки и способности
Инвестировать в развитие требований инженерных навыков путем обучения, наставничества и профессионального развития. Обучение должно охватывать как теоретические основы, так и практические методы, с возможностью практиковать новые навыки в реалистичных сценариях.
Создавайте сообщества практики, где инженеры-требователи могут делиться опытом, обсуждать проблемы и учиться друг у друга. Сообщества практики помогают создавать организационные знания и оказывать поддержку практикующим по мере развития их навыков.
Рассмотрим программы сертификации, такие как IREB (Международный совет по разработке требований), которые обеспечивают структурированные пути обучения и признанные в отрасли учетные данные. Сертификация демонстрирует приверженность профессиональному развитию и обеспечивает общую основу знаний в организации.
Шаг 6: Пилот и уточнение
Пилоты разрабатывают новые процессы и инструменты для отдельных проектов, прежде чем развернуть их в масштабах всей организации. Пилоты предоставляют возможности для выявления и решения проблем в контролируемой среде, прежде чем они повлияют на всю организацию.
Соберите отзывы участников пилотного проекта о том, что хорошо работает и что нуждается в корректировке. Будьте готовы совершенствовать процессы и инструменты на основе опыта пилота. Успешное совершенствование процесса является итеративным, с постоянным уточнением на основе опыта.
Уроки, извлеченные из опыта пилотов, и их включение в процессную документацию и учебные материалы. Поделитесь результатами пилотных проектов с более широкой организацией для оказания поддержки в целях более широкого внедрения.
Шаг 7: масштабирование и институционализация
После того, как процессы и инструменты были проверены с помощью пилотов, масштабирование их по всей организации. Масштабирование требует не только развертывания процессов и инструментов, но и создания организационной культуры, которая ценит инженерные требования и поддерживает практиков.
Руководители должны явно поддерживать разработку требований, выделять необходимые ресурсы и привлекать команды к ответственности за выполнение определенных процессов.
Установить показатели для отслеживания эффективности инженерных требований и определения областей для постоянного улучшения. Метрики могут включать показатели дефектов требований, волатильность требований, удовлетворенность заинтересованных сторон и результаты проекта, связанные с качеством требований.
Шаг 8: постоянное улучшение
Совершенствование инженерных требований — это не разовое усилие, а непрерывный процесс. Создать механизмы непрерывного совершенствования, включая регулярные обзоры процессов, ретроспективы и учет уроков, извлеченных из завершенных проектов.
Оставайтесь в курсе меняющихся лучших практик, инструментов и методов посредством профессионального развития, отраслевых конференций и взаимодействия с более широким сообществом инженеров по требованиям.
Празднуйте успехи и признайте команды, которые демонстрируют превосходство в разработке требований. Признание усиливает желаемое поведение и формирует организационную приверженность требованиям инженерного совершенства.
Вывод: преодоление разрыва между теорией и практикой
Инженерия требований представляет собой критический мост между потребностями заинтересованных сторон и внедренными системами. В то время как теоретические рамки обеспечивают ценное руководство, успешная разработка требований требует адаптации общих принципов к конкретным организационным контекстам, ограничениям проекта и потребностям заинтересованных сторон. Организации, которые осваивают этот перевод от теории к практике, последовательно предоставляют системы, которые отвечают ожиданиям заинтересованных сторон, остаются в рамках бюджетных и календарных ограничений и достигают своих намеченных бизнес-целей.
Путь от теоретического понимания к практическому мастерству требует инвестиций в процессы, инструменты, навыки и организационную культуру. Это требует приверженности со стороны руководства, вовлеченности со стороны заинтересованных сторон и преданности со стороны практиков. Но отдача с точки зрения улучшенных результатов проекта, сокращения переработок и повышения удовлетворенности заинтересованных сторон делает эти инвестиции стоящими.
Поскольку программные системы становятся все более центральными для бизнес-операций и повседневной жизни, важность эффективных требований инженерии будет только расти. Организации, которые разрабатывают сильные требования инженерные возможности позиционируют себя для успеха во все более программно-ориентированном мире. Применяя принципы, методы и лучшие практики, обсуждаемые в этой статье, практики могут преодолеть разрыв между требованиями инженерной теории и практической реализации, поставляя системы, которые действительно отвечают потребностям заинтересованных сторон и создают прочную ценность.
Для тех, кто хочет углубить свое понимание инженерных требований, ценные ресурсы включают в себя Международный совет по требованиям (IREB) , который предлагает программы сертификации и обучения, и Институт управления проектами (PMI) , который предоставляет ресурсы по бизнес-анализу и управлению требованиями. Международный совет по системной инженерии (INCOSE) предлагает ресурсы, особенно актуальные для сложных систем инженерных контекстов. Кроме того, пребывание в сотрудничестве с более широким сообществом инженерных требований через конференции, публикации и профессиональные сети обеспечивает постоянные возможности обучения и держит практикующих в курсе развивающихся лучших практик.
Путь от теории инженерных требований к практической реализации является сложным, но достижимым. При систематическом подходе, соответствующих инструментах и методах, квалифицированных практиков и организационной приверженности любая организация может развивать инженерные возможности требований, которые способствуют успеху проекта и доставляют системы, которые действительно отвечают потребностям заинтересованных сторон. Инвестиции в инженерное превосходство требований выплачивают дивиденды на протяжении всего жизненного цикла системы, от снижения затрат на разработку до повышения удовлетворенности пользователей и более простого обслуживания. Как основа успешной разработки программного обеспечения и систем, инженерные требования заслуживают внимания, ресурсов и приверженности, необходимых для эффективного преодоления разрыва между теорией и практикой.