Процесс разработки
Оглавление
- Дейли
- Демо
- Типы задач и шаблоны
- Система лейблов
- Workflow и статусы
- Процесс разработки
- Работа с багами и хотфиксами
- Вахтовый метод поддержки
- Работа со сложными задачами
- Оценка и планирование
- Метрики и отчетность
- Projects
- Практические правила
Дейли
Ежебудничные звонки для того, чтобы определить статусы задач, решить возникшие вопросы.
Порядок: Дмитрий -> Руслан -> Алена -> Андрей -> Екатерина -> Юрий -> Олеся
Демо
Демонстрация результатов команды за спринт (цикл) с помощью презентации.
Порядок выступающих: Дмитрий -> Руслан -> Алена -> Андрей -> Екатерина -> Юрий -> Олеся
При отсутсвие выступающего роль переносится на следующего, а отсутсвующий переносится на следующий спринт.
Типы задач и шаблоны
Ниже — краткие шаблоны.
Feature
Feature: [Название фичи]
Описание:
[Коротко: цель, контекст, бизнес-ценность]
Критерии приемки:
- [ ] Код написан и покрыт тестами
- [ ] PR и Review пройдены
- [ ] UI/UX соответствует макетам
- [ ] QA протестировал функционал
- [ ] Продукт одобрил
- [ ] Выложено на прод
Технические требования:
[Миграции, API, спецификации]
Связанные задачи:
- Review
- QA
- Баги
- Подзадача 1
- Подзадача 2
Оценка:
- Story Points: [1,2,3,5,8]
Коммуникация: вся переписка и обсуждение по реализации ведутся в основной задаче `Feature` (комментарии к задаче). Ссылки на связанные Bug/Review/QA задачи добавляются к основной задаче.
Review
Review: [Название фичи]
Связанная задача: Feature: [ссылка]
Что проверить:
- [ ] Код соответствует стандартам
- [ ] Тесты покрывают ключевые сценарии
- [ ] Нет security issues
- [ ] Архитектура корректна
QA
QA: [Название фичи]
Чек-лист тестирования:
- [ ] Функциональное тестирование
- [ ] Проверка критериев приемки
- [ ] Регрессия
- [ ] Тестирование ошибок/валидаций
Bug
Bug: [Краткий заголовок]
Связанная фича: [ссылка]
Найден при тестировании: [дата]
Шаги воспроизведения:
1.
2.
3.
Ожидаемый результат:
Фактический результат:
Технические детали:
- Компонент: [backend|frontend]
- Окружение: [prod|stage|contour]
Hotfix
Hotfix: [Краткое описание]
Описание проблемы: [влияние на пользователей]
Приоритет:
- Severity: [critical|high]
Критерии фикса:
- [ ] Проблема решена
- [ ] Протестирован фикс
- [ ] Развернуто на проде
- [ ] Коммуникация с пользователями
Примеры
Ниже два практических примера — как мы разбиваем фичу на frontend/backend и как проводить review/QA при багах из продакшна.
1) Пример: Feature с frontend и backend частью
Общая идея: заводим одну основную Feature-задачу, и внутри неё — явные подзадачи для backend и frontend, отдельные ревью/PR и единый QA, который проверяет интеграцию.
Пример структуры задач:
Feature: []
Описание:
Критерии приемки:
- [ ] Backend: API для создания транзакции + unit/integration tests
- [ ] Frontend: UI соответствует макетам и корректно вызывает API
- [ ] QA
Связанные задачи:
- Feature — Backend (work-type: feature, component: backend)
- Feature — Frontend (work-type: feature, component: frontend)
- Review — Backend
- Review — Frontend
- QA — тестирование
Рекомендации по процессу:
- Backend и Frontend — отдельные подзадачи, каждая с собственным component и исполнителем.
- Backend обычно делает API и ставит статус Review Ready. После merge backend в интеграционную ветку frontend интегрируется с реальным API (или с контрактным mock'ом при необходимости).
- Reviews для backend и frontend проходят отдельно; QA начинает проводить тесты только когда обе части готовы.
- Баги, найденные на этапе QA, создаются как отдельные Bug и ссылкой связываются с основной Feature. Для таких багов проставляем work-source: from-feature и component по месту обнаружения.
- Главная задача назначается на одного из разработчика, либо на TL или PM.
2) Пример: Review и QA при баге из prod
Когда баг пришёл из продакшна — действуем быстрее и строже. Ниже пошаговый алгоритм.
Алгоритм действий:
1. Triage: on-call или TL воспроизводит проблему (если возможно) и проставляет приоритет (critical/high/medium/low). В поле environment указываем prod.
2. Создать Bug по шаблону с подробными шагами воспроизведения, логами и ссылками на мониторинг/инцидент.
3. Если приоритет = critical|high — заводим Hotfix или помечаем work-source: hotfix и уведомляем on‑call.
4. Реализация: разработчик делает минимальный, безопасный фикс (branch hotfix/...), добавляет unit тесты.
5. Review: ускоренное ревью — назначаем 1–2 ревьюеров, можно проводить с TL. Переназначая задачу.
6. Deploy: сначала в stage/preprod для smoke tests, затем в prod.
7. QA: целевое тестирование в окружении после деплоя; QA закрывает баг только после подтверждения в prod (или в случае отката — после повторного теста).
8. Документация: добавить ссылку на релиз/PR в баг, обновить CHANGELOG/release notes.
Примечание: если баг из prod не критичный — можно пройти стандартный процесс Bug → triage → план на ближайший спринт, но всегда указывать environment: prod и помечать приоритет/серьёзность.
Review и QA — когда выделять отдельные задачи
Кратко: по умолчанию выделяем отдельные Review и QA задачи для средних и крупных фич, но для мелких изменений достаточно чек-листа в основной Feature.
Когда создавать отдельные задачи:
- Создавайте отдельные
ReviewиQAзадачи как дочерние/связанные кFeature, если:- задача ≥ 2–3 SP;
- затрагиваются несколько компонентов (например,
frontend+backend); - присутствуют миграции, изменения контрактов API или риск безопасности.
- Не выделяем отдельные задачи, если это мелкая правка (1 SP), документация или косметика — используйте чек-лист в
Featureи стандартный PR-review. - Для багов из
prodвсегда заводим отдельныйBug/Hotfixи отдельную QA-задачу (верификация в окружении) — не экономим на шагах верификации.
Рекомендуемая структура для крупных фич (frontend + backend):
Feature: [X — Main description]
├─ Feature — Backend (component: backend)
│ └─ Review — Backend (work-type: review)
├─ Feature — Frontend (component: frontend)
│ └─ Review — Frontend (work-type: review)
└─ QA — Integration / E2E (work-type: qa)
Причины: отдельные Reviews дают фокус и ответственность за код в каждой части; единая QA-задача гарантирует полную проверку.
Ownership и переходы:
- Review назначается конкретному ревьюеру (или TL). После прохождения Review подзадача Review помечается
Done. - QA назначается инженеру QA; когда все Review-подзадачи завершены, основную
Featureпереводим вReady for QAи запускаем QA-задачу. - Все Review/QA задачи обязательно ссылаются на основную
Feature(ссылка в описании), чтобы сохранять единую историю обсуждения.
Рекомендуемые лейблы и поля:
work-type: chorecomponent: backend|frontendwork-source: from-feature
Плюсы и минусы:
- Плюсы: чёткая ответственность, видимость, возможность метрик на Review/QA, параллельная работа команд.
- Минусы: дополнительная административная нагрузка для очень мелких изменений — поэтому используем правило порога по SP/компонентам.
Практическая рекомендация для команды:
- Правило: если
Featureзатрагивает >1 component или оценивается ≥3 SP — создаём отдельныеReviewиQAзадачи; иначе — чек-лист вFeature.
Система лейблов
Обязательные лейблы (использовать всегда):
work-type:feature,bugfix,chore,ops,meeting,support,investigation,documentationwork-source:planned,triage,hotfix,customer-request,internal-improvement,from-featurecomponent:backend,frontend,infra,design,database
Специфичные для багов:
bug-type:regression-bug,feature-bug,legacy-bug,environment-bug,data-bugbug-severity:critical,high,medium,low
Окружения:
- environment: prod, stage, contour
Workflow и статусы
Основный поток для Feature:
Backlog → ToDo → In Progress → Review Ready → Ready for QA → Ready for Release → Done
Короткие статусы для Review/QA/Bug: To Do → In Progress → Done
Если найден баг в фиче, то создается отдельная задача с багом, откуда он взят, основная задача передвигается In Progress. Новая задача по багу идет по корткому процессу, далее задача обратно возвращается на Ready for QA.
Процесс разработки
- Планирование (спринт 2 недели): Product готовит спецификации; команда оценивает в Story Points.
- Начало работы: разработчик берёт задачу из
ToDo, ставитIn Progressи назначает себя. - Завершение разработки: создаётся PR → статус
Review Ready→ ревью →Ready for QA. - Тестирование: QA использует чек-лист; при багах создаются Bug-задачи.
- Релиз: после одобрения Product задача переводится в
Done.
Projects
Зачем нужен Project:
- Project — это уровень инициативы/инициатива (roadmap) вокруг набора связанных задач (Feature, Investigation, важные Bug). Он служит для планирования, приоритизации и отчётности на уровне продукта или большой фичи. Project имеет owner, цель, ожидания по результату и обычно живёт дольше одной задачи/спринта.
Чем Project отличается от Feature:
- Scope: Project покрывает несколько Feature/Investigation/Bug; Feature — единичная задача по реализации конкретного функционала.
- Lifetime: Project может длиться месяцы; Feature — обычно укладывается в один спринт или меньше.
- Owner: Project назначается Product или TL; Feature — обычно назначается конкретный разработчик как исполнитель.
- Tracking: в Project мы отслеживаем прогресс по вехам (Milestones), риски и общий scope.
Примеры Milestones :
1) Release 1.0
- Goal: публичный релиз core-функционала, API стабильные.
- Owner: Dev
- Scope: Features A, B, C; Data migration; Integration tests
- Exit criteria: все Features в scope 'Done', нет критических багов
2) Beta
- Goal: internal beta для 10 клиентов, собрать фидбек.
- Owner: PM
- Scope: минимальный набор фич + телеметрия
- Exit criteria: собраны отзывы от >5 клиентов, критичные баги исправлены
3) API Stabilization
- Goal: зафиксировать публичное API и покрыть интеграционными тестами
- Owner: Dev
- Scope: задачи по доке API, тестам
- Exit criteria: API contract tests green
Практика: связывайте Feature и Bug с соответствующим Milestone, помечайте баги work-source: from-feature — это даёт возможность метрики по качеству релиза.
Работа с багами и хотфиксами
- При нахождении бага QA — создаёт Bug по шаблону с шагами воспроизведения и логами.
- Фичу переводят в
Bug Fix, разработчик фиксит, QA ретестит. -
Для критичных инцидентов — оформляем Hotfix.
-
Если баг найден во время тестирования конкретной фичи: создайте Bug по шаблону и обязательно укажите
work-source: from-feature(или пометку, откуда пришёл баг),component(backend/frontend) и приоритет по факту. В поле описания/комментарии укажите ссылку на основнуюFeature-задачу и все шаги воспроизведения.
-
Передайте баг разработчику (назначьте или отметьте в комментарии) для triage и оценки — это позволяет учитывать, сколько багов появилось в рамках конкретной фичи и оценить качество релиза.
-
Вся дальнейшая коммуникация по багу (дискуссии, решение спорных моментов, ссылка на PR) ведётся в основной
Feature-задаче: создайте комментарий с ссылкой на Bug или добавьте заметку в основной задаче, чтобы сохранить единую историю обсуждения.
Вахтовый метод поддержки
На каждый спринт выделяется по одному разработчику из фронтенда и из бэкенда. Эти два человека совместно отвечают за приём и обработку хотфиксов, инцидентов и срочных задач в рамках спринта.
Обязанности on‑call (front + backend):
- мониторинг инцидентов и оповещений;
- приём входящих запросов с triage / hotfix статусом;
- быстрое локальное расследование и, при необходимости, оперативный фикс;
- оформление Hotfix-задачи и передача информации в PR/issue;
- при эскалации — уведомление Team Lead.
Процесс передачи вахты:
- Передача ответственности планируется на понедельник.
- При форс-мажоре on‑call отвечает до передачи следующему инженеру в конце спринта.
Составы:
- Дмитрий - Андрей
- Руслан - Юрий
- Алена - Екатерина
Составы могут меняться.
Работа со сложными задачами
Признаки: оценка > 8 SP, непонятные требования, технические риски, внешние зависимости.
Рекомендуемый порядок для сложных задач:
- Обсуждение (scoping): краткая синхронизация с Product и TL — цель, ограничения, критерии успеха.
- Investigation: заводим задачу
Investigation, собираем варианты решений, риски и оценки. В рамках исследования можно подготовить PoC или небольшие прототипы. - Контрольный звонок (sync): после завершения investigation проводим короткий митинг (15–30 минут) с владельцем задачи, TL и исполнителями, обсуждаем результаты, окончательно согласуем границы работ и решение.
- Разработка: только после успешного контрольного звонка задача переводится в
ToDoи берётся в работу.
Процесс в деталях:
- Создайте
Investigationс целью и ожидаемым результатом (3–8 sp по estimate). - В конце investigation подготовьте краткий отчёт и/или PR с демонстрацией результатов.
- Назначьте контрольный звонок; в нём фиксируем решение, риски и критерии приёмки.
- После звонка разбиваем задачу на подзадачи и оцениваем в Story Points.
Пример шаблона Investigation:
Investigation: [Тема]
Цель исследования: [что выяснить]
Вопросы:
- [ ] Технические варианты
- [ ] Риски и ограничения
- [ ] Зависимости
- [ ] Оценка сложности
Участники: Разработчики, TL, Product
Estimate: [3-8 sp]
Оценка и планирование
Story Points: 1,2,3,5,8 (Fibonacci).
Пример расчёта команды (4 человек): общая capacity = 120 pts → Фичи 84 pts / Поддержка 12 pts / Буфер 24 pts.
Пример расчета команды (2 человек) вахтовиков: общая capacity = 60 pts → Фичи 12 pts / Поддержка 36 pts / Буфер 12 pts.
Пример расчета на всю команду: общая capacity = 180 pts → Фичи 96 pts / Поддержка 48 pts / Буфер 36 pts.
Метрики и отчетность
Собраны view для информативности и помощи. - Текущего цикла баги - Текущего цикла фича баги - Текушего цикла работа по срочным и из поддержки задач - Предыдущего цикла бага - Предыдущего цикла выполненные задачи - Предыдущего цикла фича баги - Предыдущего цикла работа по срочным и из поддержки задач
Практические правила
- Для разработчиков: ежедневно обновлять статусы, помечать
Blockedпри проблемах, использовать лейблы, участвовать в вахтах. - Для QA: использовать чек-листы, создавать баги с полным описанием, приоритетно тестировать хотфиксы.
- Для вахтовой команды: мониторить оповещения, быстро реагировать, документировать действия и передавать контекст.
Постоянное улучшение
- Еженедельные ретроспективы
- Калибровка оценок
- Анализ метрик поддержки
- Обучение новых членов
Документ живой, изменения будут происходить по мере получения опыта введения процесса.