Введіть мінімум 3 символи для пошуку

·8 хв читання

Технічний борг після аудиту: що виправляти першим і скільки це коштує

A stone building with scaffolding on one floor while the other floors stay lit and working, and a notebook with a ranked repair list: security and access underlined in red, then what blocks revenue, what blocks change and style

Більшість компаній і так знає, що має технічний борг. Складне починається після аудиту: що виправляти першим, що лишити і як погасити борг, не зупиняючи бізнес. Розповідаємо, як це робимо ми, на власних випадках, і скільки це коштує.

Чому зараз

Рахунок приходить пізніше

Технічний борг складається з кожного зрізаного кута, на якому продукт заощадив заради запуску: старий фреймворк, який ніхто не оновив, модуль, скопійований замість повторного використання, налаштування, у якому розбирається одна людина. У балансі його не видно. Його видно із задач, що забирають три тижні замість одного, зі сторінок, які гальмують під навантаженням, і з оновлення, яке весь час переїжджає на наступний квартал.

Проблема не нова, але вона росте. В опитуванні Stack Overflow 2024 року технічний борг став головним подразником розробників: його назвали 62% опитаних. В опитуванні Sonar за січень 2026 року на ШІ припало 42% коду в комітах, і лише 48% розробників сказали, що завжди його перевіряють. ШІ дає змогу команді збудувати за рік те, на що раніше йшло три, і так само швидко накопичити трирічний борг.

Покупці це помітили. В опитуванні KPMG про угоди в технологіях 66% учасників угод обговорюють технічний борг під час планування, але лише 33% справді його перевіряють. Різницю оплачують після закриття. Наш партнерський бренд The Structure зібрав цифри ринку, ціни перевірки й ціни виправлення у статті Technical debt in 2026: demand, review prices and repair costs (англійською).

Карта

Аудит, який веде до плану

Аудит вартий стільки, скільки з ним можна зробити. Список із двохсот попереджень сканера коду не є планом, як і фраза «в коді є техборг». Від аудиту, нашого чи чужого, нам потрібно, щоб кожна знахідка була пов'язана з бізнесом: що вона гальмує, чим загрожує, що блокує, і приблизна ціна виправлення.

Ми починаємо з однієї з трьох точок:

  • Наша перевірка перед прийомом проєкту, коли код приходить від іншого підрядника. Аудит перед прийомом коштує від $3 000, а сам порядок описано у статті Як прийняти сайт або застосунок від іншого розробника.
  • Аудит того, чим компанія насправді володіє: домени, акаунти, ліцензії, доступи й код. Він часто знаходить борг, якого ніхто не рахував. Від $2 000.
  • Звіт зовнішнього перевіряльника, зокрема технічний дью-ділідженс перед продажем. Ми беремо його знахідки як є й перетворюємо на порядок робіт.

Аудит вартий стільки, скільки з ним можна зробити.

Порядок

Що ми виправляємо першим

Ми сортуємо знахідки за тим, у що вони обходяться бізнесу, а не за тим, наскільки негарний код. Порядок майже завжди той самий:

  • Спершу безпека й доступи. Версії без підтримки з відомими дірами, спільні паролі, колишні підрядники, у яких лишилися ключі, резервні копії, які ніхто жодного разу не відновлював.
  • Далі те, що заважає грошам. Форми, які гублять заявки, кроки оформлення замовлення, що ламаються, сторінки, які вантажаться надто довго для пошуку й для людей із телефонів.
  • Далі те, що заважає змінам. Стара версія фреймворку, від якої залежать усі інші оновлення, модуль, до якого може торкатися лише одна людина, відсутність тестів довкола частин, що змінюються найчастіше.
  • Смак наостанок. Назви, структура й стиль важливі, але рідко виправдовують окремий бюджет. Їх виправляють дорогою, у тих файлах, які й так відкриті.

Знахідка, яка не змінює ні ризику, ні виручки, ні швидкості, чекає. Вона потрапляє до реєстру з приміткою, щоб ніхто не відкрив її знову як сюрприз.

