Чему программисты могут научиться у садовников

Если спросить случайного человека, на что похожа разработка программного обеспечения, он скорее всего скажет: «На строительство». Все похоже: архитектор, чертежи, фундамент, кирпичи, подключение к внешним поставщикам. Но есть другая метафора, которая при внимательном взгляде оказывается куда точнее.
Это садоводство.
Почему сад, а не стройка
Джефф Этвуд, автор одного из самых известных инженерных блогов и сооснователь Stack Overflow, написал об этом еще в 2008 году. По его словам, все лучшие продукты, над которыми он работал, были — если искать одно слово — живыми. Они постоянно росли, регулярно обновлялись и требовали непрерывного ухода, как настоящий сад. Прополка багов, обрезка устаревшего кода, обработка архитектурных слоев. Его статья об этой метафоре живет в сети уже почти 20 лет — и ничуть не устарела.
Закон Галла: сложное вырастает из простого
Есть и более научное обоснование этой интуиции. Педиатр Джон Галл в 1975 году сформулировал наблюдение, которое потом назвали законом Галла:
«Сложная система, которая работает, всегда вырастает из простой системы, которая тоже работала. Сложная система, спроектированная с нуля, не работает сразу как задумывалась, причем почти всегда».
Проект Facebook (*социальная сеть, запрещенная в РФ) начинался как простая страничка для студентов Гарварда. Google — как поиск в базе данных одного университета. Linux — как учебный проект финского студента.
Закон Галла — это наблюдение о природе и эволюции сложных систем. Этот принцип глубоко укоренился в мире разработки программного обеспечения и системной архитектуры.
Начинай с грядки, а не с целого сада
Садовник понимает это на уровне наработанной практики. Ты не засаживаешь сразу весь участок новой и капризной культурой — начинаешь с грядки, смотришь, что и как прижилось, и только потом расширяешь.
В разработке соблазн создать «сад мечты за один год» никуда не пропадает. Всегда хочется построить систему мечты сразу и целиком. Именно так начинаются проекты, которые пару лет спустя переписывают с нуля. Садовник бы так делать не стал — начал бы с грядки-пилота.
Прополка как обязательный ритуал
Технический долг растет тихо — и в какой-то момент начинает душить все живое в кодовой базе. Хороший разработчик, как и хороший садовник, выделяет время на прополку, даже если ничего «вроде» не сломалось.
В SSP SOFT мы давно работаем по итеративному принципу: сначала рабочий прототип, потом пилот, потом рост до продуктивной среды. В заказной разработке редко есть возможность «переписать все потом» — поэтому архитектуру мы закладываем с запасом. Как садовник, который оставляет между рядами место под будущие побеги.
Что в итоге
Разработка — это не строительство, где все должно быть готово к определенной дате. Это садоводство, где ты создаешь условия для роста, следишь за состоянием и вовремя убираешь лишнее. И если подходить к проекту как к живому организму, результат получается куда более устойчивым.
Больше материалов для ИТ-специалистов — в наших каналах:
💬 Telegram
📱MAX