Я считаю, что непонимание рядовым программером разницы между огромным фреймворком с кучей абстракций так как он должен быть абсолютно резиновым на все случаи жизни и его поделкой или даже "продуктом" приводит к тому, что пишут софт с ста слоями, ссут скопипастить мелочи и потом тонут в этом всем резинообразии, создавая абсолютно не поддерживаемое "легаси", которое потом переписывают.