In my experience the best approach sits somewhere between the two. Focusing initially on requirements gathering the key factors here are:
1) The BDM has to do some level of analysis or he's going to shaft the development team or the client. Without a solid scope the price, delivery estimates and so on are likely to be off one way or another and either the devlopment team will be flogged to death delivering it or the client will be hacked off when they're asked for more cash or get less thant they thought.
BUT
2) The skills needed to be a good BDM and a good BA aren't the same. There is overlap but not that much and in my experience most BDMs aren't as structured in their thinking as you need to gather solid requirements and nor are most BAs charming enough to open doors. This means that if you ask the BDM to do a BA role (or vice versa), they're going to be sub-optimal in one area or the other. I think this is especially true when dealing with outsource providers where you really need the scope and spec to be solid.
The way we got round this was the BDM was given the task of defining the scope but gave them a very structured framework in which to do it.
Working with the BA and the developers a check list was developed which would allow the BDM to determine the key factors which would influence the complexity of the project. For a web project these might include high level sections of the site, data volumes, whether login and customisation was required, any third party interfaces, whether it's technical, technical and branding, hosting and so on - you'll know in your own business what these factors are.
This serves a number of purposes:
- You can see whether it is a basic web presence (and indeed whether the people involved mean the same thing by basic web presence) or something more;
- It means that the initial estimates, timescales and resource plans are likely to be more accurate and you can append them to the commercial terms as the basis for the estimates to provide some contractual cover (though because the client has signed off on them it's less likely to be an issue);
- It gives the BA a starting point and prevents him having to have the client repeat everything;
- You're not having to cross train a BDM to be a BA.
Note that this isn't analysis - it stops way short of anything you could code against, but it's aimed at stopping the worst problems you might run into and getting a common understanding on the key elements as early as possible.
Once this is agreed a specific BA can move in and start defining the detailed requirements.
The BA/PM dilema is similar but less pronounced. They are specialist skills but I've seen people act in a joint BA/PM capacity with more success than in a joint BDM/BA capacity. Whether you separate this out comes down to size - of the project and the company you work for.
If you can have specialist PMs and the project justifies it (I'd say the benefits kick in somewhere around 50 man days work) then great, do so, but for smaller projects a solid BA can usually handle the delivery and client management and you might even find that they'll do so with less overhead (you're not charging needlessly for two people to sit in a meeting, read reports and so on). What I would say is that if you're going to expect a BA to act as a PM then make sure they have the time available - while there is overlap it absolutely takes more time to do both than just to do one - and give them some PM training if they need it and don't just assume that they know what's important.
Once it's done it gets handed back to the BDM who continues in an account management role.