Самый дорогой код — тот, который мы написали бесплатно
Есть в IT одно волшебное слово. «Временно».
Оно способно пройти любой архитектурный комитет, пережить трёх технических директоров и получить финансирование на следующий год.
А ещё иногда позволяет сэкономить три месяца разработки, чтобы потом пять лет платить за эту экономию.
Однажды команда делала интеграцию. Сроки горели. Партнёр нервничал. Бизнес хотел вчера.
Архитектор нарисовал красивую схему. С очередями, изоляцией, отказоустойчивостью. Всё как в книжках, которые мы покупаем, чтобы чувствовать себя умнее.
Посмотрели на схему. Посмотрели на календарь.
И решили сделать временно. Напрямую в базу. Через маленький скрипт. С одним техническим пользователем, пароль от которого знают семь человек и один уволившийся администратор.
Зато быстро.
Бизнес получил интеграцию за две недели вместо трёх месяцев. Команда выполнила обязательства. Руководитель отчитался об успешном запуске.
Все молодцы. Прошёл год.
Скрипт стал критичным компонентом. Базу назвали интеграционной платформой. Технического пользователя переименовали в сервисного. Архитектуру актуализировали. Теперь на схеме всё выглядело вполне солидно.
Через три года пришла новая команда. — А зачем у нас здесь прямое подключение к базе? — Исторически сложилось.
В обычной жизни «исторически сложилось» объясняет, почему в старой квартире выключатель находится за шкафом.
В IT это полноценное архитектурное обоснование.
— А кто владелец? — Надо уточнить. — А документация? — Была в Confluence. — А почему нельзя отключить? — Потому что всё упадёт.
Новую команду попросили изменить одно поле. Оказалось, для этого нужны согласования с четырьмя командами, два ночных релиза и шаман с бубном.
Заодно решили оценить нормальную переделку интеграции.
Три месяца.
Бизнес посмотрел на оценку и задал вполне разумный вопрос: — А зачем? Оно же работает. И ведь действительно работает. Только каждый новый партнёр подключается дольше предыдущего. Релизы требуют всё больше согласований. А инженеры тратят время на обслуживание того, чего вообще не должно было существовать в таком виде.
Но в финансовой модели этого нет. Три месяца разработки видны прекрасно. А сотни часов инженерной работы растворяются в операционных расходах. Получается удивительная экономика.
Один раз сэкономили три месяца. Потом пять лет платим проценты. И каждый год принимаем рациональное решение ничего не менять.
Я не против временных решений. Иногда они единственный разумный способ двигаться вперёд.
Но временное решение — это кредит.
У него должен быть владелец, срок пересмотра и хотя бы приблизительная стоимость владения.
Причём срок пересмотра не означает обязательную переделку. Иногда выясняется, что нагрузка небольшая, решение работает, риски приемлемы, а переписывание обойдётся дороже дальнейшей эксплуатации.
Прекрасно. Оставляем.
Но уже осознанно — как принятое архитектурное решение, а не как забытый компромисс, о котором помнил единственный человек, три года назад уволившийся разводить альпак в Сербии.
Для этого не нужен архитектурный комитет из двенадцати человек. Достаточно владельца, задачи в бэклоге и даты, когда мы честно пересмотрим решение и его стоимость владения.
Когда мы берём кредит в банке, нас интересуют ставка, срок и полная стоимость.
Когда берём кредит у собственной архитектуры, нас интересует только скорость получения денег.
Самый дорогой код — тот, который мы однажды написали бесплатно.
Счёт за него приходит всей команде. И обычно уже после того, как автор получил повышение за успешный запуск.
· 11 ч
Да уж, знакомая история. Дальнейшая стоимость владения чаще всего перекрывает всю первоначальную экономию с лихвой. Изменение одного поля в такой “интеграции” требует танцев с бубном, а последствия разгребают уже совсем другие люди…
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
коммент удалён