Tidy First: как рефакторинг перед фичей помогает бороться с Законом Лемана и замедлением разработки
Ключевые факты
- 1 Скорость разработки падает из-за роста энтропии (Закон Лемана).
- 2 Каждая новая функция уменьшает «опциональность» — количество вариантов для будущих изменений.
- 3 Кент Бек предлагает подход «Tidy First» (Сначала уборка).
- 4 Tidy First требует рефакторинга перед добавлением новой фичи для сохранения темпа и увеличения опциональности.
Скорость разработки программного обеспечения естественным образом снижается с течением времени, что объясняется двумя ключевыми факторами. Во-первых, это Закон Лемана, который гласит, что энтропия системы всегда растет, если не предпринимать усилий для ее снижения. Во-вторых, это концепция «опциональности», которую развивает Кент Бек, один из создателей экстремального программирования и участник формулирования Agile Manifesto. Опциональность — это количество доступных вариантов для следующего шага в развитии продукта. Каждая новая функция, хотя и улучшает продукт, уменьшает эту опциональность, привязывая команду к определенному стеку или архитектурному решению. Для противодействия этому замедлению Кент Бек предлагает подход «Tidy First» (Сначала уборка). Этот метод подразумевает, что перед началом работы над новой функцией необходимо провести небольшой рефакторинг, чтобы привести код в более чистое и структурированное состояние. Цель — устранить текущие препятствия и упростить внедрение новой логики. Такая работа может временно снизить видимую скорость прогресса, но в долгосрочной перспективе она увеличивает опциональность и сохраняет темп разработки, выступая в роли инвестиции в будущую скорость.