A : ABSOLUTELY
This is just a blog entry, so it in no way can encompass all of the data, experience, and information to support my position; that would take a magazine article. And I'm sure people may disagree, and that's fine, that's why we share ideas, for input from others with different (or same) experiences.
It seems there are people who feel that Agile means the role of the BA (Business Analyst) is no longer needed. I've heard people say, and read articles that stated, "The Scrum Master (Agile Team Facilitator) acts as the BA" or "The Developers step up to become the BA" or "The BA is an unnecessary go-between when using Agile". I, personally, disagree with all three statements. But not because the Scrum Master or the Developer might not be capable, they might be fully capable, but that's not their role. For example, are most 3rd Basemen capable of playing 2nd Base? Probably. But can the team send only 8 players onto the field? They could, but usually not a good idea.
What are the skills a BA brings to an Agile project (or any project)?
A good BA may have experience in, or be schooled in, communication, writing, project management, or IT. Regardless of their formal schooling or background, they bring a set of skills that are critical to the success of any project, including Agile projects. The ability to successfully elicit business needs using a variety of techniques. The ability to facilitate brainstorming sessions or workshops. The ability to not just hear, but also listen, to the shareholders, to dig deeper and find the root of their business need. The ability to take all of this information and apply it to concrete requirements. The ability to write in a concise, but informative manner (something I still need to work on). And may other items. Their role on the project is to understand, truly understand, the business need, and that involves understanding the end-users, the shareholders, the business itself (both within the company and as a whole). They not only need to understand the requests, but also the line of business (e-commerce, order entry, mobile apps, telecomm, etc etc). The role of the BA is a full time role from inception of the need; where the BA has to determine the benefits (financial or otherwise), the feasibility, and other items, before even getting to the first iteration. The BA role lasts from that point, until implementation, and usually post-implementation. Could an experienced Scrum Master or Developer do all of this? Maybe, but they need to focus on their role in the project. See baseball analogy above.
Why shouldn't the Scrum Master be the Business Analyst?
The job of the Scrum Master has two important components (it has more, but two apply here). The first is to encourage and champion the Agile principles, to keep the project running in an Agile fashion. That in itself can be a full-time job. If an Agile project starts becoming non-Agile (or "Fragile" as I've heard), there will be increased risks of failures, late deliveries, and not delivering the product in the manner it is needed. The 2nd job, and just as important, is to be an unbiased facilitator. The Scrum Master must remain objective, must remain neutral. The Scrum Master can use techniques to elicit feedback from the team, to move discussions forward, to mediate, to encourage collaboration. But one thing the Scrum Master should not ever do is determine the solutions or ideas or approaches. The job of determining solutions, requirements, etc is that of the BA and the Delivery Team. There is no possible way for a Scrum Master to perform these duties, and also be the BA. It's basically a conflict of interest.
Why shouldn't a Developer also play the BA role?
Simply put - wouldn't it make sense to use the best people in the best places? A Developer is very good at detailed thinking, very good at detailed architecture, very good at the minutia that is critical to building interfaces or databases or code. This is what they do - this is their zone - this is where they provide clear and immense value. This is why everybody just can't be a Developer. Back to the baseball analogy, does it make sense to make the Catcher the Pitcher, when there are available pitchers? Maybe the catcher can throw a ball, but isn't the catcher's expertise behind the plate, isn't this where the player provides the best value to the team? Why distract time and energy from the development process to also perform BA duties? Such distractions can create misses in the details. The detailed work of the Developer requires focus and time. The Developer role and the BA role are both equally important to the success of the project, and both need to be doing what they do best.
Summary
In my attempt to be concise (failed) - here is a summary. A baseball team does not remove the 2nd Baseman, because they already have a 3rd Baseman. Less is not always more. Such a move creates a gap, that a hitter will expose. A baseball team does not ask the Catcher to Pitch, because the Catcher provides value behind the plate, that's where that player excels. The same is true with Agile. The BA doesn't get removed because there is a Scrum Master, that would create a gap. The Developer doesn't do the BA work, because then the Developer can't be doing what they do best - develop.None of these 3 roles are more or less important than the other. And none of these team members is more or less valuable than the other. It's like a 3-legged chair, it can stand (assuming the legs are placed correctly during design), but remove one leg, and well...........
No comments:
Post a Comment