It's a lot to do with risk ownership and the fact it can be a genuinely hard role to fill as a BA / PM. Yes, programmers make it happen, but in an organizational context, the bookends of a BA on the front and PM on the back make sure it happens in a context that provides business value and a tangible outcome.
I've known plenty of brilliant programmers in a corporate setting that while technically excellent couldn't get a real project completed to save their life. They're often a different breed from people building things in startups. They're almost robotic in their following of the prescribed scope and you have to hammer them to bring things in on time or in a controlled way.
Additionally if the whole project collapses in on itself or delivers something of little business value, it's not going to be the programmer that gets hung for it.
Note, this is just in a corp / large org structure setting. As mentioned, I find guys in startups and small shops much more competent and scope definition and management. Just don't underestimate how unbalanced the skillsets can get in some fields.
I've known plenty of brilliant programmers in a corporate setting that while technically excellent couldn't get a real project completed to save their life. They're often a different breed from people building things in startups. They're almost robotic in their following of the prescribed scope and you have to hammer them to bring things in on time or in a controlled way.
Additionally if the whole project collapses in on itself or delivers something of little business value, it's not going to be the programmer that gets hung for it.
Note, this is just in a corp / large org structure setting. As mentioned, I find guys in startups and small shops much more competent and scope definition and management. Just don't underestimate how unbalanced the skillsets can get in some fields.