The Five Stages of Agile Software Development
In our office yesterday, we were discussing our current epic. One of the engineers asked "Why is no one panicking?" One of our other engineers replied that "We've moved beyond panic to acceptance." At this point, we had a good laugh about the Five Stages of Agile Software Development. They go something like this.
- Denial
In this state, everyone is in denial that the project is going to be over-budget or late. There are a lot of high hopes. One thing to note about this stage is that upper management never really leaves it. In fact, our current epic is not likely to ship on time, nor is it likely to ship barely late. - Anger
In this stage, developers get angry with the way things are going. There tends to be a lot of tension. There tends to be a lot of "Hero Sprints." There tends to be a lot of negativity. - Panic
In this stage, developers are now very worried about whether goals are going to be met, or if their jobs are going to continue to be there next sprint. This stage tends to have the most "Hero Sprints" of any stage, as the panic sets in and everyone tries to get everything done forever, much to the chagrin of unit tests, documentation, and communication (none of which end up getting done.) This stage generally creates the most technical debt. - Acceptance
In this stage, developers have come to accept the inevitable: shipping a poorly built project because all of the upper management are still stuck in stage one. It's plodding, one foot in front of the other, until the ship date is reached. There is a level of apathy here, as developers have resigned themselves to not shipping what they feel should be shipped because of the Iron Triangle. - Resume-writing
In this stage, developers start polishing their resumes and learning new skills. Developers become secretive and quiet. This stage generally has the most PTO days of any stage, as people are getting ready to move on.