Scrum Tool Home

Online Scrum Software Development Blog

Digg This! Post on Facebook! Post on Yahoo! Post on Reddit Post on Delicious Stumble This! Tweet This! Post on Google

Wednesday, October 6, 2010

Scum versus Scrum

By Matt Truxaw

Single-celled organisms and software developers may not seem to have much in common. However, both of these organisms benefit from following a few simple rules that allow them to work in groups. Following these simple rules allows new behaviors and capabilities to emerge from the group - capabilities that individual members cannot demonstrate alone.

Slime Molds
Let's start by discussing slime molds, as explained in Steven Johnson's Emergence. Slime molds in their normal state are individual, single-celled organisms. When there is enough food and water in the environment, their normal life is a cycle of “absorb, excrete, repeat.” But slime molds have two built-in rules that they follow when conditions in their environment begin to deteriorate:
  1. When a problem is recognized in the environment, emit an enzyme.
  2. When you recognize this enzyme in the environment:
      a.  emit the same enzyme;
      b.  head towards the source of the enzyme.

    When a problem begins to occur in the environment (lack of food, dehydration, etc.), a slime mold will emit an enzyme. Others in the area will sense the enzyme and move toward the source of the enzyme as they themselves emit the enzyme. This feedback of enzyme into the environment attracts even more slime mold cells towards the group which leads to more enzymes being released, which leads to more gathering, etc. At some point these individual cells grouping together reach a critical mass and they become a slime mold colony.

    The slime mold colony takes on the appearance of a small slug, but it is made up of undifferentiated slime mold cells. There is no specialization among the cells. There are no "leader" brain cells or muscle cells. They are all individual slime mold cells, but their interaction has created a new "organism," the slime mold colony.

    Slime mold colonies have capabilities far above the additive capabilities of the individual cells. The colony is capable of independent movement as a unit. It can travel great distances (for a slime mold) to solve its problem (find food or water) or it can create new slime mold spores to await better conditions. These colonies have even shown a rudimentary intelligence and can traverse a simple maze to find food.

    These are not simply additive capabilities. These are not extensions of capability of the individual slime mold cells. These are completely new capabilities that did not exist in the individual cells but emerge from the interaction of the colony of cells.

    Anthropomorphizing a bit, we can translate the slime mold rules:

    1. When I recognize I have a problem, I tell others, "Hey! I've got a problem, I need help."
    2. When I find someone else has a problem, I recognize that if it is not solved, it will be my problem, too.
      a.  I say, "Hey! We've got a problem."
      b.  Let's get together and deal with it.

    With these rules in place, slime molds are able to deal with environmental issues as a group that no individual could possibly handle. Let’s see what would happen if any of these rules broke down. As an example, we'll assume the puddle where the slime mold cells live is drying up.

    If Rule 1 breaks down, as conditions worsen in the environment, each individual slime mold may recognize the distress, but never communicate it to any others. There is no way for the other slime molds to identify where to go to solve the problem. As the puddle dries up, the individual slime mold cells are incapable of independent movement of any distance. They all dry up with the puddle.

    If Rule 2a breaks down, the individual cells acknowledge the problem and even communicate that out to the others. No cells respond to the original enzyme message. Without feedback, there is no concentration of the enzyme in any particular area. Even if a few cells in the area gather together, critical mass is never reached and the cells are still incapable of independent movement of any distance. Again, they all dry up with the puddle.

    If Rule 2b breaks down, even though the first cell communicated the problem and the other cells picked up the problem and repeated the message, they never come together. The individual slime mold cells can complain all they want, but if they don’t come together to do something about it, the individual slime mold cells are still incapable of independent movement of any distance and so they all dry up with the puddle.

    You can see how imperative it is for slime molds to follow their rules. Now, let's take a look at software developers and see if we can extrapolate what lessons they might take from the lowly slime mold.

    Software Developers
    People are a little more complicated than slime molds, but we can successfully run a software development project with rules only a little more complicated than slime molds. We call our rules Scrum.

    The customer emits his virtual enzyme by saying, “We have a problem (or we want a new feature, a change to a program, a new product to sell, etc.).” In Scrum, we call this a backlog item.

    The software developers respond, saying, “We have a problem to solve. Let's get together.” We call this a sprint planning session.

    We create a small colony of individuals that together has capabilities far beyond any of the individuals themselves. We call this a Scrum team.

    Then we take action and start moving. We call this a sprint.

    As we are moving, we keep the feedback loop running. We get together everyday. We check in with how the individuals are doing on this journey and see if we need to change anything. “What did I get done yesterday?” “What will I do today?” “What's getting in my way? (I have a problem, I need help.)” "How are we doing on solving our problem?" "Do we need to raise the call louder to bring in other help from outside the current group?" We call this the daily Scrum meeting. The ScrumMaster is the enzyme that goes outside of the group to get more help if needed.

    When we get where we’re going, we stop to make sure we’ve solved our problem. We call this a sprint review. Being a little more sophisticated than slime molds, we also look back on what we've accomplished and try to identify better ways to solve similar problems in the future. We call this the sprint retrospective.

    Now, if our problem is truly solved, we may disband the current “colony” or choose to take on another problem.

    Self-Organizing Systems
    Slime mold colonies and Scrum teams (and many other agile teams) are self-organizing systems. The results from these types of systems are not caused by leaders or managers. Results emerge as a result of interactions between the individuals on the teams or colonies. Individuals within the system need to follow a set of rules of interaction that allow feedback loops to be created and to grow. New behaviors and new capabilities emerge from these feedback loops.

    When adopting Scrum, it is important that a team consistently follows the basic Scrum rules. The “right” rules create positive feedback loops that allow the systems, the “colonies,” to achieve results that are not even in the scope of the individual's capability. Not doing these simple things can create feedback loops where things spin negatively out of control and add to the problems. (Think of leaving out Rule 2b for the slime molds.) The Scrum rules have been shown to work. When fully adopted, they have been shown to create positive feedback loops that lead to exponential increases in performance. New behaviors and capabilities emerge from the team that the individuals did not know existed. It takes some time for critical mass to be reached. It takes time for the colony to form. It takes time for new capabilities to emerge.

    As humans, we have the ability to inspect how the rules are working and decide whether to adapt them to our individual situations. Inspecting and adapting are what allow humans to continuously increase our capabilities. However, do not be too hasty when modifying or discarding any of the basic Scrum interactions. Give your individual cells time and resources to reach the critical mass where they can go where no scum has gone before.