Miko from Gradle has become the latest to eulogize Agile in a controversial blog he posted last week.
He makes the argument that Agile’s death was an untimely one, brought about by years of neglect and abuse. Miko says that “the word Agile has come to be somewhat meaningless, which is why it’s time to move on from it.” So many development teams for lack of a better word claim to be “Agile” and in some ways it’s often used as a way to excuse lack of visibility, lack of planning and by individuals who haven’t read the Agile Manifesto or don’t have a particularly deep experience shipping software at scale. So when a word loses all meaning, it’s time to move on.
“Now that Agile is dead,” he continues tongue in cheek “we got to see how many people come to the funeral of Agile.” Agile meant so many different things to so many different people, but Agile didn’t have very much sponsorship in the executive suite. Agile was a collection of essentially rebellious methodologies, and what Agile rebelled against was worthy for its time, and Agile did its job to topple the tyranny of Waterfall software development. But Waterfall died many years ago, and so the rebellious core of Agile didn’t produce the expected freedom by itself.
So how does Miko suggest we move forward as an industry in the aftermath?
The paradigm of “Continuous Delivery (CD)” seems to be the logical successor to Agile according the Miko. Continuous Delivery provides an umbrella term that does not specify methodology–and doesn’t require much of a manifesto. Everything you need to know is in the title–you just deliver shippable software in as continuous of a way as possible. This allows a team to pull whichever Agile principles and methods needed in order to achieve that goal. This addresses one of the complaints of Agile, which is that it became a religious movement with gurus–and that these highly paid Agile gurus would come with one-size-fits-all solutions for development teams which were hard to realistically fit to real-world development.
Miko goes on to explain the difference between “Agile” and “Continuous Delivery” as follows:
The thing that has shifted most materially to support the need for a new term is the tooling. Agile tooling was mostly focused on human productivity and were based on shuffling Trello cards and the like. The age of Continuous Delivery is now being ushered in with a recognition that we are now squarely in the age of DevOps.
I found the essay to be some good food for thought and while arguments can definitely be made on some of the points, I think we can all agree that there are lessons here in how we must utilize the latest trends in the industry.