Agile Programming - A Poor Choice of Words? Mon 12 May 08
Agile Programming is a popular programming methodology. But it's not alone. There are other methodologies such as the Rational Unified Process, Spiral, and the traditional Waterfall methodology in common use. Each has it advantages and disadvantages and each is named in a way that describes the process. However with Agile its very name can tend to cause confusion. "Agile" gets confused with "agile". Wait a minute. Other than the capitalization aren't they the same things? Well not exactly. Agile with capitals does mean something different than lower case agile and that's where the confusion comes in.
Agile (upper-case) programming in overly simple terms is a method of developing programs using closely knit teams to quickly produce releasable code in short time frames. Based on the Agile manifesto principles it has some certain processes. Wikipedia provides a good overview and a simple Google search will provide a mass of references.
agile (lower-case "a") programming simply denotes being flexible in our design and adjusting as we go.
The term Agile was no doubt derived from its lower-case counterparts and that's where the difficulty comes in. When we speak of Agile others often hear agile. And after all who wouldn't want some flexibility in programming? So very often you quickly get buy-in to employ this methodology when you use this term. That is until the realization sinks in that what your user thinks they bought is not what you thought you were selling.