Кейс: Как мы ускорили поставку кода.
Часть 2/4: Искусство декомпозиции.
В прошлой части 1 мы нашли "бутылочное горлышко" — этап ревью кода. Чтобы его расширить, команде нужно было научиться системно работать с маленькими задачами.
Просто сказать "режьте задачи мельче" — не работает. В ответ вы услышите: "Это невозможно, фича слишком сложная и связанная!".
Проблема не в сложности фичи, а в подходе к ее разделению. Мы перестали говорить о "слоях" и ввели два простых, но мощных принципа.
Принцип 1: "Принцип Бургера" (или Вертикальный срез)
Команды часто режут задачи "горизонтально", по технологическим слоям. Это как если бы повар отдавал вам бургер на тарелку перед вами по частям: сначала испек все булочки, потом пожарил все котлеты, потом нарезал весь салат. Клиент ждет, но не получает полноценного блюда, пока все компоненты не будут готовы и собраны.
Мы перешли на "Принцип Бургера" (или "вертикальный срез"). Суть в том, чтобы каждый раз давать пользователю возможность "откусить" маленький, но полноценный кусочек продукта, в котором есть все слои: и фронтенд, и бэкенд, и база данных.
Пример: фича "Профиль пользователя"
Плохо (горизонтально):
1) Сделать всю базу.
2) Сделать все API.
3) Сверстать весь профиль.
Хорошо ("Принцип Бургера"):
Укус 1: Реализовать простое отображение имени и аватара. <-- Уже готовый мини-бургер, можно пробовать!
Укус 2: Добавить возможность редактирования имени.
Укус 3: Добавить возможность загрузки нового аватара.
Каждый такой "укус" — это маленькая, понятная задача, которую можно сделать, отревьюить и выкатить за 1-2 дня.
Принцип 2: Техника "Шаги младенца" (Baby Steps)
Для особенно сложных и "неделимых" задач мы использовали простой вопрос:
"Представь, что у тебя есть всего 2 часа. Какой самый маленький, но осмысленный шаг ты можешь сделать в сторону реализации этой фичи, чтобы его можно было проверить?"
Этот вопрос волшебным образом меняет оптику. Вместо мыслей о конечной архитектуре разработчик начинает думать о первом шаге.
Результаты внедрения этих техник:
✅Команда научилась видеть большие фичи как набор маленьких, независимых "бургеров".
✅Размер Merge Requests сократился в среднем в 3-4 раза.
✅"Пробка" на этапе ревью кода практически исчезла.
Но оставалась еще одна проблема: как убедиться, что эти маленькие, быстрые "укусы" не ломают то, что уже работает? Для этого нам пришлось освоить еще одну практику — разработку через тестирование (TDD).
Об этом — в третьей части кейса.😉
Дайте знать в комментариях, понравился ли вам "Принцип Бургера"? 👇
"Кормите" людей быстро, пусть и не большими частями полноценного блюда!😉😁
#кейс #декомпозиция #agile #scrum #verticalslicing #оргдизайн #управлениекомандами #devops
Post #118
265