There's a reason why we all aspire to be Rock Stars in our respective crafts and why the entrepreneur in us wants to hire the Rock Star.
Give me a business analyst who knows his marketplace inside and out. Who can break down the value proposition our business offers to 25 different demographics the same way John Madden breaks down a cover-two defense. Who can see where the market is going before the market knows its going there, and gets the team ready and motivated to get us there before any of our competition even realizes they're behind.
Give me a project manager who can see fires before they start; who can guide 30 people to do the work of 300 and can keep 300 people working efficiently toward the same goal. I want a project manager who craves efficiency in their process like an addict craves meth. Give me a project manager who obssessively clicks the refresh page on O'Reilly's website waiting for updates on books about continuous integration, issue tracking, and version control practices.
And give me a programmer who knows the entire stack like the back of their hand. Who can program Ruby, Python, Java, Haskell, Clojure, Objective-C, C++, C#, Go, Scala, and every kind of Javascript. Who understands what the different hardware constraints on a desktop application and a web application. Give me a programmer who writes elegant unit tests for all of his code, and evey algorithm is the minimum O. Give me a programmer who happily mentors every other developer in our shop and, like Michael Jordan, makes everyone else better.
Give me these three, and I'll change the world, and I'll pay each of them far more than my competition.
Your view of business roles is flawed. The programmer has to do those things but also know the marketplace better than the business analyst. the programmer has to guide the less capable and new programmers on the team. The BA can't. The programmer has to set up the Continuous integration server, issue tracking system, source control repository, and use all of these things that the PM is reading about with amazement. In fact these things are an insignificant afterthought to the programmer, who has learned how to set up administer and use multiple tools of each.
I think you're giving "programmers" too much credit or "project managers" not enough.
I'm the product guy at a small-ish company and my main dev-side pet projects are deployment/CI and development workflow, and I've implemented 95% of the solutions for these as well as architecting our overall system.
Some would just say I'm a programmer then, but I think what padobson was getting at is that good people in any of these roles get their hands dirty in optimizing their area of concern, even if that overlaps in other areas.
Some of them think that they can change the world inside an organization that gives them the tools and power to do so - one of the best programmers I've met works for Microsoft, he loves Haskell and all that, but worked for the C# team and has moved around inside Microsoft, doing interesting work.
I don't think he'd be a good fit to try to change the world by himself, but he can buy a good vision (or a well-sold bad one maybe :) ).
Give me a business analyst who knows his marketplace inside and out. Who can break down the value proposition our business offers to 25 different demographics the same way John Madden breaks down a cover-two defense. Who can see where the market is going before the market knows its going there, and gets the team ready and motivated to get us there before any of our competition even realizes they're behind.
Give me a project manager who can see fires before they start; who can guide 30 people to do the work of 300 and can keep 300 people working efficiently toward the same goal. I want a project manager who craves efficiency in their process like an addict craves meth. Give me a project manager who obssessively clicks the refresh page on O'Reilly's website waiting for updates on books about continuous integration, issue tracking, and version control practices.
And give me a programmer who knows the entire stack like the back of their hand. Who can program Ruby, Python, Java, Haskell, Clojure, Objective-C, C++, C#, Go, Scala, and every kind of Javascript. Who understands what the different hardware constraints on a desktop application and a web application. Give me a programmer who writes elegant unit tests for all of his code, and evey algorithm is the minimum O. Give me a programmer who happily mentors every other developer in our shop and, like Michael Jordan, makes everyone else better.
Give me these three, and I'll change the world, and I'll pay each of them far more than my competition.