Process & Methodology

Agile / процессы разработки

Семейство гибких подходов к разработке, где продукт делают короткими итерациями и пересматривают план по мере поступления обратной связи.

Что такое Agile

Agile (гибкая методология) — подход к разработке, при котором продукт создают короткими итерациями с постоянной обратной связью, а не по одному плану, зафиксированному на год вперёд. Основан на Agile-манифесте 2001 года, где четыре ценности противопоставлены классическому «водопаду»: люди важнее процессов, работающий продукт важнее документации, сотрудничество с заказчиком важнее контракта, готовность к изменениям важнее следования плану.

Практический смысл: требования всё равно изменятся, поэтому дешевле выпускать маленькие куски и корректировать курс каждые пару недель, чем полгода строить то, что окажется ненужным. Самые распространённые реализации Agile — Scrum и Kanban.

Бэклог: что это

Бэклог (backlog, от англ. «накопившиеся дела») — упорядоченный по приоритету список всего, что команда может сделать с продуктом: фичи, баги, технический долг, исследования. Это не «список задач в работе», а очередь: наверху то, что возьмут в ближайшее время, внизу — идеи, до которых может не дойти никогда.

Два уровня:

Product backlog Sprint backlog
Что внутри Всё, что хотим от продукта Задачи, взятые в текущий спринт
Кто владелец Product Owner Команда разработки
Как меняется Постоянно пополняется Зафиксирован до конца спринта
Горизонт Месяцы 1–4 недели

Груминг (backlog refinement) — регулярная встреча, где верх бэклога уточняют: дробят крупные задачи, дописывают критерии приёмки, оценивают. Задача считается готовой к спринту, если понятно, что делать и когда она считается сделанной (Definition of Ready / Definition of Done).

Спринт: что это

Спринт (sprint) — фиксированный отрезок времени в Scrum, за который команда доводит взятый объём работы до готового результата. Обычно 2 недели, реже 1 или 4. Длина не меняется от спринта к спринту — это делает скорость команды предсказуемой.

Ритуалы спринта:

  • Планирование (planning) — в начале: команда берёт задачи из product backlog в sprint backlog и формулирует цель спринта.
  • Дейли (daily standup) — ежедневно, 15 минут стоя: что сделал, что делаю, что мешает.
  • Демо (review) — в конце: показывают работающий инкремент заказчику.
  • Ретро (retrospective) — в конце: обсуждают процесс.

Главное правило: объём спринта фиксируется на планировании и не пополняется на ходу. Появилась срочная задача — либо ждёт следующего спринта, либо что-то выкидывают взамен.

Что такое ретро в IT

Ретро (ретроспектива) — встреча в конце спринта, где команда обсуждает не продукт, а собственный процесс работы: что шло хорошо, что мешало, что изменить в следующем спринте. Продукт разбирают на демо, процесс — на ретро.

Классический формат — три колонки: Start / Stop / Continue (что начать делать, что прекратить, что продолжить). Результат ретро — не список жалоб, а 1–2 конкретных изменения с ответственным. Ретро без действий на выходе быстро превращается в ритуал, который команда начинает саботировать.

Базовое правило ретро — безопасность: обсуждают систему и процесс, а не виноватых. Тот же принцип, что в postmortem у DevOps.

Канбан-доска: что это

Канбан-доска — визуализация рабочего процесса в виде колонок, по которым карточки-задачи двигаются слева направо. Пришло из производственной системы Toyota, где «камбан» — сигнальная карточка.

Backlog  │  To Do  │  In Progress  │  Review  │  Done
         │         │   (WIP: 3)    │ (WIP: 2) │
─────────┼─────────┼───────────────┼──────────┼────────
  #241   │  #238   │     #235      │   #231   │  #229
  #242   │  #239   │     #236      │          │  #230
  #243   │         │     #237      │          │

Отличие Kanban от Scrum — в отсутствии спринтов: задачи берут по мере освобождения, релизят когда готово. Вместо ограничения по времени работает WIP-лимит — максимум задач в колонке. Колонка забита — новую задачу брать нельзя, иди помоги расшить узкое место. Это лечит главную болезнь команд: десять задач «в работе» и ноль доведённых до конца.

Scrum Kanban
Ритм Фиксированные спринты Непрерывный поток
Ограничение Объём спринта WIP-лимит на колонку
Роли PO, Scrum Master, команда Не задаёт
Метрика Velocity Lead time, cycle time
Когда лучше Продуктовая разработка Поддержка, поток входящих задач

Story point: что это

Story point — условная единица оценки трудоёмкости задачи, отражающая объём и сложность, а не часы. Оценивают обычно по шкале Фибоначчи: 1, 2, 3, 5, 8, 13. Шкала нелинейная намеренно: чем крупнее задача, тем грубее оценка, и спорить между «20» и «21» бессмысленно.

Зачем не в часах: люди плохо оценивают абсолютное время, но неплохо сравнивают задачи между собой («эта примерно вдвое больше той»). Сумма story points, которые команда закрывает за спринт, — velocity. Через 3–4 спринта velocity стабилизируется и позволяет прогнозировать сроки. Сравнивать velocity разных команд бессмысленно: точка отсчёта у каждой своя.

TBD: расшифровка

TBD = To Be Determined («будет определено позже») — маркер в задаче, документе или требованиях, помечающий незаполненное место: срок, ответственный, детали ещё не решены. Соседние сокращения — TBA (To Be Announced) и TBC (To Be Confirmed).

Осторожно: в контексте разработки TBD также означает Trunk Based Development — практику, где все работают в одной ветке с короткоживущими ответвлениями, в противоположность Git Flow. Смысл определяется контекстом: TBD в ячейке таблицы — «уточняется», TBD рядом со словом «ветка» — про Git.

Связанные термины

  • DevOps — доводит гибкость Agile до эксплуатации
  • SDLC — жизненный цикл разработки, внутри которого живут Scrum и Kanban
  • Code review — обязательный этап Definition of Done в большинстве команд
  • CI/CD — автоматизация, без которой короткие итерации не работают
  • Роли аналитиков — кто наполняет бэклог требованиями
  • Notion — частый инструмент для бэклога и документации команды

Готовы запустить GPU-задачу?

Запустить GPU-сервер