I'm not directly involved in software development, but I see a few parallels in another field. I am a retired structural engineer. When I started architects were in charge of the design process. Many are now involved only in concept and the "looks". This is because they failed to learn how to cover the whole range of what is now a complex process. Engineers find that a reducing amount of their work involves an architect. I read moans on coding forums about how management "don't get it". Management are simply trying to meet the requirements of the person who is paying. If more "software engineers" developed an attitude of "that is the challenge, how can I solve it?" then they would become their own managers.