Составление требований для разработки
В этой главе речь пойдет о том, как продуктовый менеджер взаимодействует с разработчиками из R&D, зачем нужны требования, как правильно их сформулировать, и какие выводы из требований к разработке должны делать различные специалисты, включая самих разработчиков, менеджеров, QA и так далее. С другой стороны будущие и уже состоявшиеся разработчики узнают, что может (и вообще-то должен) предоставлять вам менеджер продукта.
Как строятся требования
- Администратор может всё, буквально всё — в том числе назначать роли (персоны) другим пользователям.
- Обычный пользователь может только оставлять сообщения.
- Модератор может оставлять сообщения, удалять чужие сообщения, банить обычных пользователей.
В случае с приложением для вызова такси, о котором мы периодически здесь вспоминаем, персонами могут быть пассажир, таксист и оператор.
- Зачем? Какова цель? В чем польза для бизнеса?
- Почему? Каковы риски? Что мы потеряем, если не сделаем? Что случится, если сделаем?
- Что? Какую проблему мы хотим решить? Для кого?
- Как? Функциональные требования и сценарий использования (последовательность действий).
Вспомогательные метрики
- Definition of Done — краткое описание того, как понять, что фича работает.
- Нефункциональные требования — требования к технических параметрам такие как: скорость реакции UI, загрузка бэкэнда, ограничения CPU и оперативной памяти. Это очень важный пункт, ведь если не озвучить требования, можно получить монстра — встроенный фотошоп вместо простого выбора цвета автомобиля.
- Требования к безопасности — шифрование, хранение персональных данных и т.д.
- Corner Case — тестирование граничных случаев. Что будет, если цена товара 0? Сколько машин такси может заказать человек одновременно?
- Частотность сценариев — определение, какие сценарии встречаются чаще. Например, при добавлении платежей хорошо указать, какой платежной системой, скорее всего, будут пользоваться клиенты — Visa, MasterCard, МИР, приложив ссылку на статистику.
- Требования к мониторингу и сбору метрик. Если есть фича, то нужно собирать данные, отслеживать, кто ее вызывает, как часто использует и так далее. Сбор данных можно вести анонимно, но нужно это делать, чтобы развивать продукт в дальнейшем. Ведь если мы ничего не измеряем, то ничего не знаем о реальной работе приложения.
- Зависимости фичей помогают правильнее распределять ресурсы. Например, нельзя реализовать “возможность оплаты картой Мир”, пока мы не сделали фичу “выбор метода оплаты”.
Функциональные и нефункциональные требования, сценарии использования
- масштабируемость,
- надёжность, минимальное время простоя,
- методы поддержки.
Отвечает на вопрос: Какой компонент? Какое состояние?
Пример: Пользователь не авторизован.
Отвечает на вопрос: Какая персона?
Пример: Обычный пользователь.
Отвечает на вопрос: Каковы особенности?
Пример: Есть приглашение получить VIP-статус.
Отвечает на вопрос: Что пользователь намеревается сделать/получить?
Пример: Войти в систему.
Отвечает на вопрос: Какие действия нужно совершить для достижения результата?
Пример: Ввести логин и пароль, нажать кнопку “войти”.
Отвечает на вопрос: Что может пойти не так, список ошибок, включая текст сообщений об ошибках для пользователя.
Пример: Кнопка не нажимается, не меняется язык, не удается установить соединение по протоколу https и так далее…
Отвечает на вопрос: Возможные макеты или прототипы дизайна UI.
Пример: нарисуйте в Figma или Sketch.
Как читают Feature Description?
- Разработчики — Им важно знать, зачем нужна фича, какой вопрос она решает. Для того, чтобы не тратить потом время на исправления, разработчикам нужно предоставить полный список всех сценариев, а также обратить внимание на Corner cases. Если вовремя сообщить разработчику о том, что мы потом добавим, например, платежи картой МИР, он сможет предусмотреть эту возможность на уровне архитектуры. Таким образом, можно значительно сократить затраты, избежав переделок.
- Тестировщики, QA — Ожидают от вас получить данные о частотности сценариев, чтобы проверять в первую очередь самые критичные. Также им важны четко описанные Corner Cases. Для проверки нужно указать различия сценариев в зависимости от локализации, а также четко определить все пределы — максимальную длину имени, максимальное количество машин в заказе и т.д. Для инженеров нужно описать реакцию на возможные внешние изменения (пользователь переключился, вышел, закрыл окно) и принять базовое состояние для работы приложения. Это необходимо, чтобы не сломалась логика бизнес процесса. Также очень важны требования к производительности и отказоустойчивости.
- DevOps и Datacenter Operations— Им нужно знать, с какими компонентами работает продукт, какая инфраструктура для него требуется, сколько ресурсов будет использоваться софтом от серверных мощностей. DevOps должны знать, какие метрики мониторинга важнее других, как убедиться, что всё работает с их стороны.
- Технический писатель — Он должен четко понимать, какая проблема может возникнуть у пользователя, и как ее решить. Поэтому писатель тоже будет изучать сценарии использования, частотность сценариев, характеристики мокапов и тексты ошибок.
Заключение
В следующей главе мы поговорим о бизнес-плане и ценообразовании для нового продукта.
Хотите просмотреть подробную видео-лекцию по этой теме? Доступ к платной записи (1,5 часа) предоставляется после оплаты.