​​Вопрос: Достался говнокод в наследство



В личку задали вопрос — «вот ты топишь за красивый код, а как быть на проектах, где в наследство досталась гора говнокода, с которой сделать ничего невозможно?»



Ситуация на самом деле очень частая: есть технический долг на пару человеколет, а проект живой — на него завязаны важные бизнес-процессы, или просто «времени нет переделывать».



Во-первых, нужно понять, что уйти и все переписывать полгода у вас не получится — у бизнеса дедлайны, пользователи ждут фич и вообще, большие планы не сбываются.



Во-вторых, нужно изолировать говно от основного потока разработки. Прям физически — отдельной виртуалкой и правилом в репозитории «сюда больше не коммитим». Весь новый код должен быть написан вне унаследованных репозиториев.



В-третьих, нужно честно поговорить с бизнесом — рассказать про технический долг и про ваш план с ним расплатиться. В разговоре помогают финансовые аналогии: когда программист пишет говно, он берет кредит. Если кредиты не отдавать, то рано или поздно наступает момент, когда банк перестанет выдавать новые кредиты и заблокирует счет, пока не вернешь старые.



В итоге вы должны получить процесс, в котором функциональность постепенно вынимается из горы унаследованного говна, а бизнес готов несколько месяцев помириться с растянутыми дедлайнами, чтобы проект совсем не остановился.



см. также: #техдолг