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