Дописать нельзя переписывать
Меня зовут Валерий Комягин, я основатель SVK.Digital. Мы занимаемся разработкой IT-продуктов.
Звонит ооооочень старый друг, которого давно не слышал. Мы закончили проект для него в 2013 году. Сложный личный кабинет для большой российской компании. Интеграции, нагрузки … все, как мы любим. Спрашивает — не осталось ли у нас программистов, которые делали этот проект.
Оказывается, все это время ребята пользуются нашим продуктом и он, блин, работает!
Вы только представьте! Мы его не обслуживаем, не трогали с 2013 года и … its alive! Щенячий восторг! Я работаю с богами программирования!
Пришлось долго объяснять ему, что несмотря на то, что мы — офигенные молодцы, продукт гораздо проще переписать с нуля, чем пытаться дописать серьезные функции.
Это, кстати, частый вопрос, который бизнес всегда воспринимает “в штыки”. От слова “рефакторинг” предпринимателя бросает в дрожь. А когда речь заходит о полной модернизации … Что?! Заново платить за то, за что я уже заплатил?! Что за бред?!
Да. Платить. И вот почему:
👨💻 10 лет назад язык программирования (в нашем случае) был версии 5.5, а сейчас — 8.2. Язык ОЧЕНЬ существенно поменялся. Найти специалистов, хорошо владеющих сильно устаревшей версией языка так же трудно, как, скажем, найти опытную прядильщицу, владеющую ручным веретеном.
👨💻 Даже если найдем — стоить такой специалист будет баснословных денег. Если, конечно он не дурак.
👨💻 Даже если убедим кого-то из молодых освоить старый язык — работать они будут без удовольствия. Ну, представьте — это все равно, что заставить буравить стены без современного перфоратора. Адская работа. Проект станет одним из самых нелюбимых. И рассчитывать на то, что они будут работать с полной самоотдачей будет трудно.
👨💻 Старые языки уступают не только в производительности и возможностях, но часто и попросту не могут реализовать механик, доступных современным языкам.
👨💻 Очень часто старые продукты плохо документированы и написаны очень путанно. В силу того, что писали их несколько поколений программистов, код в результате похож на “письмо из Простоквашино”. Работа с таким кодом похожа на разминирование бомбы — когда не уверен до конца, что именно произойдет, если изменить строчку кода.
👨💻 Вопросы безопасности. В старых языках старые “дыры”, которые могут использовать злоумышленники. Бизнес в опасности.
Выводы?
Выделяйте своим разработчикам время на “рефакторинг” даже на относительно свежем проекте — такое “техобслуживание” по чуть-чуть (до 20-25% от времени разработки) способно сохранить высокие темпы TTM (Time to market) и продлить сроки жизни проекта.
Закладывайте в финмодель бизнеса, что примерно через 5-7 лет проект часто придется переписать полностью. С нуля. И да — вложив бОльший бюджет, чем в первый раз. Потому, что за 7 лет продукт обрастает новыми функциями.
Обложка из серии: кто-то в теремочке живёт?
И ведь кто-то действительно построил