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