Допустим, вы выполнили текущий проект, и вам предлагается поддерживать уже разработанный другой проект. Над ним работали две команды, сменяя друг друга, и они уже ушли. Но всё равно находятся баги которые заказчик хочет пофиксить, а также у него появляются новые требования. Код на плюсах, не так чтобы говнокод, но местами какая-то шиза (см. мою тему про CPS). Юнит-тесты отсутствуют как класс, чтобы полноценно протестировать, нужно организовывать с заказчиком очные сессии с его оборудованием. ТЗ написано чётко, но то тут, то там всякие изменения, которые хорошо, если где-то записаны. Существует человек, который эти требования согласовывал и в курсе всех архитектурных решений, но он без понятия, как это реализовано. Плюсы образца 11 года, но вся платформа гораздо старее, и если захочется использовать std::string, надо его создавать из кастомного класса строк, потому что IPC между потоками использует вот эту платформу, в которой не используются исключения, нет STL и проч.
Как вы поступите? Я даже предлагаю варианты ответов:
-
какая разница, создавать новые системы или править старые - цель одна, решить задачу заказчика, получить рабочий продукт;
-
если не хочешь иметь дело с программированием, иди в манагеры;
-
я так люблю плюсы, что готов копаться в любом коде;
-
задачу выполню, но больше в Легаси ни ногой;
-
да пошли вы нафиг! Увольняюсь и открываю стартап, где будет только новодел с Растом, гошечкой и node.js.