Saturday, April 26, 2014

Agile - principles make the processes work

Over the past month or so, I've seen a number of articles pop up announcing the "corruption" and "failure" of Agile. Here are a couple that specifically caught my eye:

Some thoughts from Mike Hadlow detailing "Why Agile has failed":
"Agile has indeed become a cargo cult. Stripped of actual software engineering practices and conducted by ‘agile practitioners’ with no understanding of software engineering, it merely becomes a set of meaningless rituals that are mostly impediments and distractions to creating successful software ... If your role is simply asking for estimates and enforcing the agile rituals: stand-ups, fortnightly sprints, retrospectives; then you are an impediment rather than an asset to delivery ... the word ‘agile’ has become so abused, that we should stop using it."
Additional thoughts from Magdy Hanna taking "A close look at the Agile Manifesto after 13 years":
"Recently, I was asked in an interview whether I believed that the Agile Manifesto is a good starting point for people who are new to agile. I found myself saying that I hope our young software engineers do not see the Manifesto! ... it ended up with a proliferation of systems that have no documentation and are totally unmaintainable ... This is exactly what has given management the excuse to push releases to production even with minimal documentation, minimal levels of discipline, and no repeatable processes being followed ... Let’s be very careful before we decide to adopt these practices."

Some pretty serious charges being leveled against those of us (including yours truly) who consider ourselves to be "Agile practitioners". As a member of this group, please allow me to respond:

I agree with you all. You're right. Well, partly right at least.

"Bad Agile", as these people seem to have experienced, is just that - bad. Hadlow rightly states, "it merely becomes a set of meaningless rituals that are mostly impediments and distractions". So what happened in these situations the authors describe? Why is it that some shops and teams have superb success with an Agile approach and others don't?

The truth is, it has nothing to do with the processes you use. To succeed with Agile, you must consistently apply the principles to your work.

This is well stated by Andrew Binstock in his piece on exposing "The Corruption of Agile":
"The fascination with today's way of doing things and the view that it is the one true path to good code is a seemingly permanent part of the programming culture. But it has been greatly abetted by the legions of Agile consultants. By stressing the practices, they have corrupted what Agile was about. It's important to remember that the Agile manifesto stated values, not practices." ... "Agile was a personal practice. Implicit is a personal way of orienting oneself towards a process that accepts, even welcomes, change." ... "you could have a fully Agile site without TDD, continuous integration, or scrum. Likewise, you can have a site that uses all three practices, but cannot adapt to changes and is wholly inflexible in its work — so, not at all Agile."

Consider the four "pillars" of the Agile Manifesto - People. Collaboration. Responsiveness. Results.

Consider The Essence of Agility - Observe. Orient. Decide. Act.

If you find yourself or your team struggling with Agile and feeling like it's a "failure", consider your situation. Are you focused on these principles? If not, perhaps it's time to respond and re-orient.