Legacy код стоимость бездействия — тема, которую большинство руководителей предпочитает не обсуждать. Система работает. Клиенты платят. Зачем что-то трогать? Этот вопрос задаёт каждый второй CEO, с которым мы работаем. А через год обнаруживает, что «ничего не делать» обошлось дороже, чем модернизация.
Знакомая логика? «Работает — не трогай» звучит как разумная осторожность. Однако за этой фразой скрывается финансовая ловушка. Потому что бездействие — тоже решение, и у него есть конкретная цена в рублях. Более того, эта цена растёт каждый год по принципу сложных процентов. Рассмотрим, как legacy код стоимость работает на практике.
В этой статье — конкретные цифры: сколько стоит legacy код за год, как посчитать потери для вашей компании и когда модернизация окупается быстрее, чем кажется.
Сложные проценты техдолга: почему legacy код дорожает каждый год
Представьте кредитную карту с процентной ставкой 25% годовых. Вы не вносите платежи. Через год на основной долг начисляются проценты. Через два года — проценты на проценты. Legacy код работает по той же схеме, только вместо денег начисляются часы разработки. Вопрос legacy код стоимость заслуживает детального анализа.
Вот как это выглядит на практике. В первый год команда тратит на типичную фичу 40 часов вместо 20 — потому что приходится обходить legacy-ограничения. Во второй год каждый обходной путь (workaround) добавляет новые зависимости, и та же фича занимает уже 60 часов. К третьему году стоимость разработки вырастает в 3-4 раза по сравнению с чистой кодовой базой. Именно legacy код стоимость определяет результат для бизнеса.
Аналогия с финансами: если legacy код замедляет разработку на 30% в год, то через 3 года совокупное замедление составит не 90%, а 120% — потому что каждый workaround усложняет следующее изменение. Это и есть сложный процент технического долга.
В отличие от финансового кредита, у технического долга нет графика платежей и напоминаний. Именно поэтому компании часто осознают масштаб проблемы, когда «проценты» уже съедают половину бюджета на разработку. По нашему опыту, средняя компания начинает обсуждать модернизацию, когда velocity команды падает на 50-60% от пиковых значений.
Калькулятор бездействия: 4 скрытые статьи расходов legacy кода
Чтобы посчитать реальную стоимость legacy кода, недостаточно смотреть на зарплаты разработчиков. Тем не менее большинство руководителей учитывает только прямые затраты. Давайте разберём все четыре статьи расходов — включая те, которые обычно не попадают в финансовые отчёты.
1. Потеря скорости разработки (velocity loss)
Самая очевидная и самая крупная статья. Если средняя зарплата разработчика — 250 000 руб/мес, а фичи занимают в 2.5 раза больше времени из-за legacy, потеря составляет 150 000 руб/мес на человека. Для команды из 5 разработчиков это 750 000 руб/мес или 9 000 000 руб/год. Даже при коэффициенте 2x потери достигают 7 500 000 руб/год.
2. Баги и инциденты
Legacy системы падают чаще, а чинить их дольше. Если среднее время восстановления (MTTR) — 4 часа, а инциденты происходят 2 раза в месяц, прямые потери включают: время команды на устранение + потеря выручки за время простоя + репутационный ущерб. Для B2B-продукта час простоя обходится в 50 000 — 200 000 рублей. Следовательно, 24 инцидента в год — это 1 200 000 — 4 800 000 руб скрытых потерь.
3. Текучка разработчиков
Опытные разработчики не хотят работать с legacy кодом. Стоимость замены одного разработчика (найм + онбординг + потеря продуктивности) составляет 3-6 месячных зарплат — от 750 000 до 1 500 000 рублей. Если из-за legacy вы теряете 1-2 человек в год, это ещё 750 000 — 3 000 000 руб.
4. Упущенная выручка (cost of delay)
Это самая опасная статья, потому что она невидима. Фича, которая принесла бы 500 000 руб/мес, но не была выпущена из-за медленной разработки — это 6 000 000 руб упущенной выручки за год. Пока вы боретесь с legacy, конкуренты с чистым кодом выпускают аналогичные фичи в 3 раза быстрее. Кроме того, каждый месяц задержки снижает конкурентное преимущество.
| Статья расходов | Расчёт (команда 5 человек) | Сумма в год |
|---|---|---|
| Потеря скорости (2.5x) | 150 000 руб × 5 чел × 12 мес | 9 000 000 руб |
| Баги и инциденты | 2 инцидента/мес × 100 000 руб | 2 400 000 руб |
| Текучка (1-2 чел/год) | Найм + онбординг + потеря продуктивности | 750 000 — 3 000 000 руб |
| Упущенная выручка | Неразработанные фичи × потенциальный доход | 3 000 000 — 6 000 000 руб |
| Итого TCO legacy | 15 — 20 млн руб/год |
Конечно, цифры зависят от размера команды, продукта и рынка. Однако даже при консервативных оценках стоимость legacy кода для команды из 5 человек составляет 3-8 млн руб/год чистых потерь. При этом потери растут: в следующем году будет не 3-8, а 4-10 млн. Сложные проценты, помните?
Три стратегии: ничего не делать, рефакторить или переписать
Допустим, вы посчитали legacy код стоимость для вашей компании и поняли, что цифры неприятные. Какие варианты действий? В сущности, их три — и у каждого своя экономика.
| Параметр | Ничего не делать | Рефакторинг / Strangler Fig | Переписать с нуля |
|---|---|---|---|
| Стоимость за 3 года | 15-60 млн руб (растёт) | 3-8 млн руб (одноразовая + 20% спринта) | 5-15 млн руб (одноразовая) |
| Время на результат | — | 6-12 мес (постепенно) | 6-18 мес (пока не готово — ничего) |
| Остановка разработки | Нет, но скорость падает | Нет, 80% спринта — фичи | Да, на 4-8 месяцев |
| Риск | Рост TCO, потеря рынка | Низкий (постепенные изменения) | Высокий (повторение ошибок) |
| Когда подходит | Продукт закрывается через год | 70-80% случаев | Неподдерживаемый стек, код без тестов |
Ключевой вывод: вариант «ничего не делать» — самый дорогой в долгосрочной перспективе. Через 3 года совокупные потери от legacy превышают стоимость любого из вариантов модернизации. Подробнее о выборе между рефакторингом и переписыванием — в нашей статье рефакторинг или переписать с нуля. При этом важно понимать общий контекст разработки MVP — качественная архитектура с первого дня минимизирует накопление техдолга.
В большинстве случаев оптимальная стратегия — постепенная модернизация через strangler fig pattern. Новые модули строятся по современным стандартам, а legacy-компоненты заменяются один за другим. Система работает непрерывно, бизнес не останавливается, а velocity команды растёт с каждым заменённым модулем.
ROI модернизации: через сколько месяцев инвестиция окупается
Финансовый аргумент — единственный, который работает на уровне CEO и совета директоров. Поэтому давайте посчитаем ROI модернизации на конкретном примере.
Пример расчёта
Компания с командой из 5 разработчиков. Legacy код замедляет разработку в 2.5 раза. Ежегодные потери: ~5 млн руб (консервативная оценка). Стоимость поэтапной модернизации: 3 млн руб за 8 месяцев.
| Месяц | Инвестиция (накоп.) | Экономия (накоп.) | Чистый эффект |
|---|---|---|---|
| 0-3 | 1 200 000 руб | 400 000 руб | -800 000 руб |
| 4-6 | 2 200 000 руб | 1 200 000 руб | -1 000 000 руб |
| 7-9 | 3 000 000 руб | 2 400 000 руб | -600 000 руб |
| 10-12 | 3 000 000 руб | 4 000 000 руб | +1 000 000 руб |
| 13-18 | 3 000 000 руб | 6 500 000 руб | +3 500 000 руб |
Точка окупаемости — 10-12 месяцев. К 18-му месяцу чистая выгода составляет 3.5 млн рублей. ROI за 18 месяцев: (6.5 - 3) / 3 × 100% = 117%. А за 24 месяца ROI вырастает до 200%+, потому что экономия продолжает накапливаться, а инвестиция уже сделана.
Важный нюанс: экономия не появляется мгновенно. Первые 3-4 месяца вы одновременно инвестируете в модернизацию и продолжаете нести расходы на legacy. Однако с каждым заменённым модулем velocity растёт, баги сокращаются, а экономия ускоряется. Таким образом, кривая окупаемости — экспоненциальная, а не линейная.
5 сигналов, что legacy код пора модернизировать прямо сейчас
Не каждый legacy код требует немедленного вмешательства. Иногда достаточно выделять 20% спринта на постепенное погашение долга. Тем не менее есть пять чётких сигналов, что откладывать модернизацию дальше нельзя.
Сигнал 1. Фичи занимают в 3+ раза больше времени
Если год назад типичная фича занимала 2 недели, а сейчас — 6 и более, legacy код стоимость разработки утроил. Это главный индикатор: velocity команды — прямое отражение состояния кодовой базы. Проверьте историю спринтов: если story points за квартал падают при том же размере команды — код тормозит.
Сигнал 2. Критические баги чаще 1 раза в месяц
Legacy-системы хрупкие. Изменение в одном модуле ломает другой, потому что зависимости не документированы и не покрыты тестами. Если продакшен-инциденты стали нормой — это не «невезение», а следствие накопленного технического долга. При этом каждый инцидент обходится дороже предыдущего, ведь код продолжает усложняться.
Сигнал 3. Bus factor = 1
Только один человек понимает, как работает система. Если он уйдёт — развитие продукта остановится. Bus factor = 1 — это не просто технический риск, это бизнес-риск уровня «потеря ключевого клиента». Более того, этот человек неизбежно выгорает — поддержка legacy в одиночку изматывает.
Сигнал 4. Новые разработчики уходят в первые 3 месяца
Вы нанимаете сеньора за 350 000 руб/мес. Он неделю изучает код, две недели пытается разобраться в архитектуре, а через месяц приходит с заявлением. Причина: «не хочу работать с таким кодом». Стоимость этой ситуации: 700 000 — 1 000 000 руб (найм + 2 месяца зарплаты + потерянная продуктивность). Если это повторяется — проблема в коде, а не в кандидатах.
Сигнал 5. Стек технологий больше не поддерживается
PHP 5, Python 2, Angular.js 1.x, Java 8 без обновлений безопасности — если ваша система построена на неподдерживаемом стеке, каждый месяц промедления увеличивает риск уязвимостей и делает модернизацию сложнее. К тому же на устаревших стеках всё труднее найти разработчиков — они предпочитают работать с актуальными технологиями.
| Сигнал | Порог | Что делать |
|---|---|---|
| Замедление разработки | 3x и более | Аудит + план модернизации |
| Критические баги | > 1 раз/мес | Стабилизация + тесты + рефакторинг |
| Bus factor = 1 | 1 человек | Документация + парное программирование |
| Текучка разработчиков | Уход в первые 3 мес | Модернизация DX (developer experience) |
| Устаревший стек | End of life | Миграция на поддерживаемый стек |
Если вы видите 3 из 5 сигналов — модернизация должна стать приоритетом текущего квартала. Если 4-5 сигналов — это уже не «когда-нибудь», а «сейчас».
Итог: бездействие — самая дорогая стратегия
Подведём итог. Legacy код стоимость бездействия — это не абстрактный «технический долг». Это конкретные миллионы рублей в год: замедление разработки, баги, текучка и упущенная выручка. И эти потери растут по принципу сложных процентов — каждый год становится дороже предыдущего.
Три ключевых вывода:
- Посчитайте TCO legacy системы — сложите все 4 статьи расходов за год. Конкретная цифра убеждает лучше, чем аргумент «код плохой».
- В 70-80% случаев рефакторинг дешевле переписывания — постепенная модернизация через strangler fig pattern сохраняет бизнес и снижает риски.
- ROI модернизации — 150-300% за 12-18 месяцев — инвестиция окупается быстрее, чем кажется, а экономия накапливается годами.
Если ваша кодовая база показывает 3+ сигнала из списка выше — модернизация уже обходится дешевле, чем терпеть. Разница только в том, начнёте вы сейчас или через год, когда «проценты» вырастут ещё на 30%.
Хотите понять, во сколько реально обходится ваш legacy код? Запишитесь на бесплатный Zoom-звонок — проведём экспресс-аудит, посчитаем TCO и дадим рекомендацию: рефакторинг, strangler fig или переписывание. Без обязательств — просто цифры и план.
FAQ о стоимости legacy-кода
Как посчитать реальную стоимость legacy кода за год?
Суммируйте четыре статьи расходов: (1) Потеря скорости — если фичи занимают в 2-3 раза больше времени, умножьте зарплату команды на коэффициент замедления; (2) Баги и инциденты — среднее время восстановления умножьте на стоимость часа простоя; (3) Текучка — стоимость найма и онбординга новых разработчиков, которые не хотят работать с legacy; (4) Упущенные возможности — revenue от фич, которые не успели выпустить. Для команды из 5 разработчиков типичная сумма — 3-8 млн рублей в год.
Когда legacy код пора модернизировать, а когда можно подождать?
Три сигнала, что откладывать нельзя: (1) время на добавление фичи выросло в 3+ раза за последний год; (2) критические баги возникают чаще раза в месяц; (3) новые разработчики уходят в первые 3 месяца из-за качества кодовой базы. Если ни одного из этих сигналов нет — можно выделять 20% спринта на постепенное погашение долга и наблюдать за метриками.
Что дешевле — поддерживать legacy или переписать?
В 70-80% случаев дешевле постепенная модернизация (strangler fig pattern), а не переписывание с нуля. Полное переписывание стоит в 2-4 раза дороже и замораживает разработку на 4-8 месяцев. Однако если кодовая база на неподдерживаемом стеке и покрытие тестами ниже 10% — переписывание может быть единственным разумным вариантом.
Как убедить руководство вложиться в модернизацию legacy кода?
Говорите на языке денег, а не технологий. Посчитайте TCO legacy системы за 3 года: замедление разработки + баги + текучка + упущенная выручка. Сравните с инвестицией в модернизацию и покажите точку окупаемости. Обычно ROI модернизации составляет 150-300% за 12-18 месяцев. Финансовый расчёт убеждает лучше, чем аргумент «код плохой».
Может ли Prime IT провести аудит legacy системы?
Да, мы проводим экспресс-аудит за одну рабочую неделю: анализ архитектуры, качества кода через SonarQube, тестового покрытия, зависимостей и bus factor. По итогам — отчёт с расчётом TCO, рекомендация (рефакторинг, strangler fig или переписывание) и примерная оценка бюджета. Запишитесь на бесплатный Zoom-звонок — обсудим вашу ситуацию.