Почему появляется легаси код? 🤔

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

Отсутствие опыта

Бывает так, что разработчику нужно поднять проект с нуля. Он разворачивает каркас приложения согласно документации его фреймворка. Дальше он начинает делать согласно документации. Что происходит дальше? Приходит бизнес и начинает накидывать задачи. Бедный разработчик в попыхах начинает решать эти задачи, забивая на архитектуру. Отсюда куча связанного кода, который мог бы работать раздельно, но через интерфейс, или божественные объекты, которые делают все. В конечном итоге разработчик сам с трудом понимает чего он написал.

Модно молодежно

  • А давайте заюзаем микрофронтенды?
  • А зачем?
  • Ну, как, вон в Яндекс используется, да и вообще на Хабре вон сколько статей. Сможем писать на разных фреймворках и собирать в одно приложение.
  • Звучит круто и интересно! Правда я в этом ничего не понимаю, но тебе доверяю

Думаю вы сами поймете кто в этом диалоге есть кто. 🤠 Разработчики не редко любят обкатывать какие-то популярные вещи у себя на работе. Проблемы возникают после, когда проект начинает развиваться, а поддерживать его становится сложнее. Со временем теряется та самая идея для чего вообще новшества завозились в проект. Когда это осознается самими разработчиками, то предпринимаются конкретные решения, а неудобный код превращается в легаси

Не понимание бизнеса

Разработчики почему-то думают, что им не важно знать как работает бизнес. Они думают что-то вроде создам класс спрошу че куда и хватит. Приходит бизнес и закидывает новое требование. Разработчик вместо уточнения деталей или попыток понять бизнес процесс уходит решать задачу говнокодом. Есть и обратная сторона, когда разработчику описывают не верные бизнес процессы и он не правильно их реализует в код

А какие у вас были причины появления легаси кода?