> They are needed but ...

I really don't agree. The person in charge needs to have enough technical insight to have a good sense of the overall health of the team and whether reasonable progress is being made. They also need to have a sense of what is a 'good' product and what about the product needs to be improved.

Lets say the person in charge is not technical. The first thing that will happen is someone will get behind on what they are working on, and they will make some excuse (the database was reindexing or some nonsense), and the boss will believe them. From then on everyone knows they can slack off and get away with it, so productivity drops to almost 0.

Next the boss brings in technical managers to supervise the programmers, because he knows nothing is getting done but he doesn't know enough to call anybody out. This makes things much worse, since each manager is primarily motivated to be promoted, and the best way to be promoted is to demonstrate your ability to manage a large team. To get a larger team managers will deliver everything just a little too slow but hold out the carrot that if they had another person things could get done more quickly. In reality the managers are even less technically capable than the Boss, because they were interviewed and hired by the Boss. Boss's love throwing money at a problem, and team size grows and grows but managers can't actually push the team to get more done because they don't have any idea what is going on. The managers basically don't care about that anyway, since increasing productivity wouldn't help them and they can get favors in return by hiring someone's cousin.

Now there are hundreds of programmers and a dozen managers getting less done than the original 5 programmers. Lots of the programmers are extremely incompetent, hired due to nepotism or by mistake. They will never be fired because the manager would be admitting they made a mistake, or worse they might not get to hire a replacement if they fire this person, and this conflicts with their main goal of increasing their teams size to get a promotion.

Somebody has to plan work for all these programmers, and most of them are incompetent and don't care about the product. As a result, the quality is terrible. When confronted by the obvious bugs, they try to weasel out of it, and the boss is now very busy trying to keep customers and deal with emergencies (the database is down again!) to keep checking for all the obvious problems, so armies of QA people are hired. At some point a product manager is hired and once one is in the building they will hire 5 more within a year. Now you have 6 product managers having meetings with each other literally all day, and having not even a basic idea of what is going on they will start making plans. Since the programmers look busy when they are not seen or heard from so they just hide as much as possible and try not to attract attention, or put on headphones and stare at their monitors. The Product Managers look busy when they are having meetings, so they are always in every meeting, and pretty soon they insinuate themselves as the go betweens since they are always talking to the boss and the programmers are never around. Now the boss has even less idea what is going on since all the information getting to the boss is going through PMs who have literally no understanding of what is going on, and who get almost all of their information from other PMs, who get almost all their information from other PMs.

If this is a small company it is now basically in the same situation as Evernote is in now, and will go out of business soon, and if it's a large company the original boss has made such a mess and wasted so much money that the team he manages is large enough that the boss can get promoted to VP.

OR

The person in charge has enough technical understanding to keep his 10 programmers honest and make reasonable plans and be respected, and he keeps the team size at 10 super productive, happy programmers. If it's a small company he sells it to a big company for a huge pile of money, and if it's at a big company he gets passed over for promotion to VP because the job goes to some idiot that has managed to hire 500 incompetent programmers, 250 QA testers, and 200 PMs.