Главное Авторские колонки Пресс-релизы Промо Вакансии Вопросы
Выбор редакции:
99 0 В избр. Сохранено
Авторизуйтесь
Вход с паролем

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

Собрали ответы на главные вопросы о том, почему эта метафора куда логичнее, а также почему итеративный подход работает лучше, чем попытки построить «систему мечты» сразу.
Мнение автора может не совпадать с мнением редакции

Садовники и программисты

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

Это садоводство.

Почему сад, а не стройка

Джефф Этвуд, автор одного из самых известных инженерных блогов и сооснователь Stack Overflow, написал об этом еще в 2008 году. По его словам, все лучшие продукты, над которыми он работал, были — если искать одно слово — живыми. Они постоянно росли, регулярно обновлялись и требовали непрерывного ухода, как настоящий сад. Прополка багов, обрезка устаревшего кода, обработка архитектурных слоев. Его статья об этой метафоре живет в сети уже почти 20 лет — и ничуть не устарела.

Закон Галла: сложное вырастает из простого

Есть и более научное обоснование этой интуиции. Педиатр Джон Галл в 1975 году сформулировал наблюдение, которое потом назвали законом Галла:

«Сложная система, которая работает, всегда вырастает из простой системы, которая тоже работала. Сложная система, спроектированная с нуля, не работает сразу как задумывалась, причем почти всегда».

Проект Facebook (*социальная сеть, запрещенная в РФ) начинался как простая страничка для студентов Гарварда. Google — как поиск в базе данных одного университета. Linux — как учебный проект финского студента.

Закон Галла — это наблюдение о природе и эволюции сложных систем. Этот принцип глубоко укоренился в мире разработки программного обеспечения и системной архитектуры.

Начинай с грядки, а не с целого сада

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

В разработке соблазн создать «сад мечты за один год» никуда не пропадает. Всегда хочется построить систему мечты сразу и целиком. Именно так начинаются проекты, которые пару лет спустя переписывают с нуля. Садовник бы так делать не стал — начал бы с грядки-пилота.

Прополка как обязательный ритуал

Технический долг растет тихо — и в какой-то момент начинает душить все живое в кодовой базе. Хороший разработчик, как и хороший садовник, выделяет время на прополку, даже если ничего «вроде» не сломалось.

В SSP SOFT мы давно работаем по итеративному принципу: сначала рабочий прототип, потом пилот, потом рост до продуктивной среды. В заказной разработке редко есть возможность «переписать все потом» — поэтому архитектуру мы закладываем с запасом. Как садовник, который оставляет между рядами место под будущие побеги.

Что в итоге

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

Больше материалов для ИТ-специалистов — в наших каналах:

💙 ВКонтакте

💬 Telegram

📱MAX

0
В избр. Сохранено
Авторизуйтесь
Вход с паролем
Комментарии
Выбрать файл
Блог проекта
Расскажите историю о создании или развитии проекта, поиске команды, проблемах и решениях
Написать
Личный блог
Продвигайте свои услуги или личный бренд через интересные кейсы и статьи
Написать

Spark использует cookie-файлы. С их помощью мы улучшаем работу нашего сайта и ваше взаимодействие с ним.