I have spent a great deal of time lately reading blogs predicting the end of Agile. There are a lot of good people making a lot of good points but I think that there are some major problems the arguments predicting the end of Agile.
There is a very real tendency for people to confuse Agile (the philosophy) with Scrum (a process created to achieve the principles of Agile). Agile is only 16 statements – 4 values and 12 principles – nothing more. Of those 16 statements I am sure that there are some who would argue against them, but these would be a fringe element. Don’t believe me? Follow the links above and see which, if any, a rational software developer or business person would disagree with. You can disagree with them, but principles, in and of themselves, cannot fail.
Believing in Agile principles is like believing that losing weight will give you better energy and overall health. Behind the principles of losing weight there are a number of diets that have promised that they will lead to weight loss. These diets, like the processes used to achieve Agility, can and should be hotly debated. No one diet works for each individual as no one process works for each and every development team. The proof in a diet (and in a software development process) is in how well it helps one to achieve the goal of losing weight and staying healthy.
There are many reasons a diet or an Agile implementation could fail. One is that it is not sustainable. While it may be great that we can lose weight quickly, there is little long term benefit if our starvation diet cannot be followed long term. I see this frequently in Agile process implementation. Everyone is initially excited and sees short term improvement. However, like a crash diet, the team and/or organization is not structured well to sustain this initial effort.
Another way a diet fails is that it is cheated on. I cannot imagine how someone could expect to lose weight by constantly cheating on their diet. The only way to prove that a diet does not work is by trying the diet as outlined first and monitoring the results. After successfully sticking to a diet over a long term, then an individual has the opportunity to slowly modify the diet to fit their particular long term needs.
It is ludicrous to say that changing diet doesn’t have its benefits, especially when one has never even really tried the diet. The same holds true with Agile. Agile principles can be achieved through any number or combination of processes so we cannot claim that Agile doesn’t work. What is more idiotic is the claim that just because one implementation of Agile (usually Scrum) poorly performed means that an entire philosophy is wrong. First actually try Scrum and then form an opinion.
Just like diets, Agile implementations take a great deal of discipline and major changes to the existing customs and behaviors. Just like diets, most people who attempt them will actually fail – not because the diet (or particular process) does not work, but because the people have not worked it