Принципы формирования документации проекта

В данном документе описаны принципы работы 
с документацией проектом в целом. Затрагиваются важные моменты структурирования и актуализации информации. Однако, не описывается сам процесс продуктового подхода. Продуктовый подход можно посмотреть в следующем документе: гайд по дизайну продукта
Автор
Никита
Денисенко
Содержание:
1. Создание базы знаний проекта
1.1. Принцип описания функциональности
1.1.1. Роли
1.1.2. Эпики
1.1.3. User Story
1.1.4. Шаги сценария
1.1.5. Критерии приёмки
1.2. Актуализация функциональности
1.3. Разработка функциональности
1.4. Принятые решения
2. Написание технического задания
2.1. Состав БФТ
2.2. Время написания ТЗ
2.3. Состав технического задания
Создание базы знаний проекта
1.1. Принцип описания функциональности
Вся требуемая функциональность должна быть описана в виде пользовательских историй. Для этого требуется бизнес-аналитик, который совместно с командой дизайна будет фиксировать разрабатываемую функциональность и пользовательские сценарии 
в виде User Story, сгруппированные по эпикам, которые в свою очередь должны быть сгруппированы по ролям пользователей сервиса.Для разработки непосредственно задачей является сформированная 
и описанная по шагам User Story.
1.1.1. Роли
Роль представляет собой совокупность пользователей с схожими обязанностями и целями, с которыми он приходит к использованию сервиса.
Роль может диктоваться:
1. Должностными инструкциями (прям прописанный реестр обязанностей на рабочем месте);
2. Рабочими целями и обязанностями, не зафиксированными 
в должностных инструкциях;
3. Периодически или разово возникающими потребностями (в таком случае термин «роль»меняется на «сегмент»).
Для документации роль является совокупностью пользовательских сценариев.Документ, описывающий состав ролей и их укрупненные обязанности называется ролевой моделью и служит базой для создания дальнейшей документации.
1.1.2. Эпики
Эпик — это укрупненная функциональность системы, представляющая собою отдельный модуль, внутри которого может быть вложено множество пользовательских сценариев. По факту это дополнительная группирующая сущность, когда пользовательских сценариев становится много. Для небольших (до 5-10 пользовательских сценариев на роль) систем описание эпиков не требуется.
1.1.3. User Story
Стандартная формула User Story: «Я, как <роль пользователя>, хочу <наименов ание сценария>, чтобы <цель пользователя, которую он должен решить при выполнении сценария>». Последняя часть User Story может так же называться JT BD (Job To Be Done) 
— это истинная потребность пользователя, которую он может реализовать за счёт различных способов, одним из которых является проектируемый сценарий.
Соответственно для сокращения наименования страницы 
в документации конкретной User Story даётся сокращенное наименование, которое можно описать как сценарий.
Например:
Роль: Учитель начальных классов
Эпик: Онлайн-урокСценарий:
Создание онлайн-урока
User Story: Я, как учитель начальных классов, хочу создать онлайн-урок, чтобы иметь возможность провести занятие для учеников, находящихся на удаленном обучении
1.1.4. Шаги сценария
Далее непосредственно по шагам описывается выполнение пользовательского сценария.
Например:
1. Пользователь просматривает расписание на сегодня;
2. Пользователь переходит к созданию урока;
3. Пользователь прикрепляет онлайн-трансляцию к уроку;
4. Пользователь указывает дату, время, тему урока, наименование, место проведения.
5. Опционально, может быть указано описание занятия.
В документации к пользовательским сценариям не указываются элементы пользовательского интерфейса и действия по типу «пользователь нажимает на кнопку». Для этого есть критерии приёмки, которые можно вести на странице User Story отдельным пунктом. Составляются критерии приёмки непосредственно после согласования артефактов дизайна продуктовой командой (аналитиком, представителем разработки, оунером)
1.1.5. Критерии приёмки
Критерии приёмки описывают конкретные действия в интерфейсе 
и отдельные UI-элементы экранных форм (кнопки, и состояния и т.д.) 
с целью приёмки итоговой реализации. Для упрощения работы с критериями приёмки с целью описания элементов интерфейса предлагается использовать ссылки на макеты в Figma (UI-kit или актуализированная документация состояния продукта).
1.2. Актуализация функциональности
Описанная функциональность должна поддерживаться в актуальном виде и обновляться при согласовании новых сценариев или же при согласовании корректировки старых.<aside> Описанные сценарии должны согласовываться оунером при участии менеджера команды дизайна, бизнес-аналитика, менеджера разработки.
</aside> Для поддержания документации предлагается использовать инструментарий Confluence.
1.3. Разработка функциональности
При разработке функциональности рекомендуется создать сводную таблицу (бэклог) User Story, состоящую из следующих столбцов:
1. Наименование User Story с ссылкой на страницу с полноценным описанием;
2. Приоритет реализации User Story (низкий, средний, высокий, наивысший);
3. Релиз / спринт, в рамках которого планируется реализовать User Story;
4. Статус описания User Story со стороны аналитики:
— Не описано; 

