Попробовать бесплатно
Экстремальное программирование (XP)внедрениесредний уровень

Внедрение практик XP: снизу вверх, по одной

Внедрять весь набор разом невозможно, а брать практики произвольно бесполезно: половина из них опирается на другие. Порядок определяется этими опорами и начинается со скорости сборки.

7 мин чтенияобновлено

Почему порядок именно такой

Практики образуют пирамиду. Внизу скорость сборки: без неё ни тесты, ни интеграция не работают. Над ней автоматическая сборка каждого изменения. Дальше тесты, потом рефакторинг, потом простой дизайн.

Парная работа стоит сбоку: она полезна на любом этапе и не требует опор, зато требует согласия людей.

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

Первый месяц: скорость

Померьте время полной сборки с тестами. Если оно больше десяти минут, ближайшая задача — сократить его, и она важнее всего остального.

Способы известные: параллельный запуск, разделение на быстрые и медленные проверки, кеширование зависимостей, отказ от лишних шагов. Работа скучная и окупается лучше любой другой.

Заодно договоритесь о правиле красной сборки: сломал — чинишь сейчас, до новой работы. Правило простое, соблюдается тяжело и держит всю конструкцию.

Второй-третий месяц: тесты на новом коде

Возьмите одно правило: новый код приходит с тестом. Без исключений и без разговоров о покрытии старого.

Через квартал покрытие вырастает именно там, где команда работает, а это и есть места, которые чаще ломаются. Проект «покрыть всё тестами» отменяют при первом срочном требовании, и вложенное время пропадает.

Ожидайте замедления на первые несколько недель. Люди учатся писать тесты, и это стоит времени; предупредите руководство заранее.

Параллельно: пары на сложном

Начните с ситуаций, где польза очевидна: незнакомый участок кода, задача с высокой ценой ошибки, новый человек в команде.

Дальше пусть команда решает сама. Постоянная парная работа устраивает не всех и по приказу даёт худший результат, чем её отсутствие.

Дальше: рефакторинг и запас

Когда тесты появились, рефакторинг становится безопасным. Введите правило «оставь код чище, чем нашёл» в пределах текущей задачи и не выносите улучшения в отдельный проект.

Одновременно оставьте запас в недельном плане. Без него срочная задача съест ровно то, что вы только что построили: сначала рефакторинг, потом тесты.

Признак, что практики прижились: команда пишет тесты и приводит код в порядок без напоминаний, потому что так быстрее, а не потому что так велели.

Порядок внедрения

КОГДАЧТОПРИЗНАК ГОТОВНОСТИ К СЛЕДУЮЩЕМУ ШАГУ
Первый месяцУскорить сборкуПолная сборка укладывается в минуты
Первый месяцАвтоматическая сборка измененийКрасная сборка чинится в тот же день
2–3 месяцТесты на новом кодеПравило соблюдается без напоминаний
ПараллельноПары на сложных задачахКоманда просит пару сама
3–4 месяцРефакторинг в пределах задачиКод в активных местах становится проще
ПостоянноЗапас в недельном планеЗапас переживает срочные задачи

Внедрение идёт правильно

Ошибка почти всегда одна: начали сверху пирамиды. Проверьте, что под каждой введённой практикой стоит опора.

Отмечено 0 из 8

Что помогает в Shtab

Внедрение практик — это набор изменений в работе команды, и ведут его так же, как любые улучшения: отдельным списком с ответственным и проверкой результата.

  • Список улучшений процесса отдельно от продуктовых задач, чтобы они не проигрывали срочному.
  • Повторяющаяся задача на замер времени сборки показывает динамику.
  • Ограничение незавершённой работы удерживает запас ёмкости.
  • Метка технического долга собирает места, требующие рефакторинга.
  • Итоги разборов страницами: что попробовали и что из этого осталось.

Частые вопросы

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

Соберите свой процесс в Shtab

Доски и статусы, оценка трудозатрат, дерево целей, отчёты и трекер времени — в одном инструменте.