Моей первой работой было обслуживание некоторых программных модулей, первоначальные разработчики которых перешли к новому проекту.
Я догадываюсь:
Делает новую разработку более предсказуемой, более простой в планировании: поскольку разработчики не отзываются к ней, чтобы исправить неизвестное заранее количество проблем с поддержкой
Возможность обучать новых разработчиков (например, меня)
Кроме того, код, который я поддерживал, не был «мусорным» - это было программное обеспечение телекоммуникационной компании, ранняя сеть с коммутацией пакетов, которая была развернута для таких клиентов, как Bell и т. Д. Она была хорошо разработана, хорошо написана, тестируема ( комплекты автоматизированных тестовых случаев), поддерживаемые, множество файлов журналов, некоторая проектная документация ...
... кажется, что подзаголовок к вашему OP: «Чувак, этот код воняет! Хотел бы я получить оригинального разработчика, и потрите его его нос: , что научит его! "
Так что, когда код уже хорошо написан, этот аргумент (обучение оригинальных разработчиков) не применим.
Когда я сказал, что выполнял «обслуживание», это было похоже на разработку новой функции, но с очень незначительными функциями ... например, взаимодействие с новыми пользовательскими устройствами, которые интерпретировали спецификацию протокола каким-то немного необычным способом.
[Я анализирую и диагностирую проблему и пишу исправление; и специалист по тестированию добавит новый соответствующий тестовый набор в автоматизированный набор тестов.]