Monday 9 February 2015

Scrum == Communism ?

I have heard it said, and have had the feeling myself, that Agile (Scrum in particular) is a bit like Communism. The follow-on from this is that Scrum is doomed to failure and/or that people won't accept it (presumably on ideological grounds). Let's explore the validity of this argument.

What is Communism?

First we need to decide what Communism is. I have always been a little vague on this but here are two simple definitions.
  1. The workers control the means of production.
  2. Classless society where you give what you can and you get what you need.
I will only discuss the first definition to say that it is not particularly relevant. First, the means of production in software development is the computer hardware and the brains of the developers. I don't think it's a big deal who owns the computers, and I don't think anyone would argue that the company you work for owns your brain. Of course, owning some of the company you work for (eg, stock options) may be a motivator but probably does not make much difference to the use of Scrum.
Please note that this article is in no way politically motivated or an attempt to promote Communism or any other political system.

I think the 2nd definition is more useful to our discussion. So the question is: Is there any similarity between a Scrum team and Communism as in the 2nd definition? Let's look at the definition in detail by splitting it into three parts...

Classless society

"all team members
are equal"
A scrum team is self-organizing. There are no bosses (within the team) to tell team members what to do. Of course, the PO determines the product backlog which gives direction to the team, but how the team accomplishes their goals is completely up to them.

Note that you shouldn't make the mistake of thinking that "self-organizing" means the team can do what they want - that would instead be anarchism. The team must work within the bounds set for them by senior management, the product backlog and the rules of Scrum. It is an advantage of Scrum that self-organizing teams usually organize themselves more efficiently and flexibly than an individual manager can.

Contribution (give what you can)

Just because all team members have equal rights does not imply whatsoever that they have equal abilities. Obviously team members will vary in what they can contribute depending on experience, knowledge and aptitude.

"everyone contributes according to their ability"
An advantage of Scrum is that team members, after time working together, grow to know of their colleagues' abilities and weaknesses far better than any outsider. This is one of the reasons that self-organization works so well. This, plus being empowered, means that the abilities of individuals are made far better use of. Further, the sense of camaraderie encourages the team to work towards the same end.

This is how Communism is intended to work but in practice "Communist" states fail because there is no incentive to work to your best ability. Scrum only works because in a small team everyone knows who is not pulling their weight and there is a team spirit and "peer pressure" to do your best.

Rewards (get what you need)

In Communism (in theory) there are no privileged individuals. Nobody has special benefits. Everybody is treated the same. Similarly, in Scrum the whole team is rewarded, regardless of the contribution of different individuals.

"everyone is rewarded equally"
This is another important advantage of Scrum. While rewarding on an individual basis encourages competition and hard work, it also promotes rivalry and virtually destroys collaboration.

A common argument against Scrum is that those in the team who make a greater contribution will be aggrieved because they get no better treatment than the worst performers. In my experience this rarely happens unless there are one or two team members not pulling their weight (in which case the team has the right to vote them out of the team). Generally, team members are committed to the team and not aggrieved when they know that everybody is doing their best.

Ringelmann Effect

So if Scrum is like Communism, the next logical conclusion is that it is doomed to failure like numerous Communist states. Wrong! There is a fundamental difference - a Scrum team is much smaller. In my opinion Communism (and Scrum) can work well for a small number of people. The ideal size is probably around five. Ten is stretching it. It can't work at all with a team size of 20 and there is no hope at all with a population of millions.

This is all due to the Ringelmann Effect, which has been known, and extensively studied for more than a century. The Ringelmann Effect essentially says that the larger the group performing a task the less productive each group member becomes.

The interesting thing is that when the size of the group exceeds about eight the
* The actual "plummet level" varies depending on the type of project. For a complex project it may be just 6 people. For a well-understood project it may be 10 or even 12.

