Без заголовка
согласен на 146%
но лично на мой взгляд проблема просто в организации труда
грубо говоря, софтовая инженерия прочно ориентирована на кодинг манки
а кодинг манки не положено работать на абстрактных уровнях
т.е. если программер пытается, то "получает по морде" от коллег/менеджера
таким образом, он усваивает стереотип, что так делать не хорошо, и передает стереотип следующим поколениям
конечно, не все коллективы работают в стиле кодинг манки, я бы не сказал, что там какие-то проблемы работы на абстрактных уровнях
конечно, не все люди от природы это потянут (но я думаю таковые в программисты и не пойдут)