Critical.
Authoritative.
Strategic.
Subscribe to CIO Magazine »

Cargo Cult Methodology: How Agile Can Go Terribly, Terribly Wrong

Software development is prone to fads, going back to the days of "goto Considered Harmful." One current fad goes under the general name of "Agile methods;" some of its variants are extreme programming, the SCRUM methodology and Alastair Cockburn's Crystal Clear Methodology.

Now, I'm the last guy to run down Agile methodologies, but. . .let me tell you a story.

About two years ago, I joined a project to build an appliance to Do A Good Thing. I'm changing the names and details to protect, well, primarily me, but innocents were involved. In any case, the details of what we were doing are unimportant; what matters is how we did it.

All of us team members were survivors of another much larger project. That project had been done with outsourcing to a CMM Level 5 organization, with great care in the methodology at our end and with careful detailed project management overall. The project consumed tens of millions of dollars and years of overtime. It failed utterly.

The whole experience was traumatic. None of us wanted to repeat it. Some of us advocated adopting Agile methods, which had generated plenty of good reports. Since it was clear that the last thing anyone would have said about the last project was that it was "agile," adopting Agile seemed like a good idea.

We couldn't adopt an Agile methodology whole, though. We had to adapt to our corporate environment. User stories or use cases sounded like a great idea; we'd do use cases. Continuous integration would be great. Incremental development was a good idea too, so we'd do that. And extreme programming uses a morning "stand up meeting," which some of us had used before; we'd have a standup meeting.

The problems started when we tried to integrate these methods into our existing environment. First, management demanded that we estimate — and commit to — a schedule and budget. You can't do that without knowing what you'll be doing, so we built our use cases and created a schedule. Several months later, we had hundreds of use cases, and the local Microsoft Project wizard had a schedule estimated down to the day.

The schedule ran for more than a year. We wanted to do incremental deliveries, but "making a delivery" into the rest of the organization required additional effort. There was no scheduled time for that either; besides, it was silly to go through all that effort repeatedly. The schedule ended up with four increments, months apart. Of course, as the months went by, we learned more about the problem, and we had changes requested; that meant more use cases and more effort. We slipped the schedule somewhat, but there was a lot of whining in upper management about how we'd made commitments, so why couldn't we keep them? Besides, time to market was critical.

We based the project on an existing purchased code base, so the initial builds came relatively easily. However, we hadn't really allocated any effort in the schedule to the actual build and continuous integration support — we'd assumed the build would be right the first time. We also budgeted for a full-time system administrator, but then we lost the position, so we'd just have to make do on our own. Of course, system administration wasn't on the schedule either, but by now we'd committed, and commitments are important. End result: We used up the slack in the schedule.

We had arrived at an "Agile project" in which we did all the requirements up front and committed to them, had a "let's pretend" schedule that allocated time for a year in advance but didn't recognize all the tasks that were needed, and delivered our increments months and months apart.

Now this project was a "success". We delivered on time (at least after the last big slips), and the product is shipping. It just required major slips, big cost overruns and a month of seven-day weeks and 16-hour days. Over the year-end holidays.

We didn't have an Agile project at all: What we had was an Agile methodology cargo cult. Cargo cults developed in Melanesia, starting in the 19th century, but really grew during World War II. To the locals, the war meant cargo planes and cargo ships arriving, carrying everything from canned pineapple to Quonset huts. And it was good.

Then the war ended, and the cargo stopped. The locals responded by building their own runways, with airplanes made of bamboo and palm fronds, in hopes of attracting it back.

We heard that Agile methods were good, so we adopted Agile methods. But we managed to apply them in such a way that we actually built the project in a top-down, waterfall death march.

Now, class, what have we learned from this?

Join the CIO Australia group on LinkedIn. The group is open to CIOs, IT Directors, COOs, CTOs and senior IT managers.

Comments

Post new comment

The content of this field is kept private and will not be shown publicly.
Users posting comments agree to the CIO comments policy.
Login or register to link comments to your user profile, or you may also post a comment without being logged in.
Related Coverage
Related Whitepapers
Latest Stories
Community Comments
Tags: agile, project management, software development
Latest Blog Posts
Whitepapers
  • Protecting Generation Web
    From data privacy to personal safety issues, cyber-bullying, inappropriate content and malware, schools are facing an increasingly difficult task when it comes to allowing young people to spread their online wings without compromising their safety and personal development. The reality that most schools are catering to the needs of mixed age groups and abilities, and it’s easy to understand why a simple stop and block approach won’t work. Learning environments are, by nature, flexible. It stands to reason that the IT resources used in them should be flexible too. Read on.
    Learn more »
  • Fixing Your Dropbox Problem - How the Right Data Protection Strategy Can Help
    It’s estimated that more than 50 million people have used public cloud storage services such as Dropbox to share and exchange files. Public cloud services are so easy to use that their openness can undermine existing IT policies regarding the transmission of confidential data. With data volumes threatening to overwhelm onsite storage, IT managers are looking to find a solution that’s affordable and secure. This paper details a simple three-step approach to helping users manage access to the public cloud without placing your data or your business at risk. Read on.
    Learn more »
  • Using Application Control to Reduce Risk with Endpoint Security
    Unwanted applications, like games, result in productivity loss. This is often the primary consideration when applying application control. But unauthorized applications also increase your company’s risks of malware infection and data loss. This paper details how endpoint security solutions that incorporate application control provide the most efficient, comprehensive defense against unauthorized applications.
    Learn more »
All whitepapers
rhs_login_lockGet exclusive access to Invitation only events CIO, reports & analysis.
Recent comments