I'll counter that - even not-so smart programmers with enormous egos would be able to ship something clunky, partly broken, not feature-perfect etc. (case in point: Linux - do you think they required full-time BAs to manage this very nicely working, feature-rich product? They did the BA/PM work themselves with Linus and others as anchors).
A team of super-smart skilled BA/PMs will produce zero, zilch, nada if there are no programmers.
"super-smart skilled programmers with attitudes" would figure out their priorities and the needs of their architecture. That's why Valve said that the single most important task is hiring - if you don't have super-smart people who can put egos and politics aside in favor of actually shipping something great, then you need BAs/PMs.
It's only when "who's doing what" becomes a problem that BAs etc are needed. If programmers were willing to spend some time doing "BA-work" and are willing to be bombarded by customers with inane queries and are willing to ask them questions to elicit their needs, then there'd be no need for BAs/PMs.
The only reason BA/PMs exist is because there are only 24 hours in a day and programmers can't do the above.
About Linux: Linus is the brilliant manager there. He invented git to be able to drive his development methodology. He pushes back and brutally steamrolls rogue features into submission.
Linux is actually a good example of how a manager who is technically adept can do wonders for a project. It is NOT an example of how you do not need PMs.
You are confusing business analysts from management consultancies like McKinsey/BCG/Bain (or CEO-reporting groups like the SPG at American Express) with software BA/PMS (the people under discussion here).
Software BA/PMs have nothing to do with business models and strategic planning.
A team of super-smart skilled BA/PMs will produce zero, zilch, nada if there are no programmers.
"super-smart skilled programmers with attitudes" would figure out their priorities and the needs of their architecture. That's why Valve said that the single most important task is hiring - if you don't have super-smart people who can put egos and politics aside in favor of actually shipping something great, then you need BAs/PMs.
It's only when "who's doing what" becomes a problem that BAs etc are needed. If programmers were willing to spend some time doing "BA-work" and are willing to be bombarded by customers with inane queries and are willing to ask them questions to elicit their needs, then there'd be no need for BAs/PMs.
The only reason BA/PMs exist is because there are only 24 hours in a day and programmers can't do the above.