Наші випадки

Три погашені борги й один на черзі

Наш власний сайт, Laravel із 7 на 13. peretz.agency надійно працював на Laravel 7 і PHP 7, але обидві версії давно лишилися без підтримки. Laravel не дозволяє перестрибувати через основні версії, тож переїзд означав шість окремих міграцій, по одній версії за раз, на закритій копії сайту й із записаним шляхом назад. Це забрало близько трьох днів розробки. Дві пастки, які поклали б увесь сайт, ми зловили на копії, а не на бойовому сервері. Докладно у статті Шість версій Laravel за три дні.

The Structure, зі статичного генератора на Laravel. Живий сайт, який збирав скрипт на Python, треба було перетворити на застосунок на Laravel так, щоб відвідувач нічого не помітив. Ми поставили одне правило: кожна сторінка має віддавати ті самі байти, що й раніше, з автоматичною перевіркою кожної адреси й однією командою для повернення. Різниця в округленні, JSON і екрануванні між двома мовами випливла на перевірці, і ми виправили її до перемикання. Цей випадок описано у статті Як ми перевели The Structure на Laravel, не змінивши жодного байта.

Профільна клініка, яка хотіла новий сайт. Власниця сказала нам, що нічого не працює, і була готова платити за новий сайт. Ми почали з боргу: непідключені форми, хибні маски телефонів, порожні сторінки, застарілий прайс, старий PHP і стара версія платформи магазину. Ми оновили PHP і платформу в межах її гілки, дизайн зберегли й освіжили. Перші нові сторінки принесли три звернення за п'ять днів. Випадок описано у статті Сайт для профільної клініки.

MEDPRESSO, наступний на черзі. Проєкт MEDPRESSO створили ми, і зараз готуємо його до наступного етапу. Частина цієї підготовки переїзд на актуальну версію Laravel. Порядок той самий, що й на нашому сайті: спершу карта версій і залежностей, закрита копія й записаний шлях назад, далі по одній версії за раз, так, щоб для тих, хто проєктом користується, нічого не змінилося.

Без переписування

Чому ми рідко починаємо з нуля

Переписати все наново найспокусливіша відповідь на борг і зазвичай найдорожча. У плані це виглядає чисто. Насправді це зупиняє нову роботу на місяці, губить дрібні виправлення, які роки реальної роботи вклали в старий код, і приходить зі своїм власним боргом.

Ми переписуємо частину системи, лише коли тримати її дорожче, ніж замінити, і коли її можна замінити окремо, за зрозумілою межею. Усе інше гасимо кроками на живій системі: одне оновлення, один модуль, один набір тестів за раз, і кожен крок має шлях назад. Бізнес далі працює, а система щотижня стає трохи дешевшою у змінах.

Бізнес працює, а борг тим часом меншає.

Перед продажем

Коли роботу перевірить покупець

Покупці ставляться до цього серйозно: у дослідженні SRS Acquiom 51% американських інвестиційних банкірів назвали технічну перевірку найважчою частиною дью-ділідженс. Коли компанія готується до продажу, порядок зсувається до того, що прочитає перевіряльник із боку покупця: безпека й доступи, володіння кодом і акаунтами, робота з даними й усе, що вміють запускати лише засновники. Виправлена проблема з підтвердженнями читається в кімнаті даних зовсім інакше, ніж та сама проблема, яку знайшов покупець.

Якщо перевірку проводить The Structure, розподіл суворий. The Structure пише знахідки й план, а клієнт може віддати роботу будь-якій команді. Якщо роботу робимо ми, її перевіряє окрема команда старших інженерів, яка в ній не брала участі, за тими самими підтвердженнями, що й роботу будь-якої іншої команди, а у звіті вказано, хто зробив кожне виправлення. Покупець завжди може замовити власну перевірку частин, яких ми торкалися.

Команда

Європейські інженери, ціни нижчі за американські

