Agile Zone is brought to you in partnership with:

Mike Cohn is a consultant and trainer who specializes in helping companies adopt and improve their use of agile processes and techniques in order to build extremely high performance development organizations. He is the author of Succeeding with Agile, Agile Estimating and Planning, and User Stories Applied for Agile Software Development. He can be reached through his website at http://www.mountaingoatsoftware.com. Mike is a DZone MVB and is not an employee of DZone and has posted 21 posts at DZone. You can read more from them at their website. View Full User Profile

Deciding What Kind of Projects are Most Suited for Agile

01.20.2011
| 1697 views |
  • submit to reddit

I was recently asked what kind of project is most suited for an agile approach and I’d like to address that here. In my view, the most appropriate projects for agile are ones with aggressive deadlines, a high degree of complexity, and a high degree of novelty (uniqueness) to them.

We want to use agile when we are doing something that is new, or at least new to the team building it. If it’s something the team has done before over and over then the team probably doesn’t need an agile approach. To my mind, this is where some of the manufacturing analogies come in. If we are building the same car day after day, we learn pretty quickly all the nuances of building that car. We don’t need an agile approach because the novelty of the situation is low.

Novelty alone does not mean we should use an agile process. I went to my favorite Chinese restaurant for lunch today. I ordered an entree “triple extra spicy and with jalapenos.” It was probably the first time they cooked this particular dish that way and so it was a novel or unique order. The cook prepared it wonderfully though and because I could see into the kitchen I’m sure they didn’t need a daily standup or even TDD to make my lunch. (I might have noticed a kanban back there, however. :) So, in addition to novelty, the project needs a certain amount of complexity.

One final element I believe is required in making a project appropriate for agile is urgency. The timeboxes and iterations of an agile approach are devised to keep the intensity and focus going on a project. If there’s no urgency to the project, those are unneeded.

So let’s see how these three factors–urgency, complexity, and novelty–mix on various projects, starting of course with software projects. There couldn’t be a better fit. Software projects are notoriously complex. Each software project is largely a new endeavor. And in today’s world, there is almost always a sense of urgency.

But let’s look at one other situation where we commonly here about Scrum (in particular) being applied: getting married. At least a couple of times a year I hear about a couple who planned their wedding using Scrum. There is always a wedding backlog–buy cake, pick photographer, send invitations, pick dress, etc. How does planning a wedding do against the three factors I’m proposing. Sense of urgency? Check. There’s always a deadline and it’s usually pretty fixed. Complexity? Well, it’s not like a software project but it does have its own complexities often enhanced by non-functional requirements such as a fixed budget, who sits next to whom, the type of food to be served, the need to let Cousin Ira’s band perform at the reception, etc. Novelty? Yep. Most people don’t get married enough times with large celebrations that planning the event becomes second hand.

So, agile is most appropriate on any urgent project with significant complexity and novelty–and that includes software development and weddings. It does raise the question though of whether a couple’s first kiss at the end of the ceremony is a product backlog item or part of the done criteria for the overall product.

References
Published at DZone with permission of Mike Cohn, author and DZone MVB. (source)

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)

Tags:

Comments

Mark Anthony replied on Fri, 2012/04/13 - 11:21am

I agree completely. However, many people (especially in the lean and even Kanban worlds) like to look at manufacturing and use good ideas from it to find good ideas for software development. Any are can, of course, provide inspiration for good ideas but I find comparisons between the creative nature of software development and the repetitive nature of an assembly line very limited.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.