Определения термина "легаси" пост



На хайлоаде организовали большой митап на тему легаси. И, хотя термин кажется очевидным, всё-таки от определения зависят акценты и взгляд на проблему.



Самым популярным невысказанным было: "легаси - это когда жуткий монолит". Оооочень спорное утверждение, на мой взгляд, как бы подразумевающий, что всё надо переписать на микросервисы. Однако, практический опыт (https://www.youtube.com/watch?v=g9cgppj0gKQ) говорит, что микросервисы легко превращаются в сильносвязанную кучу грязи, чудовищно сложную в доработке. Страдающим от монолита скорее стоит учиться кодить монолит.



А ещё было: "легаси - это то, у которого бас-фактор маленький". Прекрасное определение, но беда в том, чтобы этот самый бас-фактор померить. Практика подсказывает: легаси на то и легаси, что фиг разберёшься что в проекте, зачем и как реализовано. Нельзя измерить то, не знаю что.



Измерять тем, что известно о требованиях? Может быть документацией? Тоже такая себе идея, достаточно вполне живых, "не-легаси" проектов без доки и очень много зависит от размеров.



Однако, похоже наверняка можно сказать, что проект становится легаси, если обрывается нить передачи знаний от поколения к поколению, например, при передаче проекта исполнителем в случае заказной разработки. И, что характерно, это не всегда становится проблемой.



Самое же прекрасное определение, которое было дано, меня бесконечно вдохновило:

У каждого разрабатываемого проекта есть запас гибкости. Легаси - это проект, в котором запас гибкости исчерпан.



Определение это прекрасно тем, что даёт нам совершенно иной взгляд на проблему: легаси - это вопрос способности адаптироваться. Это гораздо проще измерить (даже эмпирически), для повышения способности адаптироваться есть вполне конкретные приёмы и методики, и оно вполне себе понятно на бизнес-уровне и может служить основой для переговоров бизнеса с разработкой.



Подумайте в таком ключе и поделитесь своими мыслями со страдающими от легаси коллегами, глядишь - и всем станет жить легче.