The agile approach to application development currently being practiced bears little resemblance to the lofty ideals of the Agile Manifesto, prompting some to pronounce agile dead.

Is the Agile Manifesto dead?

Concerns over the manner in which the agile approach to software development is being practiced these days prompted Andrew Hunt, one of the founding authors of the original Agile Manifesto, to recently label the movement a failure. In doing so, Hunt gave fresh voice to a sentiment that several others within the developer community have expressed with growing frustration in recent years.

The big question for them and for all agile practitioners who agree is: What now?

Where agile went off track

Fourteen years after the Agile Manifesto was first published, there's little doubt in Hunt's mind that agile application delivery practices, at least as originally conceived, have gone completely off track. What was supposed to be an adaptive, collaborative, and customer-centric approach to development has instead become an over-hyped, buzzword-ridden exercise that delivers almost no value to the organizations that have embraced it.

According to Hunt, the word agile "has become sloganized; meaningless at best, jingoist at worst. We have large swaths of people doing 'flaccid agile,' a half-hearted attempt at following a few select software development practices, poorly."

The problem, Hunt tells TechBeacon, is that agile requires developers to think and be adaptive, when most simply prefer to follow a narrow set of rules for a set of practices because it's safer.

When rules aren't meant to be broken

When developers first start with agile, some of its core concepts, such as inspect and adapt, are abstract ideas at best. It takes a certain amount of time and experience before practitioners can get to a point where they're able to recognize, respond, and adapt to changes in the software product under development on their own.

So, it's necessary to have simple rules for beginners to follow while they come up to speed with the development method. "As a beginner you need to know how to use the brush," explains Hunt. "You need to know how to mix the paint before you attack the blank canvas."

But it's when developers get stuck with these rules and refuse to move beyond them that agile becomes more static in nature. "There's an interesting dynamic here. When you are a novice, all you can do is sit and follow the rules, because you don't have the skills," he says. "[But at the same time] we don't want people to stupidly, slavishly follow rules, because by God, that's what the book says. Yet, there's an awful lot of that going on."

It makes the problem worse when people pick only a handful of rules they feel like following and ignore the harder ones. "If you look at the adoption statistics, it seems to me that most people are just doing parts of scrum and saying 'Oh yeah, we are agile'," Hunt says.

High adoption rates, low-quality agile

Hunt's gripes with agile as practiced today appear to be at odds with agile's adoption rate within enterprises. A recent HP survey of more than 600 software developers and IT professionals show that agile is replacing traditional waterfall development methodologies as the new norm in many organizations. Nearly two-thirds of respondents described their organization as either "pure agile" or "leaning toward agile."

Another 24 percent used at least some agile practices in their software development processes. Only nine percent identified themselves as still using a pure waterfall or leaning toward a waterfall approach. Much of the adoption has happened in the last five years and appears to be motivated by the belief that agile practices can improve cross-functional collaboration, software quality, and customer satisfaction, while shortening time to market.

But what's actually happening, according to Hunt and others, is quite different.

Dave Thomas, coauthor of Hunt's The Pragmatic Programmer and one of the 17 authors of the Agile Manifesto, is as scathing as Hunt in his indictment of current agile development practices.

A year before Hunt declared today's agile practices a failure, Thomas blogged about the death of the agile application delivery process. Like Hunt, Thomas believes the word agile has been subverted to the point that it's meaningless. It has, he says, "become a marketing term for anyone with points to espouse, hours to bill, or products to sell."

"What passes for an agile community seems to be largely an arena for consultants and vendors to hawk services and products," Thomas notes in his blog, while calling for the word agile to be retired in the context of software development.

Real agile means real change

Tim Ottinger, senior consultant at Industrial Logic and coauthor of Agile in a Flash: Speed-Learning Agile Software Development, sees the issue as being caused by a lack of any particular technical practices, where change and improvement are optional. A lot of what's going on with agile these days is almost waterfall development with additional overheads like sprints and iterations, he tells TechBeacon.

"There's a lot of conformance scrum or compliance scrum going on where people take a stand-up meeting and then go and sit in their own cube like they always did," with little of the interaction that is fundamental to agile practices, he says.

"They haven't taken any technical practices at all. They aren't test-driving at all. They are not an empowered team. The first thing to know about agile methods is that they're team-based and focused on serving a market or customer, Ottinger says. It emphasizes the idea of groups of people thinking and working together to deliver value quickly. "Nowadays, it is not a thinking system. It is just a way to pressure programmers to type faster. The idea of teamwork is totally absent."

In fact, just the reverse is happening. Often, contracts are developed without customer input at all and teams work remotely with little interaction. "How many times have you seen an electronic Kanban board where they have per person swim lanes? That is separating people and their effort completely from each other. I would say agile practices today are a photo negative of what it is meant to be."

Just as there is an Agile Manifesto, there's even an Anti Agile Manifesto that attempts to explain what its authors believe are the true meanings of several popular agile buzzwords.

For instance, "epics are really just projects," the Anti Agile Manifesto notes, wryly. And stories are just use cases; sprints really just mean work; stand-ups mean meetings; and backlogs are really just to-do lists, the manifesto notes, in tongue-in-cheek fashion.

Growing new methods or reinstating the old ones

Hunt believes the time is here to fix the problem, and he even has a proposal for how agile processes can be tweaked. He has dubbed his loose collection of ideas the GROWS Method: Growing Real-World Oriented Working Systems. He has given his nascent method a name only because he thinks branding ideas and concepts makes it easier to get people to start thinking about them.

The core idea behind GROWS is to get developers to start thinking about software not as something that's designed or built but as something that constantly grows and morphs. The focus is to get development teams to start thinking about the need to base all decisions and actions on real-world evidence and feedback from customers. The model will provide support for beginners while accommodating individuals with more advanced skills, he says.

"What I am trying to do in a nutshell is to give voice to the implicit stuff around agile that everybody in the field knows about, but it doesn't have a name," Hunt says. "GROWS creates a meeting place for good ideas that are out there."

Ottinger says one of the best ways to revive agile is to reinstate the original values. More examples are needed, he believes, of previous successes with agile, which could reveal how to replicate those results in a more intensive fashion. Agile practitioners need to be willing to modify things if needed to remain relevant in a world of lean startups, cloud computing, mobile development, and social computing, he says. "If we aren't moving forward, we become irrelevant."

The evolution of agile

Obviously, not everyone agrees that the term "agile" is dead or that it's seriously off track. Shaun Barker, head of engineering at blur Group PLC in Exeter, UK, says agile isn't dead; it's misunderstood.

"Agile and lean methodologies followed correctly can lead to successful software delivery," Barker says. "The reason that it is misunderstood has a lot to do with the naming of the methodology and nothing to do with the success of the actual methodology itself."

Agile has evolved from ideology to methodology over the years, and there are now various types of agile development methodologies such as XP and scrum. "These forms of agile are well designed, robust, and cohesive solutions far above and beyond what was outlined in the initial manifesto," says Barker. "Agile is not dead; it just has a silly name. Agile and lean methodologies are key enablers to the future and success of software delivery."

According to Jinesh Parekh, CEO of Idyllic Software, agile might not be a silver bullet, but it isn't dead yet. "In the end, agile is a process. There is nothing wrong with following the process, but there is such a thing as applying a principle too dogmatically. Understand why those processes were made and see how you can achieve the intended outcome without compromising on quality and time."

So, is the term "agile" really dead, or is it just misunderstood?

Topics: Agile