Решение (Solution) — это то, что в рамках проекта реализует команда разработки. Если к нам пришли за разработкой нового ПО (программного обеспечения), решением будет целевая программная система. Если к нам пришли за тем, чтобы мы доработали что-то уже существующее, решением будет доработка существующей системы X. Решением также теоретически может быть и некий программно-аппаратно-человеческий комплекс, и сугубо неайтишные или не чисто айтишные вещи (если смотреть на бизнес-анализ шире, чем в контексте IT-разработки) — например, найм новых людей в команду, новые более эффективные процессы на стороне заказчика и т. п. Фокус бизнес-аналитика — на решении (аналитик в проекте — владелец информации о решении, которое команде необходимо реализовать). В сравнении, фокус менеджера проекта, например — на проекте (т. е. на людях, которые будут разрабатывать решение, ресурсах, сроках разработки, процессах и т. п.)
Заинтересованное лицо (Stakeholder) — человек или группа лиц, имеющие отношение к целевому решению. Это несколько упрощенное определение, но для наших целей будет достаточным. Т. е. это, например, заказчик (тот, кто платит нам за разработку решения), пользователи (те, кто будут непосредственно пользоваться решением), команда разработки (включая нас как аналитиков), государство, регламентирующее решение тем или иным образом. Решение касается всех этих людей и организаций, т. е. затронет их жизнь в каком-то ключе, либо они, в свою очередь, будут как-то влиять на разработку или жизнь решения.
BABOK: Пригодное для практического использования представление потребности.
IEEE 610.12−1990:
- Условие или возможность, необходимое заинтересованному лицу для решения проблемы или достижения цели.
- Условие или возможность, которым должно обладать решение или его компонент, для соответствия контракту, стандарту, спецификации или другому формальному документу.
- Документированное представление условия или возможности в соответствии с пунктом 1 или 2.
- У стейкхолдера в контексте проекта, которым мы занимаемся, есть что-то, что ему нужно для решения своей проблемы или достижения какой-то цели.
- Что-то, что нужно вложить в решение, ибо необходимо.
Вы покупаете себе микроволновку
Обеспечить возможность разогревать пищу
Типовая ошибка: Купить микроволновку (у нас получилась формулировка вида «реализовать решение, чтобы реализовать решение» — требование должно отражать мотивацию/потребность/итоговый бизнес-эффект для заказчика; бизнес-требования не должны формулироваться в терминах конкретного решения, чтобы не ограничивать анализ того, какие решения еще могут быть: купить газовую горелку, купить плиту, разводить костер — все это альтернативные варианты решений разной степени применимости)
Собственный продукт для массового потребителя: термометр для измерения экстремальных температур
Заработать 1000000$ на продаже продукта в течение года
Типовая ошибка: Дать рынку уникальный термометр (это не отражает мотивацию заказчика: дать, чтобы что? Заказчик платит деньги за то, чтобы просто дать что-то рынку в порыве голого альтруизма?)
Программная система: веб-приложение для заказа обедов в офис компании для сотрудников
Повысить удовлетворенность сотрудников работой в компании на 50% по итогам опроса в течение полугода с момента релиза
Типовая ошибка: Дать возможность заказывать обеды в офис (это требования следующего уровня — это важно пользователям, а не тому, кто готов вложить деньги в разработку системы)
Вы покупаете себе микроволновку
Вы: Нужно, чтобы микроволновка грела пищу.
Нужно иметь возможность запихивать в микроволновку большие блюда.
Нужно, чтобы с микроволновкой было удобно взаимодействовать.
Типовая ошибка: учитывая вспомогательный характер требований ЗЛ, серьезные ошибки в их формулировке совершить сложно — главное, чтобы они были как можно более полно собраны. Есть, однако, общая рекомендация: не спускаться на данном этапе на уровень требований к решению и не общаться со стейкхолдерами подобным языком (об этом также можно почитать тут и тут). Когда стейкхолдер говорит (или вы формулируете вопрос ему таким образом): «В решении должно быть…», он не отражает свою потребность/мотивацию — он формулирует то, каким он видит наполнение решения. А стоит всегда держать в голове, что за продумывание решения в сферически-вакуумном мире отвечает аналитик и команда разработки. И для подбора огненных решений необходимо понимание потребностей/мотиваций.
Микроволновка должна обладать цифровым интерфейсом.
Производитель микроволновки может реализовать требование вида «Нужно, чтобы с микроволновкой было удобно взаимодействовать» разными способами, т. е. в решение могут быть вложены разные требования: 1) Микроволновка должна обладать цифровым интерфейсом. 2) Микроволновка должна обладать голосовым интерфейсом и т. п. И вот как раз для того, чтобы не ограничивать себя и заказчика в том, как именно мы будем вкладывать в решение требования ЗЛ, и стоит как раз формулировать их в таких терминах, которые будут отражать мотивацию стейкхолдеров вместо концепции «мне нужно, чтобы в решении было X».
Собственный продукт для массового потребителя: термометры для измерения экстремальных температур
Пользователи: Нужно измерять температуру, причем в диапазоне от -100 до +100 градусов по Цельсию.
Нужно, чтобы продукт был удобным в контексте нахождения в экстремальных условиях.
Заказчик (да-да, у него также как у стейкхолдера могут быть требования этого уровня, но отвечающие не на вопрос «Зачем я инвестирую в разработку продукта», а на вопрос «Что я хочу от решения (чтобы достичь бизнес-требований)»): Нужно брендировать визуально термометры, чтобы всегда было видно, кто их произвел.
Государство: Все термометры должны соответствовать стандарту X и пройти сертификацию Y.
Типовая ошибка: Термометр должен иметь большую кнопку, чтобы в перчатках в условиях Северного полюса по ней можно было точно жмякнуть (мы снова преждевременно спускаемся с уровня потребностей ЗЛ на уровень того, что нужно заложить в решение)
Программная система: веб-приложение для заказа обедов в офис компании для сотрудников
Пользователи (сотрудники): Нужно иметь возможность заказать еду в любое рабочее время.
Нужно, чтобы доставка была прямо на рабочее место.
Хорошо бы, чтобы не пришлось оплачивать самому, а средства вычитались из зарплаты.
Важно, чтобы другие сотрудники не увидели историю моих заказов.
Пользователи (отдел учета заработной платы): Нужно, чтобы можно было получить полную информацию о заказах сотрудников и их стоимостях.
Команда разработки решения: Нужно, чтобы в решение можно было вносить изменения в цены блюд без особого геморроя, т. к. предвидится частая поддержка в этом ключе.
Типовая ошибка: Система должна позволять экспортировать заказы в виде Excel-файла.
Доступ к системе должен осуществляться по протоколу HTTPS (аналогичное примерам выше обоснование).
- Условие или возможность, необходимое заинтересованному лицу для решения проблемы или достижения цели.
- Условие или возможность, которым должно обладать решение или его компонент, для соответствия контракту, стандарту, спецификации или другому формальному документу.
- Документированное представление условия или возможности в соответствии с пунктом 1 или 2.
Вы покупаете себе микроволновку
Функциональные возможности микроволновки:
1. Разогревание содержимого.
1.1. Настройка мощности.
1.2. Настройка времени.
1.3. Нагрев.
2. Открытие/закрытие.
1. Разогревание содержимого:
1.3. Нагрев.
1.3.1. В микроволновке должна быть возможно поместить в нее содержимое для нагрева.
1.3.2. Микроволновка должна позволять стартовать и остановить нагрев содержимого с установленной мощностью на установленный период.
Собственный продукт для массового потребителя: термометры для измерения экстремальных температур
Функциональные возможности термометра:
1. Измерение температуры.
2. Замена батарейки.
3. Пользовательские настройки.
1. Измерение температуры:
1.1. На термометре должна быть кнопка для старта измерения температуры.
1.2. При нажатии на эту кнопку пользователем термометр должен измерить температуру окружающей среды.
1.3. После завершения измерения термометр должен отобразить температуру на экране.
Программная система: веб-приложение для заказа обедов в офис компании для сотрудников
Функциональные возможности веб-приложения:
1. Аутентификация/авторизация (возможности войти в систему и выйти из нее, плюс назначение роли учетной записи).
2. Работа с заказами (просмотр заказов, создание, редактирование, отмена, экспорт списка в PDF-файл)
3. Работа с меню (импорт нового меню из Excel-файла, просмотр меню).
4. Домашняя страница (информация о системе).
1. Аутентификация/авторизация:
1.1. Когда пользователь открывает систему, система должна отобразить страницу «Вход», где пользователю необходимо ввести логин и пароль для входа в систему под своей учетной записью.
1.2. Когда пользователь подтверждает вход, система должна проверить следующее:
А) То, что данные были введены. В случае, если логин или пароль пусты, система должна отобразить «Укажите логин/пароль».
Б) Наличие учетной записи с указанными параметрами. В случае, если такая запись отсутствует, система должна отобразить «Неверные логин и/или пароль»
1.3. В случае успешного входа система должна присвоить пользователю роль, соответствующую учетной записи, и перенаправить его на страницу «Меню».