Если вы занимаетесь развитием программного продукта, то наверняка знаете, что его ценность определяется не количеством функций или технической сложностью, а тем, насколько эффективно он помогает бизнесу решать его задач
Вне зависимости от того, откуда поступил запрос на новый функционал: от владельцев продукта, через обращение в службу технической поддержки или через другие каналы, понимание того, для чего вы добавляете те или иные возможности в ваш продукт важно для планирования, приоритизации задач и координации усилий между командами.
В этой статье я хочу показать, как можно связать требования, которые предъявляет бизнес, продуктовые задачи и задачи разработки с помощью нового функционала GitHub, который называется Sub-Issues.
Термины
Для начала, рассмотрим основные термины. Очень быстро, чтобы не терять на этом много времени. Если не хотите читать, можно сразу перейти к решению.
Бизнес-требования – это это ключевые способности или возможности, которые необходимы организации для достижения стратегических целей. Например, для достижения стратегической цели “Увеличение доли рынка на Х процентов” может возникнуть бизнес требование “Возможность реализации товаров с помощью сайта”.
Продуктовые задачи – функционал программного обеспечения, который позволяет реализовать бизнес-требования. Для предыдущего примера это может быть “Подключить он-лайн оплату” или “Добавить линейку товаров YYY”.
И, наконец, задачи разработки. Это задачи, которые непосредственно касаются разработки и возникают они при постановке задач из продуктового бэклога. Одна продуктовая задача может быть декомпозирована на несколько задач в различных контурах разработки.
Подготовка
Нужный нам функционал доступен только организациям и пока что находится в бета-доступе. Поэтому, чтобы воспользоваться им, нужно создать организацию и оставить запрос на добавление вашей организации в список ожидания. В моём случае ожидание продлилось немногим более суток.
Второе, что потребуется – это создать в организации проект (Project) для управления представлениями issues. Мне нравится работать с табличным видом для создания и редактирования issues и канбан – для отслеживания прогресса.
Настраиваем Sub-Issues
1. Создаём типы задач
Для начала добавим типы issues. Они понадобятся для разделения issues по уровням. Создаём следующие типы:
`Business` – для бизнес-требований;
`Product` – для продуктовых задач;
`Development` – для задач разработки.
Как это сделать
В правом верхнем углу GitHub нажмите на пиктограмму профиля, а затем выберите организацию.
Рядом с организацией щелкните “Settings”.
На боковой панели в разделе "Code, planning, and automation" выберите “Planning”, а затем нажмите кнопку "Issue types".
Справа от типа проблемы, на который вы хотите внести изменения, щелкните иконку с тремя точками.
В контекстном меню нажмите кнопку "Edit ", внесите изменения и нажмите кнопку “Save”.
2. Добавляем бизнес-требования
Создадим первый слой, который будет содержать бизнес-требования к продукту. Для этого создаём issue и назначаем ему тип Business.
Как это сделать
В строке со знаком "+" введите заголовок issue и нажмите Ctrl+Enter (Comand+Enter для Mac)
В открывшемся окне добавьте описание
Под описанием, в строке параметров нажмите Issue Type
В модальном окне выберите "Business"
Нажмите "Create"
3. Добавляем продуктовые задачи
Теперь, чтобы создать следующий слой, состоящий из продуктовых задач, внутри issue типа Business создадим sub-issue с типом Product.
Как это сделать
В карточке issue внизу блока описания нажмите "Create sub-issue"
Под описанием, в строке параметров нажмите Issue Type
В модальном окне выберите "Product"
Нажмите "Create"
4. Добавляем задачи разработки
Повторяем операцию из пункта 3, но уже для следующего слоя – задач разработки. Их создаём внутри продуктовых задач и задаём тип Development.
5. Настраиваем представления
В качестве финального аккорда настраиваем несколько досок для работы с различными слоями. У меня их пять:
Таблица со всеми issue с разбивкой по типам
По одной таблице для каждого типа задач отдельно.
Канбан для задач разработки.
Как настроить представление
Нажмите "New view"
Выберите тип представления: Таблицу или Канбан
Если нужно, отфильтруйте представление по нужному типу issue
В меню вкладки представления нажмите "Save"
Что получилось
Такая организация задач позволяет создать единую прозрачную среду для всех участников, работающих над развитием и разработкой продукта. С одной стороны, это позволяет учитывать "вес" бизнес-требований при расстановке приоритетов, а с другой – координировать усилия различных команд разработки по доставке функционала, необходимого для закрытия важной продуктовой задачи.