Scrum


Published: 2010-04-22
Updated: 2010-04-24



For a year I worked in a company that practiced Scrum. When I asked why, they said they had chosen Scrum because it was very similar to the things they had done before. During that year the process changed in many different ways. I began to read about Scrum, mainly Ken Schwaber's writings, and I watched some presentations available on the well-known video sites on the Internet. As I found out, frequent changes and improvements are part of the Scrum philosophy.

Here is a fuzzy summary of Scrum.

1. Keywords

1.1. Common Sense

Common Sense about something means everybody knows it, understands it, and agrees to it (e.g. if it is a decision). Creating and keeping common sense guarantees that all team members will be well motivated and informed.

1.2. Transparency

Transparency is very close to Common Sense. There will be no Common Sense about things that are not transparent. Wikis are very useful to quickly create transparency.

1.3. Simplicity

Simplicity relates to the Agile principle KIS: Keep It Simple. Things that are not simple bear risks. Complexity has to be split into simple building blocks.

1.4. Communication

Communication is an essential part in every software development. It is the opportunity to use the business knowledge of ALL project participants to optimally solve problems. Communication forms a land from a lot of islands. It enables learning from each other.

1.5. Self-Learning

Self-Learning is the ability to accept critics and dare subsequent improvements. Self-Learning mainly is done in the Scrum Retrospective Meeting (see below).

1.6. Sashimi

Sashimi is sliced fish. This Scrum term designates a technical concept. The product is developed in time periods called Sprints (about 2 - 4 weeks), and every Sprint should produce a full slice of the "fish", including bugfixed code, unit tests, documentation, architecture, online help, quality issue fixes and so on.

2. Roles

The Scrum method involves the roles of a

  1. Product Owner (commercial responsibility), a

  2. Scrum Master, which knows and teaches the Scrum method and communicates with all roles, and a

  3. Team, which is made up by developers, architects, testers, ... everybody that contributes to the product, up to 7 people.

3. Process and Data

Following are the process and its data.

Data:

Process:

4. Practicing Scrum

Practicing Scrum showed different problems.

4.1. What to say in Daily Meeting?

Developers spoke in Task numbers instead of topics: "Since yesterday I fixed 1234 and 2345, until tomorrow I'm going to do 4321 and maybe 5432, nothing blocks me, Thx." The Daily Standup Meetings were very short. After a time we agreed that this makes no sense, because we did not realize what each other did, and could not detect interfering activities. So we went to the contrary. Tasks were explained, and it was described how they were fixed. As expected, meetings grew very long. It took some time to get to a medium variant where information was presented in a consumable way, and everybody understood what the colleague was talking about. But it continued to degenerate.

It is an important responsibility of the Scrum Master to teach people what to say and how to say it. If this fails, the daily meetings might be absurd.

4.2. The Daily Meeting is for Managers, not for Developers

When I listened to the things presented in Daily Meeting, I frequently had the wish to discuss details, and how to solve issues elegantly. The Daily Meeting brings the divers to the surface, and this is the best moment to show them the dark clouds before they dive down again.

But such is not part of Scrum. Scrum is a way to manage projects. The Team is expected to be a collective that carries out Tasks through self-organization. The Daily Meeting is time-framed and too short for detail discussions.

4.3. Where am I in this Burndown Chart?

The Burndown Chart tells a collective progress of work. You can not detect yourself in a Burndown Chart. So learning from it will be at most a collective learning. If the Scrum Master tends to "beautify" it (e.g. by taking out Tasks during Sprint), it will not even tell the collective truth. If the way to beautify it is frequently changed, you can not trust it at all.

One more important responsibility of the Scrum Master: not to beautify the Burndown Chart, and to give good environmental information about what it exactly shows. Keep it simple. Do not use charts with more than three curves. People will not understand it, and will start to ignore it. It is hard enough to learn from it.

4.4. Project Manager versus Scrum Master

Scrum books talk about a productivity rise of up to 300 % (Agile principles like communication over documentation might stand by when trying to increase performance). I could not observe such an enhancement, but I can imagine it. One role in traditional software engineering is the project manager. He thinks over the things that developers will have to do, and he controls their reification. Both activities are not really productive, they are just virtual. From the Scrum perspective they are wasted time.

Self-responsible developers can think over things by themselves, and quality assurance will test the outcome. Scrum Master and project manager overlap, but the Scrum Master role does not cover Team responsibilities.

4.5. Scrum does not organize the Team

How does a Scrum Team work? Is it possible to have the same Scrum process for both testers and developers? Do their iterations interfere, are there dependencies so that they could block each other?

Scrum does not say how Team organization should be done. It just gives some hints like preferring big communicative rooms over small bureaus, or encouraging punctuality and time frames.

5. Common Mistakes

Finally here is a list of some common Scrum mistakes:

6. Summary

So should we really use Scrum, or is this just a new fashion? Aren't our long-grown project management methods better and already include Scrum capabilities?

I think practicing Scrum needs a deep understanding about the things that happen when people get self-responsible. There is power in trusting the capabilites of Team members, and showing them that they are more than just small wheels in a big machine. And if you don't have confidence, it's time that you take part in Daily Standup Meetings, where you can relax your feet from everyday's marathon sessions :-)