Agile adoption can be challenging for a team, but not necessarily for the reasons we may think. You will often hear that agile is not intended to be prescriptive. Yet teams often feel that by simply following the "Agile Guide Book," they will solve their current process problems. The Buddhist parable about the eighty-fourth problem gives insight into why this causes many teams to fail when adopting agile.
A man once came to see the Buddha to get help with his problems. After the man had told the Buddha one of his problems and asked for help, the Buddha replied, "I cannot help you get rid of that problem."
The man was surprised that the Buddha could not help him in this regard, but he told the Buddha about another problem; he thought to himself that the Buddha should at least be able to help him with that problem. But the Buddha told him, "I cannot help you with that problem either."
The man started to get impatient. He said, "How can it be that you are the perfectly Enlightened Buddha, when you can’t even help people get rid of their problems?" The Buddha answered, "You will always have eighty-three problems in your life. Sometimes a problem will go, but then another problem will come. I cannot help you with that."
The baffled man asked the Buddha, "But, what can you help me with, then?" The Buddha replied, "I can help you get rid of your eighty-fourth problem." The man asked, "But what is my eighty-fourth problem?" The Buddha replied, "That you want to get rid of your eighty-three problems."
As with the parable, agile will help you solve the eighty-fourth problem but cannot solve your eighty-three problems. Agile simply attempts to provide guidelines that can help a team be successful. Success depends on the team's using those guidelines to identify what works for the team and what adjustments need to be made. In other words, agile is not a silver bullet.
The parable emphasizes the importance of lean thinking. Constant attention and tuning of the process are the only ways to ensure continuous improvement. While Scrum is just one of many agile software development methods, the techniques that it recommends are great examples of how agile helps a team to identify and resolve their problems. Here are just a few of these techniques.
- Backlog grooming: Estimation games like planning poker help teams identify and resolve problems with work that is to be done in upcoming sprints. This avoids delays and identifies problem areas early.
- Sprint planning meeting: Determining what work can be completed in a time-boxed increment (sprints) allows teams to identify any issues with scheduling and resolve them early in the project.
- Sprint retrospective: Reflecting on what went right and what went wrong is the only way to find and eliminate waste. Taking the time to identify what works and what doesn't is the only way to make continuous process improvements.
Agile can help a team identify and eliminate the problems with their process, but an agile framework can only provide the guidelines. The team must be willing to invest the time and effort necessary to identify and resolve the remaining eighty-three problems.
Jacob Orshalick is a software consultant, open source developer, speaker, and author. He is the owner of solutionsfit and co-author of the best-selling Seam Framework: Experience the Evolution of Java EE His software development experience spans the retail, financial, real estate, media, telecommunications, law enforcement, and health care industries.