In a recent article on Forbes, Jason Bloomberg makes the point that despite technology typically refreshing every three years or so, Agile is still the dominant method used to develop software. Bloomberg goes on to list some major issues with Agile that have come up over the years.
- Lack of focus on software architecture.
- Emphasis on one-off software projects as opposed to building reusable code.
- Positioning the software development team as a self-contained group, as opposed to participants in a broader collaborative effort.
- Agile calls for self-organizing teams, but there remains no clear understanding of how best to self-organize.
- Agile calls for the stakeholder or customer to be an active part of the team – but stakeholders have always resisted this participation, and when they do join the Agile team, they struggle with their role.
Despite Agile’s shortcomings, there are few that would suggest moving back to waterfall. Instead many are turning to Lean, which according to Bloomberg, is an outgrowth of the Lean Manufacturing movement that Toyota championed in the 1950s. Applied to software development, Lean focuses on eliminating any activity that doesn’t add value right away, and emphasizes how the team operates as a whole.
According to Martin Fowler, “There was a connection between lean manufacturing and agile software from the beginning in that many of the developers of the various agile methods were influenced by the ideas of lean manufacturing.”
Today, software development best practice requires breaking down the silos of development and quality assurance (something Agile purported to accomplish), as well as IT operations, security, and even the lines of business that drive development in the first place. DevOps is the best word we have for such a cultural shift.
However Bloomberg is clear that DevOps does not replace Agile. If anything, DevOps is ‘Agile on steroids,’ as it reduces Agile’s delivery timeline from weeks to goal of ‘continuous delivery.’
Despite their close relation there is much to DevOps that is not part of the Agile movement, and vice-versa. Continuous delivery, in fact, is more of a Lean principle than an Agile one.
Justin Arbuckle of Chef Software suggests that the next step is a convergence of Agile, Lean, and DevOps principles. “We will see that their practices become so intertwined in reality as to merge into the search for a single outcome,” Arbuckle says. “High velocity development in teams that continually improve not only the product but themselves too. I refer to the convergence of these outcomes as ALDO: Agile, Lean, DevOps Outcomes.”
Bloomberg concedes that we have a lot of work to create this convergence, after all, Agile is confusing enough on its own. Mash it together with Lean and DevOps and you have a recipe for chaos.
But he says that choosing not to implement this new set of practices, is becoming the increasingly risky choice in today’s rapidly changing, software-driven world. Enterprises in particular are rapidly finding that not making such a move is even riskier than jumping on board the Agile/Lean/DevOps train. “One thing’s for sure,” concludes Bloomberg, “we’re in for a bumpy ride.”