My rule of thumb is to follow the Scrum guideline of a maximum team size of 9, but preferably around 5.
productivity, per person, plummets*. Studies have shown that a team of 14 people will produce less than a team of seven - that is total output not per capita output. Many would expect that by doubling the number of people in the team, the output, if not doubled, would at least increase, but it actually falls!

What is the cause of the Ringelmann Effect?

After much study it is generally recognized that there are two principal causes: social loafing and coordination overhead.

Social Loafing

Social loafing is the name for the phenomenon where people exert less effort to achieve a goal when working in a group than when working alone. Further, as the group size increases the average (per capita) effort decreases. The interesting thing is that this is often unconscious - the individuals may not even be aware that they are not trying as hard!

Social loafing is the main effect that Ringelmann discovered in his original experiments early last century. He found that, given the task of pulling a rope, the more people that are pulling the less was the average force generated. Importantly, when the size of the group reaches 7-8 then the average effort falls quickly.

What is the relevance of social loafing to this discussion?

First, I believe that social loafing is the principle reason for the failure of (large scale) Communism. However, social loafing in a Scrum team is reduced since team size is restricted to 9, and is typically 5 or 6. Moreover, social loafing is well managed by other Scrum practices such as the daily standup and is often counteracted by such things as team spirit.

One aspect of Ringelmann's experiments that we should consider is that the experiments placed people in groups at random. I believe that if the groups had been given an incentive and were allowed to generate any sort of team spirit then the results may have been significantly different. For example, instead of simply pulling a rope with a group of strangers perhaps the groups could have been organized into "tug of war" teams that pulled against each other.

The benefit of "team spirit" is born out by the fact that in sporting events (swimming, running, etc) an individual will often perform at a higher level in a relay event than in an individual event (see Hüffmeier et al), though I suspect this depends on the specific individual and team involved.

Another important effect, which counteracts social loafing, is peer pressure. Peer pressure is often portrayed negatively but can have beneficial effects. The visibility of the daily standup (see Why It's Good in Scrum Standup) means that the team quickly becomes aware of any members who are not pulling their weight. I will mention (again) that for this to be effective the team must be of a small size (9 or less) otherwise the team will not be aware of what everyone is doing and individuals can fade into the background.

Coordination

Coordination refers to getting everyone working towards the same goal and simply communicating effectively with other team members when necessary. As the goals of the team, and the means to achieve them, become more complex, coordination rapidly becomes important. Once social loafing is under control (as discussed above) coordination become the more significant effect affecting the team's performance.

The problem of coordination affects any group endeavor so it should affect a Scrum team just as it would affect a Communist state. Again there is the obvious difference that a Scrum team has no more than nine team members so -- coordination is easier the smaller the team.

I will also mention in passing that some of the techniques of Scrum such as dividing a project into many small iterations avoid many of the problems of coordination. A proper discussion of this will have to wait for a later time.

Summary

In Scrum, all team members are equal, at least within the team. Team members contribute according to their abilities. The whole team is rewarded according to their achievements. Scrum and Communism do look to be similar.

So is Scrum doomed to the same fate as Communism? Not at all!

As was discovered by Ringelmann, social loafing can greatly affect performance of a team. This is a major problem for Communism and for Scrum. However, social loafing does not really kick in until the team size reaches eight or more, which is why Scrum teams should not be larger than 8 or 9.

Scrum practices also help. The visibility in the daily standup provides peer pressure which counteracts social loafing. Further, team spirit is enhanced by having the team work towards a common goal (ie, finishing the sprint backlog) which also overcomes loafing.

It is generally agreed that Communism failed due to a lack of incentives -- people don't excel when they are given no reason to. This is often taken to mean that people are inherently greedy. But not all (or even most?) people are motivated by money/material possessions. A great motivator in a small team can be helping your colleagues and doing your part for the success of the team.

My conclusion is that Scrum is like Communism but on a small scale. Communism (and Scrum) can work well for a small group of people. It's just that it does not scale well.