There. I said it. Agile is not the be all, end all solution for your project woes. It’s not the ultimate answer to the question of building software. On-time, within budget, highest quality; these are no more promised in a project done via Agile methods than one done more classically.
One thing that really needs to be understood here is what is meant by “Agile.” I have seen people use the word Agile to refer specifically to Scrum more times than I can count. (Pro-tip: this is wrong, just wrong.) Many use Agile in reference to a family of tools. Agile is also used to denote a family of practices and procedures. This isn’t wrong per se, but it doesn’t tell the whole story.
“Agile” was coined with the Agile Manifesto. Imagine what they were trying to define. They saw the failure of these rigid project management processes. They had all been working software projects for years. Most of them had come up with different ways to approach those projects. They didn’t come up with this “Manifesto” in a void. They looked at all of their approaches and distilled the most common and valuable parts. The result is the manifesto. They needed a name for it. Attempt to read the manifesto without the title. It gives a sense of flexibility. This is where the word “Agile” came from. It came after the manifesto – not before. (Disclaimer – I was not there. I have read accounts and histories.)
Insanity: doing the same thing over and over again and expecting different results. – Albert Einstein.
Your project will not be saved by “Agile.” If you rethink your project with a specific mindset the outcomes will likely change. If that mindset was not Agile before, but is now, then Agile will likely provide a different outcome for your project. This is not Agile saving your project. This is you and your team saving your project. This is using all available tools, techniques, and processes to achieve the best possible outcome.
This flexibility to use any and all tools is core to the Agile mentality. A true Agilist will not be afraid of suggesting rigid processes when required. The problem with much of mainstream Agility is that it goes too far. It has lost sight of the goal, delivering the most value in the shortest sustainable time. It is caught up in trying to make sure everyone is always flexible and ready to change. It is only allowing Agility using “Agile” tools, techniques, and processes.
“Agile” is a summary of an elevator pitch. It is not a specific process, tool, or framework. At most it is an approach, a mindset, or a set of attributes. At the least it is a single word summary of an idea. An idea is not going to cure cancer. The implementation of that idea might.