After roughly 20 years, agile software development has wheedled its way into most every developer’s mind as The Way Good Software Is Done. Like flossing, while we can all agree agile is a good idea, we’re not quite up to snuff on keeping all our teeth in our heads, so to speak.
A recent Gartner survey [registration required] had 37 per cent of respondents saying they were doing agile, while 45 per cent preferred to float along with the traditional “waterfall” approach (the remaining said they were doing “lean,” “iterative,” or the always delightful “other”). While this isn’t world domination, a 2015 report put waterfall at 56 per cent.
Survey data like this can be dicey, and it’s best to treat them more like a wet finger in the wind than as rigorous science. That said, the wind seems to be blowing in agile’s direction.
“I think from a tactics perspective, Agile is increasingly a ‘solved problem’,” said Forrester’s Jeffrey Hammond when asked about agile adoption in the industry.
“We know many practices that work, and that have been well proven in the field,” he added.
Proven as those techniques may be, once again, loose meatware is catching in the gears of progress. As Jeffrey adds, “from an adoption standpoint, Agile is a ‘work in progress’ mainly because Agile is as much about cultural transformation as it is tactics.” Cultural transformation: it’ll get you every time.
Indeed, looking back at that 2016 survey, you see that while easier practices like unit testing are widely practiced, onerous practices like continuous delivery and pair programming are mostly ignored by the buffet agilists. Agile is taking its time along the innovation curve, but one gets the feeling that the down-slope folks are methodically being routed, if only through the slow-but-steady siege tactic of retirement.
Why do some companies excel with agile and others see virtually no improvement? The difference is culture and an understanding that agile is a framework for deep cultural change instead of a process or set of practices to increase efficiency.
Processes and methods can become stale and rote, and can stifle innovation—even processes that were initially developed to be agile. An agile culture, however, will continuously improve and adapt without the need for periodic change initiatives.