Рабочие процессы

3 уровня

Весь наш процесс разработки проходит через 3х уровня:

  1. Карта пользовательских историй или просто карта историй. Для построения карт, мы используем сервис StoriesOnBoard.
  2. Беклог (Backlog) историй. Списик историй, которые мы запланировали в разработку. Используем Jira Backlog.
  3. Канбан доска. У каждого члена команды своя доска с его текущими задачими. Используем Jira Kanban Board.

Уровень 1: Карта историй

Структура карты

Для знакомства с картами, можно почитать статью https://storiesonboard.com/user-story-mapping-intro.html В целом, структура карты подстраивается под специфику проекта, нет жестких ограничений.

Соглашение по работе с картами

  1. Все карточки историй заводятся изначально в на карте в Unscheduled блоке.
  2. При планировании создается следующий Релиз. Релизом тут может быть номер следующей версии, месяц или номер недели. В Jira релизы называются как Версии (Versions). Карточки можно добирать в релиз, если текущих оказалось недостаточно.
  3. Чтобы отправить карточку в Jira, нужно нажать "Push to Jira".
  4. После деплоя или завершения периода релиза, нужно зайти в детали версии и нажать "Release".
  5. Старые релизы отправляются в архив (нужно нажать на "Archive Release").

Уровень 2: Бэклог

Начинаем работать над новой Историей:

  1. Декомпозируйте Историю: разделите на подзадачи. Каждая подзадача должна занимать не больше дня. В идеале 2-4 часа.
  2. Заведите ветку по идентификатору Истории. Если у истории назначена версия релиза, то ветка делается от ветки релиза, в ином случае от master.
  3. Выставите историю в состояние "Active".

Уровень 3: Канбан доска

На доске всего 4 колонки, которые соответствуют статусам задач:

  • Planned — запланировано в работу на ближайшее время. Алиас статуса "Reopened".
  • In Progress — идет работа над задачей.
  • Done — выполнено и ожидает подтверждения или деплоя.
  • Deployed/Confirmed — изменения получили клиенты.

У карточек могут быть и другие статусы и такие карточки не видны на доске.

  • Backlog — задача в Беклоге.
  • Delayed — отложена и находится в Беклоге.
  • Closed — задача закрыта.
  • Cancelled — задача не актуальна, отменена.

Как работать с карточками на доске

  1. Когда начинаете работать над задачей, переносите карточку в "In Progress".
  2. Если останавливаете работу или переключаетесь на другую, возвращайте карточку в первую колонку.
  3. После выполнения, переводите в "Done". Напишите коротко о том, что было сделано.

Теперь, в зависимости от специфики проекта, нужно еще перенести карточку в "Deployed/Confirmed":

  1. Если багфикс - после деплоя или выкатки обновления.
  2. Задача из Support - когда клиент подтвердил, что его проблема решена.

Задачи из колонки "Deployed/Confirmed" убираются с доски через сутки.

Как выглядит разработка с точки зрения разработчика

Если над Историей работает один человек:

  1. Заводить ветки на каждую подзадачу не обязательно.
  2. Открываем канбан доску в Jira и перекидываем карточку задачи/подзадачи в колонку In Progress.
  3. После выполнения первой задачи в Истории, нужно оформить MR (Merge Request) ветки истории в ветку master или релизную ветку. В заголовке добавить спереди "WIP: " — это отметка Work In Progress.

Если над Историей работает несколько человек:

  1. Заведите новую ветку от ветки Истории по идентификатору задачи.
  2. Перекиньте карточку подзадачи в колонку In Progress.
  3. После завершения задачи, оформите MR в ветку Истории.
  4. Когда все подзадачи выполнены, оформляйте MR в master или ветку следующего релиза:

Чиатайте также страницу Apliteni git-flow.

Если закончились задачи

  1. Сначала проверяем, нет ли еще подзадач у Истории, над которой вы работаете. Если есть, берем из Истории.
  2. Переходим в Беклог и берем задачу сверху, которую вы сможете выполнить. Сверху можно наложить фильтр, чтобы проще было отыскать.

Если у вас сомнения по выбору задачи, напишите через Slack лиду проекта.

Специфика задачи с типом "Bug"

Если задача с типом "Bug":

  1. Заведите новую ветку от master.
  2. После завершения задачи, оформите MR в ветку master.

Создание задач в Jira

  1. Для заведения задачи/истории слева по кнопке "+"
  2. Выберите проект. Ниже специальные проекты, которые используется с разными целями:
    • Apliteni — для организационных задач
    • Support — для запросов от клиентов, которым требуется помощи
  3. Тип:
    • Story — рекомендуемый. Рекомендуется начинать создание истории в StoriesOnBoard.
    • Task — микро-задача, которая не связана с существующими Историями. В проекте SUPPORT заводятся задачи именного этого типа.
    • Bug – если это подтвержденный баг.
  4. Priority:
    • Ставим High для критических багов или серьезной проблеме у клиента. В остальных случаях Medium.
    • Если задача метит на уровень Low и ниже, то подумайте, не завести ли ее только в StoriesOnBoard.
  5. Заголовок:
    • Очень важно, чтобы заголовок максимально коротко описывал суть задачи. Это нужно, чтобы в беклоге легко можно было понять о чем задача и регулировать порядок в очереди на выполнение.
  6. Описание
    • Опишите более подробно цель задачи. Кладите сюда также доступы, ссылки на переписку или саму переписку с клиентом.
  7. Due Date:
    • Если клиенту назвали сроки выполнения, укажите его в этом поле.
  8. Исполнитель (Assignee) назначается, только если задача предназначена конкретному человеку.

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