The Agile Stalemate
The current state of Agile, with both its advantages and drawbacks, is significantly influenced by Scrum, the most widely used Agile method.
As a drawback, after some (easy to adopt) first steps in Agile introduced by Scrum, many teams have no clear vision of how to advance with the process improvements and with Agile. As a consequence, we could say that the current state of Agile is a stalemate.
A significant part of the parts missing in many Scrum-based Agile adoptions, such as XP (Extreme Programming) engineering practices, was described by Robert C. Martin in his article The Land that Scrum Forgot.
The Advantage of Scrum: First Steps in Agile
Beyond the serious existing criticism, Scrum offers at least the following advantages:
- Agile has become a widely known approach because of a significant number of Scrum adoptions (or adoption attempts)
- Scrum is easy to adopt
- Scrum adoption offers some important quick benefits
This strong ability of Scrum on making the first Agile steps is too often underrated. The main advantage of Scrum practices is not related so much to its direct benefits, but more to the elimination of the side effects of many bad legacy practices that are thus being replaced. For example, if a team uses the Agile-enabled self-organizing power to make poor process choices and disregards the practices for collaborative work, it will have worse results that a Scrum-based team that offers a base for collaborative work.
A team using Scrum could go beyond the stalemate situation by using the XP engineering practices–refactoring, TDD (Test Driven Development), Pair Programming, and other–and/or it can go even further with Disciplined Agile (DA). Disciplined Agile has more practices, makes the Agile habits explicit (as Agile life-cycles), and offers guidance support instead of prescriptions.
The following sequence for adopting Agile, could be common, but is not an optimum approach–to a certain degree it inherently results in a waste of resources and in delays:
- First adopt Scrum for easy first steps
- Later on adopt complementary XP practices
- Finally adopt DA to fill the gaps and adapt the process to the context
From a DA adoption point of view, we need to find an optimized approach that must have the following two advantages:
- It enables quick first steps (similar with Scrum)
- It no longer represents a stalemate situation
The First Steps: a Base that Enables all the Others
DA offers a good learning-oriented process decision framework that will help the teams to make their own process decisions and further improves their process. However, the first steps would be the most difficult ones and the main questions that arise are the following:
“How should I start? What are the first factors that should be subjects of my choices?”
We are proposing the following Agile starting points:
- Use life-cycle and iterations as a container for the process
- Start working in a collaborative manner: non-solo work practices
- Start persistent improvement by adopting retrospectives
In the following section we will explain how the use of these quick first steps as a base will enable all the other improvements.
Start Working in a Collaborative Manner: non-solo Work Practices
Agile-based process improvements and Agile retrospectives work only if the teamwork is based on continuous and active collaboration.
The simple and rather vague Scrum practices for team collaboration have the great advantage of consistently replacing the old habits of non-collaborative work. We can easily go further and get better results by adopting Agile Modeling/Disciplined Agile non-solo work practices, that mean working with others for (few examples):
- Release Envisioning – Requirements and Architecture Envisioning
- Looking ahead look on requirements or design – Look Ahead Modeling
- Just-in-time requirements or design – Model Storming
- Pair Programming (XP practice)
The essential element is to offer guidance to the team in order start to practicing non-solo work as soon as possible.
Start the Improvement by Adopting Retrospectives
The improvement based on Agile and other sources must become continuous and permanent. The very first step is to start using retrospectives (per iterations, releases, and so on).
The teams will need these containers as a “living space” for their process options and choices. Scrum uses the Sprint (aka Iteration) as the main work container. XP goes further and has an implicit release life-cycle.
In Disciplined Agile we can find a more robust approach, meaning that we have both the iteration and also more explicit agile and lean life-cycles, whereby its selection is the team’s choice.
Ok, but “How should I start”?
For an “agile first steps” team, here is an option for the main process containers:
- The iteration – This is a generic container for not-very-advanced cases
- The agile-basic life-cycle – (this life-cycle) fits most of the cases and is similar with XP approach
As soon as possible and using proper guidance, the team should be aware of the process goals (DA makes these goals explicit) and how these goals are distributed along the life-cycle and iteration.
As a note, advanced teams could also select and use other types of life-cycles.
Just Do It!
Using this initial framework – process goals across life-cycle and iterations – the team should start working collaboratively (non-solo work practices) and start using retrospectives and other instruments to decide how to improve and adapt their process. Make sure that this approach is permanent and the process will have further optimizations.