Рефакторинг под 30% годовых! Стоит ли акцептовать техдолг?)
Напишите в комментариях - какой % техдолга у вас?)
Многие из нас сталкивались с тем, что стратегия защищена, план на развитие цифровых витрин есть, метрики заложены, эффект до конца года просчитан, но тут приходит CTO и говорит "Нам надо перейти на новые технологии" или "Друже, пора переписать старье".. Как оценить? Точно ли это нужно?
В основном нам продают следующие истины: ⚙️ Устаревание: Старый стек = медленно/небезопасно (это как развернуть ИИшку на компьютере 2005 года - верим) 📈 Масштабируемость: Не вывозит рост нагрузки (важно при активном росте аудитории - верим) 💡 Эффективность: Новые инструменты = быстрее фичи (сколько раз мне так говорили - по итогу все медленнее.. - не верим) 🚀 Кадры: Разработчики бегут от "динозавров" (есть ли сейчас проблема с наймом? обычно новый стек дороже - не верим) 💰 Экономика: Дешевле эксплуатация (облако, серверы) (Очень редкий кейс, инфраструктура дорожает быстрее чем растет экономия на ее использование - верим финансистам) ⚠️ Риски: Поддержка устаревшего ПО = техдолг (Проще иметь документацию и процесс передачи знаний в команде - верим процессникам)
Плюсы: ↑ Скорость разработки (Time-to-Market) - не верю ↓ Простои (MTTR ↓) - верю ↓ Операционные затраты - верю в редких случаях ↑ Безопасность и стабильность - верю
Риски, которые сильно повлияют на ваши планы: Спад скорости разработки, появляются новые баги, растет нагрузка на команду
Какие активные тренды "прям сейчас" : Бэкенд: Python/Node.js → Go/Rust Тут точно будет выше производительность, снижаются затраты немного на сервера, но кратно вырастает стоимость разработки Фронтенд: JS/jQuery → TypeScript + React/Vue Скорость разработки повышается, но! на react/vue допускают столько багов, что итоговый t2m иногда значимо выше. Пока видел кейсы только отрицательные для акционеров Серверы → Kubernetes/Serverless Автомасштабирование, снижение нагрузки на DevOps - это действительно заметно и упрощает этап производственной цепочки
CEO/Акционерам: Зачем? 💰 Деньги: Снижение TCO (удешевляем, кост-эффективность) ⏱️ Скорость: Time-to-Market (повышаем конверсию в голубой океан, или в шанс улучшения конкретных метрик) 🛡️ Надёжность: Снижение инцидентов (удерживаем аудиторию)
Как замерить эффект от рефакторинга? ✔️ TCO (Total Cost of Ownership): Инфраструктура + лицензии + простой (подключайте финансистов) ✔️ Time-to-Market (TTM): Время "идея → релиз" (многие тут халтурят показывая t2m не до релиза, а до передачи в QA) ✔️ Частота релизов: кол-во фич/месяц, кол-во SP (должна быть прозрачная оценка производительности - тк метрика халтурная) ✔️ Стабильность: MTTR, кол-во инцидентов (сравнивать исторически на большом диапазоне, + кол-во инцидентов на пользователя)
А как у вас обстоят дела с рефакторингом и переписыванием?