I’ve heard different discussions about ScrumMasters and rules. There a some positions that see the ScrumMaster as the keeper of the rules. His responsibility should be to make sure that everyone is following the rules. Another position says, agile (and so scrum) is to challenge the status quo. Therefore to force rule compliance is the complete opposite. So here my view, to get both together.
First have a look on rules, guidelines or directives in general. For all of them I try to use the following statement:
“If you follow the rules, you don’t have to justify yourself.”
That means, you should break rules, but only if you have a good reason and be able to explain it. And I’m not talking about interpreting a rule like a lawyer, but consciously breaking rules for a comprehensible reason.
One cause why we have rules is to be more efficient in decision making, and efficiency is the prime directive of a ScrumMaster. So we want to skip a long and sometimes painful decision making process about something similar which we have already decided. Another reason is to get more matching decisions about similar things by different people or at different times.
Another cause for rules is for managing complexity. Rules could be tools to handle complexity. One way is to add a rule to a system, so the system reduce its complexity. For example setting up a rule to standardize the working environment (everybody has to use eclipse in version x) will reduce complexity. Another way to handle complexity by rules is to use a rule to simplify the view on a system. In more than 99% of cases boolean expressions need a complexity less than 4, so the rule that there should be no boolean expression with a higher complexity than 3 simplifies the system by ignoring the cases with higher needed complexity.
Let’s look at the question how to handle rules. Rules only make sense (and raise efficiency) if they are followed. Unfollowed rules tend to be impediments. So to recognize and address rule violations is important and the ScrumMaster should work on that.
But to be more efficient as ScrumMaster the best way is to avoid improper rule violations. The first prerequisite to follow rules by purpose is to keep them all in mind.
- Start by making rules explicit. Avoid unspoken or hidden rules, because those rules are not manageable.
- Then try to use as few rules as possible. If there is a request for a new rule, you should evaluate the benefits of the rules wisely. If you have to much rules, don’t only hide some, try to get rid of them.
- Try to keep rules as simple as possible. In particular the conditions for applying a rule should be simple.
The second prerequisite is the acceptance of the rules by the people who should follow them. You could raise the acceptance by
explaining the purpose of the rules. Where are the benefits? Which problems should be avoided? This also helps to evaluate, if a rule violation is proper or improper.
making it as easy as possible to follow the rules. If it is a problem to follow the rules, people will try to avoid the rules without good reasons.
Setting up immediate feedback mechanism for rule violations.
As it will not be possible to completely avoid rule violations, the question is how they will be detected, both proper and improper violations.
That’s relatively easily for proper rule violations, as they are consciously done and nobody has to be afraid to be offended. To detect improper violations is much more difficult. It’s easy going if you could set up automated rule checking. In most cases it is more helpful to prevent improper rule violations than to detect them. There should also be some kind of regular rule checks like reviews of results (code, documents, product). But the best way to detect violations is that everybody is perceptive.
After violations are identified, the next step will be to evaluate them. As mentioned above, a single rule violation is not “wrong” in general, as long as it is done by purpose and explainable. Therefore the attention should be on the improper violations, but also on proper ones who will be regularly done. In both cases try to analyse the reason why the rules are violated. For the improper ones find actions to prevent them (see above). Regular proper violations indicate that the rules should be challenged.
To come back to the initial question : I would say the ScrumMaster should be both a rule keeper and a rule challenger. He should keep a watch on the existing rules and challenge them so that only the helpful ones remain.