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

Составные части предмета разработки технических условий
Разработка требований
Разработка технических условий по Вигерсу подразделяется на:
выявления
анализ
документирование
утверждение
Выявление и сбор требований
Выявление и сбор требований охватывает все действия, связанные с выявлением требований, например:
интервью,
совещания,
анализ документов,
создание прототипов
и другие
Ключевые действия по выявлению требований:
определение классов ожидаемых пользователей продукта и других заинтересованных лиц
понимание задач и целей, а также бизнес-целей которым соответствуют эти задачи
изучение среды, в которой будет использоваться новый продукт
работа с отдельными людьми, которые представляют каждый класс пользователей, чтобы понять их потребности и ожидания в отношении качества
Возникает вопрос: "На что ориентироваться: на использование или на продут?"
Вигерс дает следующий ответ
При сборе требований обычно используется подход, ориентированный на использование, или подход, ориентированный на продукт, хотя возможны и другие стратегии. В ориентированном на использование подходе упор делается на понимание и исследование задач пользователей, и на основе этой информации выводится необходимая функциональность системы. Ориентированный на продукт подход сфокусирован на определение функций, которые, как ожидается, приведут к успеху на рынке или успеху бизнеса компании. В стратегиях, ориентированных на продукт, есть риск реализовать функции, которые не будут активно использоваться, несмотря на то, что во время сбора требований они казались очень нужными. Мы рекомендуем сначала изучить бизнес-цели и цели пользователей, а затем на основе этой информации определить нужные функции и характеристики продукта.
Анализ
Анализ требований подразумевает получение более обширного и точного понимания всех требований и представление наборов требований в различном виде.
Также, Вигерс приводит основные действия по анализу требований:
анализ информации, полученной от пользователей, с целью отделения из задач от функциональных и нефункциональных требований, бизнес-правил, предлагаемых решений и другой информации;
разложение высокоуровневых требований до нужного уровня детализации;
выведение функциональных требований из информации других требований;
понимание относительной важности атрибутов качества;
распределение требований по компонентам ПО, определенным в системной архитектуре;
согласование приоритетов реализации;
выявление пробелов в требованиях или излишних требований, не соответствующих заданным рамкам.
Документирование
Под документированием требований подразумевается хранение и отображение полученной информации по требованиям в структурированном виде.
Действия по документированию:
отражение в письменном виде и в виде диаграмм полученных требований, на уровне достаточном для понимания заинтересованным сторонам.
Утверждение требований
На этапе утверждение требований необходимо подтвердить правильность набора собранных требований для дальнейшей их передачи в разработку для создания продукта, удовлетворяющего бизнес-целям.
Действия по утверждению требований:
выверка задокументированных требований для устранения всех недостатков до принятия требований группой разработки,
подготовка приемочных тестов и критериев приемки.
Также, при планировании необходимо предусмотреть не один цикл проверки требований для поступательного уточнения деталей высокоуровневых требований для поступательного уточнения деталей высокоуровневых требований и подтверждения правильности пользователями.
Управление требованиями
Действия по управлению требованиями:
определение основной версии требования. В рамках данного действия фиксируются и утверждаются требования с основными заинтересованными лицами для выпуска конкретного продукта или итерации разработки (спринта)
оценка влияния предлагаемых требований и внедрение одобренных изменений в проект управляемым образом. В рамках данного действия анализируются изменения (источник запроса, тип изменения, приоритет), осуществляется оценка влияния изменений (сложность, сроки и бюджет, риски, зависимости), принимается решение о внедрении (принять, отложить, отклонить),
обновление плана проекта в соответствии с планируемыми изменениями,
обсуждение новых обязательств, возникших при оценке влияния требований,
определение отношений и зависимостей между требованиями (если они есть),
отслеживание отдельных требований до их проектирования, исходного кода и тестов. В рамках данного действия выстраивается система по трассировке требований,
отслеживание состояния требований и действий по изменению на протяжении всего проекта.
Целью управления требованиями является не в предотвращении изменений или усложнении их внедрения, а в предугадывании и приспосабливали к ожидаемым реальным изменениям, чтобы снизить их разрушительное влияние на проект.
Итого
В рамках данной статьи мы рассмотрели разработку и управление требованиями по Карлу Вигерсу. Подчеркну, что возможно его взгляды для какого-то устарели, но они активно применяются в крупных проектах и по сей день.
ruomserg
Все эти наукообразные статьи об управлении требованиями - сами по себе прекрасны. Проблема в том, что картина мира авторов этих статей имеет мало отношения к реальности. Они исходят из того, что где-то в прекрасном мире идей уже известно какой продукт с какими свойствами нужно построить, и это знание доступно по крайней мере некоторым из людей. И, соотвественно, наша задача - найти этих людей, и пряником-ли, пыткой-ли - но достать из них сокровенное знание (и еще подписаться кровью что оно "вот прямо то самое!").
Может быть где-то в отдельных отраслях и проектах (особенно где сроков нет, и денег дают сколько хочешь, а когда израсходуешь - еще столько же!) - это работает. В реальности - никакого мира идей с требованиями к ПО не существует, и эти требования людям недоступны. Соответственно, когда вы приходите к смертным за "требованиями" - они в лучшем случае честно говорят что не знают, а в худшем - врут как сивые мерины, и сами не знают, почему (полагаю, большинство сами верят в тот бред, который несут).
Чтобы освоить эту мысль на практике - представьте что вы пришли к сапожнику шить сапог, а он вам предлагает составить список требований по которым он будет его шить: длина голенища, полнота свода стопы, и т.д., и т.п. А вы почем это знаете ?! С другой стороны - если вам дать образец и вы его натянете - то скорее всего взвоете, и тут же объясните где вам жмет, а где - натирает...
Поэтому в 99% случаев, сбор требований можно опустить (достаточно удостовериться что большинство стейкхолдеров хотя бы сходятся на том, что шить будем сапог, а не кеды и не балетные пуанты). А сэкономленное время - пустить на изготовление MVP и сбор обратной связи. Так больше шансов сделать что-то такое, за что заказчик будет хотеть заплатить деньги.
И нет, я не видел практически ни одной ситуации когда вы сделали не то что заказчик хочет, а когда он высказывает претензии - вы такие достаете список требований, и заказчик: "А, ну да - это мы лоханулись... Двойную оплату этому господину!". :-) Заказчик будет вам выклевывать мозг до тех пор, пока вы не переделаете. Кроме, пожалуй, госухи - там вам будут выклевывать мозг в любом случае (но там требования нужны и важны для другого - чтобы потом не посадили!)...
IsaMarkova Автор
В вашем примере про сапожника:
снятие мерок с клиента, вопросы про желаемый цвет, форму, к какому случаю сапоги (сезон, событие и т.п.) и прочие вопросы - как раз и есть выявление и анализ требований
прием заказа с указанием в соответствующем документе (договор, спецификация и т.п.) выявленных требований (с условием, что мы говорим о заказной работе) - документирование и утверждение требований
Идея сделать что-то, чтобы оно потом взлетело - это больше про стартапы, но даже в стартапах прежде чем создать продукт исследуется рынок на будущий спрос. При этом необходимо учитывать, что в любой момент рынок может измениться, поэтому он нуждается в постоянном анализе для актуализации и управления требованиями.
Также, не стоит забывать о внутренней разработке, в данном случае заказчиками являются ваши же коллеги, и, возможно, в том числе и вы сами. Для понимания ожидаемого продукта необходимо собрать и задокументировать мнение каждого заинтересованного лица, чтобы по итогу реализации не сидеть и не вспоминать зачем была реализована та или иная функциональность.
По итогу могу лишь ещё раз подчеркнуть, что этапы работы с требованиями должны присутствовать в любом проекте с учетом адаптации под конкретную методологию разработки продукта.
ruomserg
Вопрос не в том, чтобы в режиме стартапа - сделать хтоническую хтонь, а потом пытаться заставить это продаваться. Я говорю из области промышленной автоматизации и внутрикорпоративных разработок:
К вам будут приходить люди, и просить сделать "X", при том что им не только не надо "X", а они даже не разобрались в том, что это такое. Просто услышали слово или на конференции узнали что "X" в каком-то виде есть у конкурента. Где тут требования ?! Тут нужна психотерапия... Или генная терапия - если глупость наследственная...
Если вам смогли хотя бы сформулировать что болит - это уже прорыв. Если же вам сумели сформулировать еще и ограничения: "не успеваем лить молоко, есть место в углу цеха 3x5 метров" - это золотые люди!
А в целом, конечно - это ведет к казуистике о том "что есть требования". И на моей памяти - если решение какой-то задачи зависит от терминологии - значит это фикция. Я понимаю классическое управление требованиями - это сбор и детализация до той степени, когда вы можете список требований дать разработчику (любому - нужной минимальной квалификации) - и каждый из них вам по этим требованиям сделает a) примерно одно и то же; и б) что-то за что вы будете согласны заплатить.
Так вот - я утверждаю что требований в таком смысле (и управления ими) - в 99% случаев не существует в природе. Про исключение в виде госухи, где вы это будете предъявлять прокурору и следователю чтобы не сесть (или хотя бы не сесть реально), и не возвращать в поиздержавшийся бюджет все полученные платежи - я тоже честно написал!...