я уже не помню но когда то увлекался изобретательством и в 80-х вычитал (к сожалению книжки уже нет — цитирую своими словами), что любая отрасль, допустим авиация, развиваясь проходит следующие этапы:
1) в принципе возможно (ура — мы взлетели !)
2) обнаружение основных концептуальных противоречий (допустим вместительность и обтекаемость)
3) нахождение (вычисление) базовых оптимальных конструктивных решений (би/три/моноплан ? тянущий/толкающий винт ? материал ? как крылья и хвост расположить ?) (таких наборов решений может быть несколько для разных областей применения)
4) выведение теории на основе экспериментальных данных (появление аэродинамики, профессиональных школ пилотирования и т.д.)
5) рост в сторону различных экстремумов ("мрия" и боинг 747 <-> авиамодели) с одной стороны и увеличение комфортности использования (электроника, автопилоты и вообще беспилотные системы) с другой
так вот аналогичные цепочки можно выстроить для чего угодно — от политики и до микробиологии
(причём в политике мы видимо только только учимся понимать чем та или иная модель хороша — т.е. где то на втором этапе

я пытаюсь выстроить такую цепь для компьютеров:
1) первый компьютер — середина 40х!
2) размер/энергопотребление/цена <-> скорость вычислений и объём памяти
3) 1-* процессорный сервер с кучей памяти и устройств хранения, 1 процессорный комп с простым винтом, кластер из таких компов — наверно 3 самые устоявшиеся модели, и они ещё доолго продержатся
4) рабочих теорий оптимального способа создания и построения вычислительных машин и сетей тоже куча, вам спроектируют и создадут от суперкомпьютера и до грида с 1000 машинами (не говоря уже о простой домашней писишке

с закрытыми глазами и притом заранее будет известно всё: от цены до размеров
5) известия о создании мега мощных или микро маленьких компов и их комплектующих мы получаем раз в месяц, комфортность их конфигурирования и использования выросла в десятки раз (поставил и забыл в идеале — часто так оно и есть теперь)
а вот теперь попытайтесь кто нить для программирования построить такую цепочку:
как ни верти — а по моему мы где то на 2 этапе застряли
1) да — программировать возможно и вполне успешно ! конечно не АИ но итак куча полезного налицо
2) дешевизна и скорость написания в вечном конфликте с качеством и скоростью исполнения в рантайме
3) какой язык С# C++ Ada Oberon Smalltalk Java VB Object Pascal ? как хранить ХМЛ/ДБ/ООДБ ? какая ОС ? Опен сорс ? командная строка или ГУИ ? вопросов куча на самом деле.
4) Фаулер ? ООП ? АОП ? это притом что все имеющиеся популярные ОС и ДБ написаны на ассемблере С и оч. плохом С++ ? Фаулер занимался вроде бы простейшей рутинной задачей — автоматизацией бизнес процессов, споров про и контра по его книге куча. Рефакторинг ? Выгоднее переписать заново/лучше вообще не трогать. О кодестайлах и нэйминге тома написаны, равно как и о правильном ОО. Оное же — Гради Бутч и все остальные — эти люди 10 лет назад говорили и верили в одно, сейчас в другое, завтра все на АОП перейдут ради повышения продаж книгопродукции и сопутствующих тулзов вроде Рэйшенал Роуз.
5) Комфортность растёт при этом конечно (но и тут нет согласия — кому то ДОС или Юникс больше нравятся, а кто то считает что Мак ОС красивше нет). Есть реальный успех в популяризации софта среди юзерства но и тот сомнителен — юзер все проги кроме игрушек чаще всего ненавидит. С комфортностью растёт и количество багов. Интернет комфортности ещё добавил но и баги сделал уже критически опасными изза вирусов. Экстремумы — в сторону повышения аппаратных запросов только рост замечен однозначный.
хотя некоторые утверждают что софт девелопмент очень быстро растущая индустрия мы растём медленнее авиации по моему — за первые 50 лет авиаконструкторы прошли все этапы. мы уверенно только 2, остальные на слаааабую 3-ечку.