Майже кожен засновник зі зламаним MVP питає, чи не переписати його. Майже щоразу відповідь — ні, і причина в арифметиці, а не в сентиментах.
Зламане MVP зазвичай проявляється одним із трьох способів: воно падає під реальним навантаженням, кожна зміна ламає щось інше, або початкові розробники пішли і ніхто його не розуміє. Інстинкт каже почати заново. Цей інстинкт дорогий і зазвичай хибний.
Чому переписування — це пастка
Переписування виглядає привабливо, бо нова система уявна, а в уявних систем немає багів. Насправді:
- Наявний код кодує роки крайніх випадків, яких ніхто не задокументував — їх перевідкриють як продакшн-інциденти
- Ви заморожуєте розробку фіч на місяці, поки конкуренти цього не роблять
- Переписування впирається в ту саму складність, бо складність у домені, а не в коді
- Оцінки переписувань хибні з великим запасом, послідовно, у кожній організації
Крок 1: зупинити кровотечу
Перш ніж щось покращувати, зробіть систему спостережуваною і відновлюваною. Не можна полагодити те, чого не бачиш, і не можна експериментувати без шляху назад.
- Трекінг помилок, щоб про збої знали ви, а не повідомляли клієнти
- Моніторинг доступності та ключових транзакцій — оплата, реєстрація, покупка
- Відкат, який працює і був протестований
- Резервні копії і відновлення, яке справді хоч раз проводили
Крок 2: тріаж, а не інвентаризація
Утримайтеся від бажання перелічити все, що не так. Відсортуйте проблеми за наслідком:
| Категорія | Визначення | Дія |
|---|---|---|
| Кровоточить | Втрачає гроші, дані або клієнтів просто зараз | Виправити цього тижня |
| Блокує | Не дає випустити роадмап наступного кварталу | Виправити цього кварталу |
| Накопичується | Уповільнює кожну зміну | Запланувати свідомо |
| Косметичне | Ображає смак, нічого не коштує | Ніколи |
Більшість рятувальних проєктів знаходить два-три пункти в першій категорії і жменю в другій. Це посильна програма робіт — зовсім не те гнітюче враження, яке команда мала до сортування.
Крок 3: лагодити в порядку, що дає накопичувальний ефект
- Спершу цілісність даних — пошкоджені чи втрачені дані невідновні так, як не є невідновним простій
- Потім шлях розгортання — доки випуск не стане безпечним і частим, кожне інше виправлення їде повільно і ризиковано
- Потім головне джерело збоїв — зазвичай один-два ендпоінти чи запити спричиняють більшість інцидентів
- Потім блокатор змін — зв'язаність або відсутність тестів, через які команда боїться щось чіпати
- І лише тоді продуктивність та шліфування
Крок 4: не допустити рецидиву
- Тести на шляхах, які болять — гроші, авторизація і саме те, що ламалося
- Письмовий журнал рішень, щоб наступний інженер успадкував міркування, а не лише код
- Процес розгортання, який може запустити будь-хто в команді
- Явне правило, що роадмап містить потужність на підтримку — інакше борг повернеться
Порятунок — це не прибирання. Це невелика кількість точкових змін, що переводять систему з небезпечної в нудну, а нудна — саме та, у якій команда знову починає випускати.
Визначте межу ремонту до переписування
Доведіть, що один зламаний шлях можна стабілізувати. За результатом оцінюйте наступний етап і альтернативу заміни.
- Напишіть регресійний тест для спостереженого дефекту.
- Виправте обмежену ділянку й перевірте суміжну поведінку.
- Порівняйте ремонт і заміну з міграцією та паралельною роботою.
Часті запитання
Переписати наше MVP чи полагодити?
Полагодити, якщо тільки платформа не є непідтримуваною, продукт не змінився фундаментально або всю систему не можна перебудувати за кілька тижнів. Переписування заморожують продуктову роботу на місяці, перевідкривають забуті крайні випадки як продакшн-інциденти і послідовно перевищують свої оцінки.
Скільки триває порятунок MVP?
Тріаж триває дні. Стабілізація критичних проблем зазвичай два-шість тижнів залежно від тяжкості. Повне усунення накопиченого боргу — квартал або більше, але воно відбувається поруч із продуктовою роботою, а не замість неї.
Наші початкові розробники пішли. Чи можна ще врятувати код?
Майже завжди. Втрата авторів робить роботу повільнішою, а не неможливою: перше завдання — відновити, як система насправді поводиться, через читання, інструментування і характеризаційні тести, перш ніж щось змінювати.
Як зрозуміти, чи MVP справді зламане, чи просто недосконале?
Запитайте, чи втрачає воно гроші або дані, чи заважає випускати роадмап і чи боїться команда розгортати. Якщо жодне з цього не справджується, у вас недосконале MVP — це нормально і не вартує втручання.
Коли варто призупинити нові функції?
Коли зміни заважають діагностиці або збільшують суттєвий ризик для даних і доступності. Визначте межі паузи та докази для відновлення роботи.
MVP у біді?
Ми робимо тріаж за кілька днів і чесно кажемо, чи потрібен порятунок, переписування, чи взагалі нічого.
Читати далі за темою
Технічний аудит MVP: що ми перевіряємо в перші 48 годин
Більшість аудитів MVP закінчуються документом. Корисний закінчується рішеннями: що горить, що може почекати і скільки коштує виправлення.
Технічний борг у стартапі: скільки — це забагато?
Технічний борг є в кожного стартапу, і здебільшого це було правильне рішення. Питання не в тому, як його позбутися, а в тому, які його частини нараховують відсотки, яких ви вже не тягнете.