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.