- Dealing with the "Fog of Beforehand" One Step at a Time
- Facing the Unknown in Software Development
- How the Agile Manifesto Covers Common Anti-Patterns for Dealing with Friction
- Key Takeaways
How the Agile Manifesto Covers Common Anti-Patterns for Dealing with Friction
In 2001, proponents of different software development frameworks met at a skiing resort in Snowbird, Utah. The group spontaneously drafted a manifesto to summarize what the different Agile approaches they had invented and were familiar with shared in common. Jeff Sutherland and Ken Schwaber, who would later collaborate to release the Scrum Guide in 2010, were also present. Scrum is older than Agile, and Agile is older than the Agile Manifesto. The birth of the Agile Manifesto meant there now was a label to refer to these different approaches and what they had in common.
The Agile Manifesto includes the following four value statements:
“Individuals and interactions over processes and tools”
“Working software over comprehensive documentation”
“Customer collaboration over contract negotiation”
“Responding to change over following a plan”
Unfortunately, the Agile Manifesto is often misinterpreted. For example, someone might interpret the Agile Manifesto value as saying that they shouldn’t create comprehensive documentation. It actually means something quite different: Working software is more important than comprehensive documentation. If you are in a situation where you must make trade-offs, the items on the left are more important than those on the right. But that doesn’t mean we should completely ignore or discard the things on the left.
How does the Agile Manifesto address common anti-patterns to friction? Processes and tools are the anti-pattern of defaulting to giving more and better instructions to ensure people perform the right actions. Comprehensive documentation is the anti-pattern of spending more time analyzing when we lack information. Contract negotiation is the anti-pattern of clinging to the original contract we concocted when we lacked information. Following a plan is the anti-pattern of sticking to the plan despite discovering that our plans and actions don’t produce the desired results.
All four value statements of the Agile Manifesto can be directly related to the three-gaps model proposed by Stephen Bungay. This underlines how important dealing with friction is for an Agile way of working. Being Agile means we are capable of dealing with surprises and incorporating new information we discover and learn at every step of the way.
No matter what we do, we can never remove the fog of beforehand by wandering around in the caverns of our minds. We can deal with insufficient knowledge only by acting, taking one step at a time, and observing what happens. We can prevent the fog of speculation from entering our plans and minds. We need to be able to incorporate what we discover and learn to adjust our plans and actions so they can produce the desired results. We need to work with what we do know to discover what we do not know.
The fact we lack information and understanding before we start also has implications for our estimates and our predictions of when work will be completed. In the next chapter, we will examine how we can figure out to what extent our plans will be affected by friction. By knowing the amount of friction, we can choose the appropriate strategy that will yield the best results in our context.