Agile Development: A Tale of Two Cooks

By Deane Barker on September 19, 2002

Agile Development is an emerging theory of software development management that rebels against over-management of the development process. Agile Development says that our goal is to meet the customer needs, and we should welcome changing requirements because this means the end product will better do what the customer wants it to.

Agile Development says that a software project cannot be planned out to the hour and day — there are just too many variables. Projects should instead be planned loosely with concrete goals and milestones in the immediate future, and loose goals and milestones beyond that. The idea should be to get developing software into the hands of the customer as soon as possible, and be ready to change based on the feedback you receive.

Russell Martin has written a great whitepaper about Agile Development. The first section of it is especially good as Martin sets software development against a cooking metaphor — how he prepares a big dinner, and how his mother-in-law prepares it. The result is an excellent way of looking at the development process. The cooking metaphor ends with the first section, and the rest of the paper may or may not apply to you as Martin discuss a specific project, but it’s interesting nonetheless.