Вообще не страшное слово. Это такой долг, который и можно, вроде, отдать, но всегда есть что-то поважнее. Мы ебошим хотфиксы в проде, оставляем «на потом» проектирование пограничных состояний, делаем архитектурные допущения. Не понимая, что каждое такое решение добавляет грамм взрывчатки под нашу задницу. Техдолг — это не пыль, которую можно загнать под ковёр, это тротил под фундамент проекта.
Не верите? Вот несколько примеров:
В 2012 Knight Capital Group была крупнейшим трейдером акций с долей около 17% на фондовой нью-йоркской бирже. В очередном обновлении ребятки залили патч, который, как оказалось, реанимирует кусок легаси-кода. За 45 минут роботы накупили акций на $7 млрд. В итоге убыток в $440 млн компания не пережила и была поглощена конкурентом.
Через 10 лет, в 2022, зимний шторм немного подморозил авиасообщение в Штатах. У авиакомпании Southwest Airlines из-за резкого увеличения отмен рейсов прилегла устаревшая система расписания экипажей. Ребятам понадобилось восемь дней, чтобы её починить. Как итог, 16 700 отменённых рейсов, $800 млн прямых потерь.
Вы можете подумать, что я против техдолга (а значит, против бизнеса, «за всё хорошее против всего плохого»). Это не так. Техдолг — это неизбежный спутник роста. Я против того, чтобы он неконтролируемо размножался.
Бизнес не видит немедленной ценности рефакторинга (зато видит повышение на 0.01% конверсии после редизайна корзины). Оценку рисков ведут в часах, а не в деньгах и репутации компании. Отсутствует единый реестр долга — всё лежит в головах или в разрозненных джира-тикетах.
Техдолг делает из кода легаси, UX наполовину состоит из заплаток, а аналитика не понимает, почему данные дублируются. И рано или поздно проект детонирует.
Что можно сделать, как обезвредить эту хрень?
1. Используйте Debt Ledger. Каждая затычка фиксируется с формулой: стоимость дефекта * вероятность * время до взрыва.
2. Миксуйте спринты: на 2 спринта фич — 1 спринт «детокса» кода, аналитики или юикса.
3. Капитализируйте техдолг. Покажите руководству, сколько будет стоить взрыв и сколько — его предотвращение.
4. Не будьте ленивым мудаком. Если можете что-то поправить прямо сейчас, правьте.