Что такое технический долг: понятное руководство
Технический долг это цена, которую платят позже за срезанные углы ради быстрого запуска. Признаки, причины и момент, когда его стоит гасить.
Команда rabbitclipПубликация: 6 мин чтения
Коротко
Технический долг это дополнительная работа, которую придётся оплатить позже, потому что сайт или программа были построены с упрощениями ради быстрого запуска. Он ведёт себя как финансовый долг: сегодня вы экономите время, а каждый месяц платите небольшие проценты. Здесь проценты выражаются в том, что каждое новое изменение занимает больше времени, чем предыдущее, вызывает больше ошибок и требует больше усилий. Короткая версия для владельца бизнеса такова: технический долг является следствием сознательных или неосознанных компромиссов, а не дурного умысла, и им можно управлять.
Большинство компаний знакомится с этой идеей, когда замечает, что смета на одну и ту же небольшую правку всё растёт. Если смена цвета кнопки ломает другую страницу или команде приходится трогать четыре места ради одной задачи, дело не в нехватке мастерства. Это накопленный долг. Эта статья ставит целью сделать долг видимым для вас и для вашей команды и объяснить, когда его погашение является разумным шагом.
Как на самом деле накапливается технический долг?
Долг обычно рождается в момент, когда не хватает времени или бюджета. Когда приближается дата кампании, выбирают самое быстрое решение, а не самое чистое. Оно работает, и сайт выходит в сеть. Беда в том, что все забывают: быстрое решение задумывалось как временное. Проходят месяцы, поверх строятся новые части, и временная заплатка начинает вести себя как постоянная.
Долг возникает не только из намеренных упрощений. Когда меняется команда, знания исчезают, а причины старых решений забываются. Библиотека, от которой зависит сайт, теряет поддержку, и никто её не обновляет. Недокументированная настройка становится проблемой лишь тогда, когда уходит человек, который её сделал. По отдельности ничто из этого не кажется большим, но вместе это делает сайт медлительным.
Представьте каталог производителя напольных покрытий. Допустим, первая версия вышла с карточками товаров, подготовленными вручную. По мере роста ассортимента каждая новая модель означает, что нужно копировать один и тот же шаблон и править его вручную. Когда меняется правило цены или изображения, десятки страниц приходится исправлять по одной. Долг здесь заключается в скопированном шаблоне.
Какие признаки показывают, что на вашем сайте есть технический долг?
Долг можно заметить, не читая ни строчки кода. Признаки обычно проявляются в том, как идёт работа и сколько она стоит. Если сразу несколько из перечисленных пунктов верны одновременно, перед вами накопленный долг.
- Мелкие правки занимают больше времени, чем ожидалось, а сметы продолжают расти
- Исправление в одном месте ломает другое
- Только один человек понимает, как устроен сайт
- Обновлений боятся, поэтому откладывают их на месяцы
- Исправленная ошибка позже возвращается
- Добавить новую функцию кажется сложнее, чем построить её с нуля
Всегда ли технический долг это плохо?
Нет, не всегда. Долг, взятый осознанно, вполне может быть хорошим деловым решением. Запустить продукт в быстрой и простой версии, чтобы проверить рынок, часто разумнее, чем строить идеальную структуру и опоздать. Важно знать, что долг существует, и планировать, когда его вернуть.
Плох долг, который остаётся невидимым. Если никто не знает, сколько его накопилось, плана погашения нет. Здоровые команды ведут отдельный список упрощений, на которые пошли, и в каждый период выделяют постоянную долю времени, чтобы этот список сокращать. Для бизнеса это самая дешёвая из доступных страховок, и пользоваться ею стоит постоянно.
Когда долг нужно гасить, а когда он может подождать?
Не всякий долг нужно гасить сразу. Мерилом служит то, как долг затрагивает ваш бизнес. Долг в частях, которые часто меняются, приносят продажи и постоянно дорабатываются, нужно гасить быстро, потому что его проценты начисляются каждый день. Долг в тихом углу, который редко меняется и работает без сбоев, может подождать.
Сценарий бронирования сети спа меняется каждую неделю, поэтому беспорядок там добавляет расходов при каждой кампании. Страница о компании меняется раз в год, поэтому наведение порядка на ней даёт мало отдачи. Приоритет определяется тем, как часто что-то меняется и насколько это влияет на бизнес, а не тем, насколько аккуратно выглядит код.
Риск служит вторым мерилом. Старый компонент, открывающий брешь в безопасности, это не тот долг, который может подождать. Долг в разделах, где проходят платежи или персональные данные, всегда выдвигается в начало очереди.
Как снижают технический долг?
Пытаться стереть долг за один присест часто оказывается неверной стратегией. Более здоровый путь это небольшие регулярные шаги: оставлять каждую затронутую часть чуть чище, по очереди заменять устаревшие компоненты, записывать недокументированные решения.
Для крупного долга организуют отдельный проект перестройки с чётко определёнными границами и сроками. Он идёт по частям, пока сайт продолжает работать, так что продажи не останавливаются. Полное переписывание часто выглядит заманчиво, но рискованно, потому что знания теряются и появляются новые ошибки. Сначала спокойно измерьте, что действительно вызывает проблемы, и только затем обновляйте именно эту часть.
- Собрать долги в список и записать, как каждый из них влияет на бизнес
- Выделять часть каждого периода разработки на этот список
- Ранжировать устаревшие компоненты по риску для безопасности
- Фиксировать важные решения в коротких заметках
Какие ошибки часто встречаются с техническим долгом?
Первая ошибка состоит в том, чтобы игнорировать долг. Пока всё работает, проблема остаётся невидимой для всех, но счёт приходит, когда нужна правка. Вторая ошибка в желании решить любую проблему переписыванием. Начало с нуля может обменять старые проблемы на новые и создаёт долгий период, когда ничего не видно.
Третья ошибка состоит в том, чтобы считать долг проблемой одной только технической команды. Проценты платит бизнес: опоздавшие кампании, медленные поставки, растущие сметы. Поэтому деловая сторона должна участвовать в определении приоритетов вместе с техническими специалистами. Четвёртая ошибка в том, что не измеряют. Если вы не видите на фактах, почему раздел так трудно менять, обсуждение держится на одних мнениях.
Когда работа над техническим долгом оказывается неверным выбором?
Разбор долга приоритетен не для каждого сайта. Для недолговечного сайта кампании или для структуры, которую в любом случае скоро выведут из эксплуатации, усилия потрачены зря. Точно так же обновление страницы, которая никогда не меняется и работает без сбоев, лишь вносит новый риск.
Мерило здесь простое: будет ли эта часть меняться в ближайший период и дорого ли её менять? Если на оба вопроса ответ «да», наведение порядка это вложение. Если нет, оно может подождать. Чтобы увидеть, какие части вашего сайта медленные или устаревшие, наш тест скорости сайта и наш инструмент определения технологий бесплатно дадут первое представление.
Технический долг это цена, которую платят позже за упрощения, на которые пошли ради быстрого запуска. Вред кроется не в самом долге, а в том, что его оставляют невидимым. Составьте список долгов, расставьте их по влиянию на бизнес, сначала погасите часто меняющиеся и рискованные части, а остальное сокращайте по плану. Если вы хотите вместе оценить долг вашего сайта, вы можете договориться с rabbitclip об ознакомительной беседе.
Частые вопросы
Что значит технический долг в самых кратких словах?
Это дополнительная работа, которую оплачивают позже из-за упрощений, сделанных ради быстрого запуска. Его признак в том, что каждая правка занимает больше времени, чем предыдущая.
Касается ли технический долг только старых сайтов?
Нет. Новый сайт, запущенный в спешке, тоже может нести долг. В более старых сайтах он обычно заметнее, потому что компоненты устаревают и знания теряются.
Можно ли понять, что есть технический долг, не видя кода?
В значительной мере да. Мелкие правки, занимающие много времени, исправление, ломающее другое место, и обновления, которых избегают, это сильные признаки.
Нужно ли переписывать сайт, чтобы снизить технический долг?
Обычно нет. Измерить проблемную часть и обновлять только её, по частям, дешевле и менее рискованно.
Как технический долг проявляется для бизнеса?
В опоздавших кампаниях, растущих сметах на изменения, повторяющихся сбоях и риске для безопасности. Проценты платит бизнес, а не техническая команда.
