A Management Philosophy of Software
Imagine a world in which programmers are valued similar to middle managers. But first, disabuse yourself of the idea that managers are inherently useless and evil, and let me explain what a manager is.
Managers typically don't get paid for doing work; they typically get paid according to how well their team does work, and how much work their team does. Lots of work done badly isn't very good, but not enough work done well isn't desirable either.
That usually means that they avoid doing work. Given some work to do, their usual action is to find the person on their team most capable of doing the work, and to get them to do the work. They will make that person responsible for doing the work, and (if they're any good) give them the authority to do it.
But they're not paid for telling the person how to do the work, or for the task of delegating responsibility or authority. In fact, if the work isn't done, or isn't done well,...