— В процессе; 

— Ожидает согласования; 

— Согласовано; 

— Требует актуализации;
5. Статус создания артефактов дизайна для User Story:
— Не требуются (бывают чисто технические User Story, 
для описания которых нет

— Необходимости создавать артефакты дизайна);

— Не отрисовано;

— В процессе;

— Ожидает согласования;

— Согласовано;

— Требует актуализации;
6. Статус разработки User Story (не перечисляются, так как зависят 
от конкретной команды разработки, однако идеально настроить автообновление статуса в Confluence в зависимости от изменения статуса в Jira);
7. Наименование задачи на разработку с ссылкой в Jira.
1.4. Принятые решения
Рекомендуется вести отдельный документ, в котором будут фиксироваться принятые решения в рамках проекта. Например, упрощение какой-то функциональности, изменение приоритета и т.д. При этом фиксировать, когда было принято решение, кем (желательно указать полный состав согласовавших), по какой причине и область влияния.
Написание технического задания
2.1. Состав БФТ
Бизнес-функциональные требования формируются из пожеланий бизнес-заказчика и не привязываются к конкретным эпикам или User Story. Это «сырой» продукт, который далее ляжет в основу полноценного ТЗ, в котором BN (Business Needs — потребности бизнеса) будут разложены на эпики. Аналогично User Story рекомендуется не указывать UI-элементы в БФТ (если, конечно, нет каких-либо специфичных ограничений), чтобы не ограничивать решение дизайнера, которое довольно сильно может измениться по результатам предварительных исследований.По сути в БФТ указываются требования, сгруппированные по модулям предполагаемого решения.
2.2. Время написания ТЗ
Техническое задание составляется до начала работ над планируемой для реализации функциональностью, либо пишется параллельно 
с процессом первоначальных исследований.
2.3. Состав технического задания
Техническое задание должно содержать в себе:
1. Ролевую модель;
2. Верхнеуровневое описание эпиков (модулей системы), в рамках которых планируется реализовывать пользовательские сценарии;
3. Этапы разработки (если есть ограничение по реализации MVP 
и последующих очередей сдачи — особенно актуально для проектов, связанных с госконтрактами);
4. Платформы, для которых разрабатывается сервис;
5. Ограничения по версии ОС (например, для Android не ниже API 6.0), 
а для web-решений ещё и список браузеров и их версий, которые должен поддерживать интерфейс;
6. Ограничения о технике, в которой пользователи будут взаимодействовать с интерфейсом (например, разрешение экрана не менее 1280х720);
7. Соответствие стандартам доступности, если такие ограничения накладываются (ссылка на ГОСТ, на WCAG актуальной версии или прямое перечисление, например, «Размер шрифта должен быть не менее 16pt»);
8. Стек разработки;
9. Технические ограничения, связанные со стеком разработки.
Не рекомендуется в техническом задании указывать как конкретные User Story, так и ограничения на визуальное решение. Не редки случаи, когда описанное решение оказывается некорректным, а ТЗ давно прошло этап согласования.
Вместе перечисления конкретных решений рекомендуется указать, что приёмка должна проводиться согласно критериям приёмки, которые описываются и согласовываются согласно принципам выше.
Если возникает вопрос, как рассчитываться по заказам без описания конкретных User Story, то в заказ можно в зависимости от планирования реализации продукта отнести либо эпик целиком, либо часть эпика с пояснением реализации.