Agile Tips
Unlocking Agile Wisdom: Insights from Decades of Experience. Scott Bain is a 44+ year veteran of systems development.
Agile Tips
#85-Common Misconceptions About Agile
This week I'll examine the five most common misunderstandings about agile processes. If you've experienced push-back, especially from your management, about going agile, this podcast should help.
Common Misconceptions About Agile
As subscriptions to this podcast have grown steadily, I have begun to see an increase in the number of questions that I am asked about agile processes. Most of these are simply an opportunity to deepen people's knowledge about agile, but quite frequently they reflect some very common misunderstandings about what agile is and how it works.
Because of this I've decided it would be a good idea to address the five most common misconceptions that people have about agile. Some of these lead people to think that agile is not a good idea, or that they should be wary of it if they are in a leadership position.
The first is that agile dictates that there will be no planning before development begins. This is completely untrue and in fact the opposite is what really happens in an agile process. We do not eliminate planning, we increase the amount of planning we do in that planning is continuous and ongoing. Rather than locking into a fixed plan up front, we constantly redress our plans as we learn, as the marketplace changes, and as innovative ideas are suggested.
Similarly, there is a suspicion that agile eliminates the deadlines that allow predictability for management. In fact, agile increases the number of deadlines that management can use to track the progress of the team because it works in increments and each increment includes a deadline at the end. Time estimations are notoriously incorrect, and so if we plan for a deadline in the large scale, it will almost always be seriously flawed. Each agile deadline is an opportunity to re-examine the velocity of the team, the dependencies that may have been missed, and for all stakeholders to continually reevaluate the priority of their requirements.
Another concern that seems to be commonplace is that agile eliminates necessary documentation. Agile not only produces documentation, but it is documentation that is far superior to anything that has been done in the past. This is because the bulk of the documentation, or specification, of the behavior of the system is recorded in tests that can be executed against the system. Those tests contain far less ambiguity than traditional documentation does, and they can be verified against the system at any point in the future as the system is modified incrementally. Traditional documentation gets out of date with the system, or it is unclear whether it is up to date. Executable tests can prove themselves automatically.
Because Scrum was probably the first truly popular agile framework, people equate agile with Scrum. Agile is a mindset, a way of thinking and a set of distinctions about the way our work is done. Scrum is a framework that can allow us to organize our agile activities, but it is only one of them. Others include Flex, Kanban, Safe, and Lean, just to name a few. Every agile process is different, and so selecting a framework before you know the nature of your process is a common mistake. Figure out what agile means for your organization, and then select the framework that will empower that approach the best way.
Finally, I have heard people say that agile is all about speed. Being agile will not instantly increase your velocity, but it will ensure that you are delivering value more quickly and more regularly than large processes like the waterfall ever could. In some cases, agile will actually slow you down, because we are constantly learning and reprioritizing our work. But that means that we will produce far less waste, which at the end of the day is more important than sheer velocity.
Agile works. In my experience it really is the only thing that could ever work. By that I mean that every process I have ever participated in that ended up being effective turned out to be agile whether that was the intention or not. Understanding agile simply allows you to get there more quickly.