Почему порядок именно такой
Практики образуют пирамиду. Внизу скорость сборки: без неё ни тесты, ни интеграция не работают. Над ней автоматическая сборка каждого изменения. Дальше тесты, потом рефакторинг, потом простой дизайн.
Парная работа стоит сбоку: она полезна на любом этапе и не требует опор, зато требует согласия людей.
Попытка начать сверху даёт узнаваемый результат. Команда объявляет рефакторинг, ломает поведение, откатывается и делает вывод, что практика не работает.
Первый месяц: скорость
Померьте время полной сборки с тестами. Если оно больше десяти минут, ближайшая задача — сократить его, и она важнее всего остального.
Способы известные: параллельный запуск, разделение на быстрые и медленные проверки, кеширование зависимостей, отказ от лишних шагов. Работа скучная и окупается лучше любой другой.
Заодно договоритесь о правиле красной сборки: сломал — чинишь сейчас, до новой работы. Правило простое, соблюдается тяжело и держит всю конструкцию.
Второй-третий месяц: тесты на новом коде
Возьмите одно правило: новый код приходит с тестом. Без исключений и без разговоров о покрытии старого.
Через квартал покрытие вырастает именно там, где команда работает, а это и есть места, которые чаще ломаются. Проект «покрыть всё тестами» отменяют при первом срочном требовании, и вложенное время пропадает.
Ожидайте замедления на первые несколько недель. Люди учатся писать тесты, и это стоит времени; предупредите руководство заранее.
Параллельно: пары на сложном
Начните с ситуаций, где польза очевидна: незнакомый участок кода, задача с высокой ценой ошибки, новый человек в команде.
Дальше пусть команда решает сама. Постоянная парная работа устраивает не всех и по приказу даёт худший результат, чем её отсутствие.
Дальше: рефакторинг и запас
Когда тесты появились, рефакторинг становится безопасным. Введите правило «оставь код чище, чем нашёл» в пределах текущей задачи и не выносите улучшения в отдельный проект.
Одновременно оставьте запас в недельном плане. Без него срочная задача съест ровно то, что вы только что построили: сначала рефакторинг, потом тесты.
Признак, что практики прижились: команда пишет тесты и приводит код в порядок без напоминаний, потому что так быстрее, а не потому что так велели.
Порядок внедрения
| КОГДА | ЧТО | ПРИЗНАК ГОТОВНОСТИ К СЛЕДУЮЩЕМУ ШАГУ |
|---|---|---|
| Первый месяц | Ускорить сборку | Полная сборка укладывается в минуты |
| Первый месяц | Автоматическая сборка изменений | Красная сборка чинится в тот же день |
| 2–3 месяц | Тесты на новом коде | Правило соблюдается без напоминаний |
| Параллельно | Пары на сложных задачах | Команда просит пару сама |
| 3–4 месяц | Рефакторинг в пределах задачи | Код в активных местах становится проще |
| Постоянно | Запас в недельном плане | Запас переживает срочные задачи |
Внедрение идёт правильно
Ошибка почти всегда одна: начали сверху пирамиды. Проверьте, что под каждой введённой практикой стоит опора.
Отмечено 0 из 8
Что помогает в Shtab
Внедрение практик — это набор изменений в работе команды, и ведут его так же, как любые улучшения: отдельным списком с ответственным и проверкой результата.
- Список улучшений процесса отдельно от продуктовых задач, чтобы они не проигрывали срочному.
- Повторяющаяся задача на замер времени сборки показывает динамику.
- Ограничение незавершённой работы удерживает запас ёмкости.
- Метка технического долга собирает места, требующие рефакторинга.
- Итоги разборов страницами: что попробовали и что из этого осталось.
Частые вопросы
До состояния, когда практики держатся без напоминаний, — от полугода до года на команду. Быстрее всего идёт скорость сборки, медленнее всего меняется привычка писать тесты до кода. Компании, ожидающие результата за месяц, обычно останавливаются на первом замедлении.