Управление требованиями

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

Что включает эта услуга

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

Самый распространённый способ провала IT-проектов - не технический. Причина в том, что требования никогда не были нормально зафиксированы с самого начала. Клиент считал что всё очевидно. Разработчики считали что они всё поняли. Ни то ни другое не соответствовало действительности.

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

Решение - выделенный человек извне организации, для которого эта документационная работа является основной задачей, а не отвлечением от неё. Кто-то, кто задаёт вопросы, очевидные для клиента но не очевидные для разработчика. Кто структурирует ответы в документ, работающий для обеих сторон. Кто проверяет что написанное соответствует задуманному.

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

Как это работает

01
Интервью с участниками
Интервьюирую людей, которые будут использовать систему - не только руководство, но и реальных пользователей на каждой роли. Цель - понять что им нужно от системы, включая граничные случаи, исключения и обходные решения, которые никогда не попадают в неформальные описания.
02
Картирование процессов
Картируются текущие и целевые рабочие процессы - кто что делает, в каком порядке, что запускает каждый шаг, каковы результаты. Это становится структурной основой документа требований.
03
Написание требований
Функциональные требования пишутся в структурированной форме: входные данные, выходные данные, бизнес-правила, роли пользователей, потоки статусов, логика уведомлений, правила валидации, обработка исключений. Каждое требование достаточно конкретно чтобы быть реализованным и протестированным.
04
Валидация с участниками
Черновик проверяется с клиентом - как с пользователями, так и с руководством. Пробелы, противоречия и недопонимания устраняются до того, как они становятся проблемами разработки. Именно на этом шаге создаётся наибольшая ценность.
05
Передача в разработку
Финальный документ структурирован для использования разработчиками - достаточно чёткий для реализации без дополнительных уточнений, достаточно полный для использования в качестве основы технического задания и оценки стоимости.
Типовые результаты
  • Документ функциональных требований
  • Диаграммы потоков процессов (BPMN)
  • Матрица ролей и прав доступа
  • Определения статусов и рабочих процессов
  • Логика уведомлений и триггеров
  • Эскизы интерфейсов там где применимо
  • Спецификации форматов данных и полей
Формат работы
Проектная работа. Объём зависит от сложности системы и количества ролей пользователей - как правило 2-4 недели для проекта автоматизации среднего масштаба.
Подходит для
  • Разработка кастомного ПО или веб-системы
  • Проекты автоматизации после стадии оценки целесообразности
  • Внутренние инструменты, создаваемые впервые
  • Замена или существенная переработка унаследованной системы
  • Ситуации, где предыдущая разработка пошла не так из-за нечёткого охвата

Система управления торговым оборудованием - функциональные требования для розничной сети

Розничная компания с сетью магазинов нуждалась в создании веб-системы для управления жизненным циклом торгового оборудования - мебели, стеллажей и инвентаря в магазинах. Процесс охватывал шесть групп участников, четыре IT-системы и пять отдельных подпроцессов: заказ у поставщика, доставка, складской учёт, возвраты и межмагазинные перемещения. Ничто из этого не было формально описано как системные требования. Задача проекта - задокументировать что система должна делать, с достаточной детализацией чтобы команда разработки могла её построить.

Что было задокументировано

Документ требований охватывал полный жизненный цикл оборудования. Только для подпроцесса заказа: документ специфицировал точные поля данных и формат таблицы заказа, последовательность согласований и кто что запускает, автоматические уведомления на каждом этапе (с получателями, сроками и условиями), поток подтверждения поставщиком через веб-ссылку, прогрессию статусов в реестре заказов и логику обработки новых артикулов, ещё не зарегистрированных в ERP. Аналогичная детализация была произведена для каждого из пяти подпроцессов. Документ включал диаграммы процессов для каждого потока, справочную таблицу статусов для статуса заказа и статуса документа (рассматриваемых как две независимые машины состояний), определения ролей и доступа для всех шести групп участников, логику триггеров уведомлений и проработанные примеры для граничных случаев - включая частичные поставки, ценовые корректировки и возвраты оборудования.

Diagram
Структура документа требований

Каждый модуль процесса был структурирован одинаково: BPMN-диаграмма процесса, описание каждого шага, таблица переходов статусов, таблица правил уведомлений (триггер, получатель, время, содержание) и список граничных случаев и правил обработки исключений. Документ был валидирован со всеми шестью группами участников перед подписанием и передан напрямую команде разработки как основа для технического задания и оценки объёма разработки.

Diagram
Ключевые изменения
Полные функциональные требования для 5 подпроцессов по 6 ролям и 4 системам
Логика статусов формализована - 8 статусов заказа и 4 статуса документа определены как независимые машины состояний
Матрица триггеров уведомлений задокументирована - 12 отдельных событий уведомлений с получателями и условиями
Все исключительные пути зафиксированы - частичная поставка, корректировки поставщика, просроченные документы
Документ использован напрямую как основа для оценки объёма разработки и стоимости