I field this question very often and especially from members of technology organizations where agile and scrum in particular is being introduced top down from Management. I've blogged a bit on Product Owners in the Enterprise and Why Project Managers are still needed, but what about Scrum Masters?
Here's how this question surfaced over the last week:
- I met a colleague the other day who's been successful with Agile Development but was hitting a snag. He had a couple of contractors acting as scrum masters and hadn't found a person on his team to fill this critical role.
- Last week I attended Agile East, by Thoughtworks. In Martin Fowler's keynote, he clearly stated, "Find the people and give them freedom to select and adapt the process that is going to work". In other words, give your team practical freedom to create and adopt their development process because they will look to maximize productivity and quality through this responsibility and entitlement.
- Then, in a subsequent session on Redefining Application Development with Offshore Agile, Greg Reiser presented several organizational models for offshore agile development. Guess what! No scrum masters - they've replaced them with Iteration Managers that have some of the responsibilities of the Scrum Master but also mixed in with other traditional project manager questions.
- Finally, this post on The Personality of a Great Scrum Master caught my attention for how clearly it defines the Scrum Master mind set, key responsibilities, and other characteristics:
This role, rather than focusing on just the mechanics of project management, planning and execution, is geared to being the ultimate team advocate, protector of team productivity, facilitator and communicator.
My Thoughts On Scrum Masters and other Roles in the SDLC
When staffing a department or a team, you often have to make some tough choices on the type of people and skills needed. Do you need a business analyst and a project manager? Will a team become more productive if there is a build engineer? Do you need QA Analysts, Engineers, or Testers and in what proportion to developers?
So when it comes to the Scrum Master, here is what I recommend:
1) Understanding the role and responsibilities really well because it includes responsibilities we usually ascribe to either a project manager or a team lead.
2) Decide what responsibilities are clearly needed across your development teams.
3) Think through how best to assign these responsibilities based on the talents of your team members and the structure by which you implement the SDLC.
4) Recognize if you need some training.
5) Review your process and metrics and make adjustments.
So for example, if you have a small number of co-located teams, you might be able to get away with a shared scrum master across them. If you have a larger number of teams, you'll probably need the team leads to fulfill the responsibilities of the scrum master and then have a separate project manager coordinate activities across teams. (Note: Scrum of scrums really works for this scenario!). We've had success at times having a rotating scrum master with a passing of the baton every 1-2 iterations.
Bottom line, I agree with Martin Fowler and do not think agile or scrum is a fixed process and set of responsibilities. It's a framework that needs to be adapted to the situation. Same is true for fulfilling the scrum master responsibilities.