Виправленням займаються наші інженери в Європі та Україні. Вони працювали й працюють на великих міжнародних проєктах, де оновлення планують як реліз, а зламана сторінка вважається інцидентом, а не незручністю. Той самий стандарт ми приносимо в будь-який код, хай якого розміру компанія: план до першого рядка, закрита копія, шлях назад і перевірка людиною, яка змін не писала.

Європейська якість не мусить коштувати за американськими цінами. Американські агенції найчастіше беруть $100 до $149 на годину за будь-кого, кого поставлять на проєкт. У нас за $100 на годину працює старший інженер, а інженер середнього рівня коштує $55 до $75, і для виправлення боргу цього часто досить.

Інструменти ШІ беруть на себе більшу частину рутини: швидко читають код, готують механічні зміни під час оновлення й пишуть тести довкола старого коду. Кожну таку зміну перевіряють наші інженери, а заощаджений час іде на те, чого інструмент не зробить: вирішити, що варто виправляти, запропонувати покращення й доопрацювання і залишити клієнтові продукт, який став кращим, а не лише охайнішим.

Європейська якість не мусить коштувати за американськими цінами.

Ціни

Скільки коштує погасити борг

Аудит найменша частина рахунку. Наші поточні ціни:

  • Аудит перед прийомом чужого коду: від $3 000.
  • Аудит цифрового володіння (домени, акаунти, ліцензії, доступи): від $2 000, великий бізнес від $3 000.
  • Технічний дью-ділідженс: сесія $1 500, повна перевірка від $7 500.
  • Саме виправлення оцінюємо за аудитом, фіксованим проєктом або погодинно: близько $100 на годину за старшого інженера і $55 до $75 там, де вистачає інженера середнього рівня.
  • Після виправлення підтримка від $1 000 на місяць тримає версії свіжими, щоб борг не виріс знову. Для команди, якій потрібне технічне керівництво без найму на повний день, зовнішній CTO від $3 500 на місяць.

Для порівняння: опубліковані програми порятунку робочої кодової бази за фіксованою ціною зазвичай коштують від $25 000 до $50 000, а для складних продуктів сягають $100 000. Наш власний переїзд із Laravel 7 на 13 забрав близько трьох днів розробки, бо порядок робіт визначили до першого зміненого рядка.

FAQ

Запитання про погашення технічного боргу

Що виправляти першим після аудиту технічного боргу?

Спершу безпеку й доступи: версії без підтримки, спільні паролі, старих підрядників із ключами, неперевірені резервні копії. Далі те, що заважає виручці, наприклад зламані форми чи повільні сторінки, далі те, що заважає майбутнім змінам. Стиль і структура наостанок, їх краще правити дорогою.

Краще переписати систему наново чи виправляти кроками?

Зазвичай кроками. Повне переписування зупиняє нову роботу на місяці й приносить власний борг. Ми замінюємо частину, лише коли тримати її дорожче, ніж замінити, і її можна виділити окремо; решта оновлюється на живій системі, крок за кроком, зі шляхом назад.

Скільки коштує погасити технічний борг?

Наші аудити коштують від $2 000 до $3 000 залежно від виду, технічний дью-ділідженс від $1 500 за сесію. Виправлення оцінюємо за аудитом, фіксованим проєктом або приблизно по $100 на годину за старшого інженера і $55 до $75 за інженера середнього рівня. Підтримка від $1 000 на місяць не дає боргу повернутися. Роботу роблять інженери в Європі та Україні за ставками помітно нижчими, ніж в американських агенцій.

Чи можете ви виправити знахідки зі звіту дью-ділідженс, який писали інші?

Так. Ми беремо знахідки так, як їх записано, і перетворюємо на порядок робіт. Якщо звіт написала The Structure, наші виправлення перевіряє окрема команда старших інженерів, яка в них не брала участі, а у звіті вказано, хто зробив кожне виправлення.

Джерела

Маєте аудит або відчуття, що будь-яка зміна триває надто довго? Перетворімо це на порядок робіт.

Записатися на стратегічну сесію

Прийом проєкту від іншого підрядника

ОБГОВОРИТИ ПРОЄКТ · ОБГОВОРИТИ ПРОЄКТ ·