Choosing Software Engineers as Scrum Masters

One of the surprising things that I have discovered recently, is that some companies that are trying to hire Scrum Masters without software engineering experience.  This is not an advisable move according to Scrum’s creators.

Ken Schwaber, one of the creators of the Scrum process, addressed this problem in the first book on Scrum.  Here’s what he says along with his co-author:

“As Scrum Master, I make judgments on a team’s engineering practices (or lack of practices). The best Scrum Masters are also good engineers. The Scrum Master helps the team improve its engineering practices, just as a coach teaches a team to play better.”

Ken Schwaber, Mike Beedle, “Agile Software Development with Scrum“, Chapter 4, Section 4.1.3

Because of this coaching responsibility that Scrum Masters naturally have, it’s important that they are aware of good engineering principles.  Without this knowledge, a good Scrum management team could still fail to produce quality software on time.  In this same book, the authors explain that Scrum is just a wrapper around good software engineering:

“If engineering practices are candy bars, then Scrum is a candy bar wrapper.  That is to say that Scrum is superimposed on and encapsulates whatever engineering practices already exist.”

Ken Schwaber, Mike Beedle, “Agile Software Development with Scrum“, Chapter 4, Section 4.1

It’s also good to note that you don’t have to be an engineer to be a good Scrum Master.  It is possible to find the engineering help you need to coach an engineering team with their internal processes.  The main problem is when a non-engineer starts directing the behavior of engineers without any training.  They are prone to make the same mistakes the industry made that lead to the creation of agile methods.  Although it is possible to recover from bad advice using Scrum, it could be a significant waste and one that could be avoided by having a knowledgeable person coaching the engineering team.

There are dangers in hiring the wrong engineers as a Scrum Masters too.  If the engineers are not an good communicators, they may not be able to communicate their knowledge to the team or to project stakeholders.  The Scrum Master position is a coaching position.  The engineer who takes this position must not only be a good engineer, but also a good teacher.

It’s also important that the engineers who take on the Scrum Master role be good at separating themselves from the team during a sprint.  If the team is to be self-directed, good Scrum Masters must know the difference between coaching and control.  The team must still be given the freedom to be self-directed during the course of a sprint.

If you are doing “Scrum” but it isn’t working very well, make sure that your engineering team is following good agile engineering practices.  It may be that that the Scrum process is not to blame at all. It’s important to understand that good Scrum management must also be able to coach an engineering team about good engineering practices that work with Scrum.