To be 100% honest a good developer should be able to take on all three roles. PM and BA are skills which should be built in as well along side other basics.
To be 100% honest a good developer should be able to take on all three roles. PM and BA are skills which should be built in as well along side other basics.
Most good developers that I know of don't communicate as well as BA or PM when it comes to interfacing with non-technical people.
NB: Not to say that these developers are bad communicators. They're less patient, they tend to have an "ideal" picture, and they work better with computers than a normal human being.
I always sit in the middle between humans and machines and am quite happy getting my hands dirty with both sides. Communication and management is part of the job.
Contractors, on the other hand, have to deal with Accounting department, BAs, PMs, etc and then ship something... :D
There are more like these but you get the idea. Yes there are BA/PMs that do not do their task well but incompetence is not retricted to a particular line of work, is it ?