Татарин>> Вот тут и начинается разница между простым и сложным программированием, между хорошим и плохим...
Татарин>> Сложно (и хорошо) было сделать так, чтобы через четверть века имплементация поправок...
Gudleifr> Поэтому, в хорошем программировании такой проблемы не возникает. Старый проект выкидывается целиком и пишется новый.
Если разработкой занимаются г**нокодеры, то так оно и бывает. Иногда доходит до того, что других опций и в принципе нет - продукт настолько плохо написан, что разработчики уже не понимают, что там понаписано и что там происходит, дальнейшая правка под новые требования невозможна. Но назвать это чем-то "хорошим" - это нужно иметь очень извращённое чувство юмора.
Ну и в мелких, очень простых поделках, где участие нормальных программистов излишне, это вполне годный подход: если суть программки в расчёте, а методика расчёта существенно поменялась, то логично переписать и программку целиком. Тут (кажущаяся) простота в том, что суть программки, суть накопленного опыта - не в программке как таковой, а в расчёте. Главное-то - остаётся, а закодить - ну, фигня вопрос.
...
В
сложном программном проекте, где, собссно, программирование составляет значительную часть работы, такой подход ОЧЕНЬ дорог. Вплоть до запретительной, абсурдной дороговизны, обессмысливающей само предложение "новизны".
При этом бОльшая часть стоимости работы будет в бесмысленном для конечного пользователя восстановлении функционала и лишь очень малая - в добавлении нового. Большинство продукт-овнеров или конечных пользователей просто откажутся платить.
Поэтому и возникает потребность в людях, которые способны писать
хорошие продукты, которые не нужно полностью переписывать раз в пять лет.
Ну и методиках, системах, правилах, принципах и прочее вот такое, что позволяет воспитывать и передавать опыт таких людей новым людям. Что и делает программирование, несмотря на то, что написание кода вещь техническая, в значительной степени делом гуманитарным.