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-сервер