In response to my most recent Pragmatic Manager (about shortening project startup times), a colleague wrote: “I am working on a lifecycle definition team in my department and finally convinced the team that Agile Development was a Methodology using an Iterative Model lifecycle.” My colleague has neatly described the methdology (the practices) and the lifecycle (agile). A lot of people confuse “lifecycle” with “methodology.”
A methodology is a set of practices, sometimes built around a lifecycle. But many methodologies allow you to select the lifecycle that makes the most sense. Agile development is a set of practices, including frequent builds, pair programming or other built-in peer review, test driven development, frequent retrospectives (and the others) with a lifecycle that produces iterations of chunks of development. (Agile lifecycles are not just iterative. The short iterations and the focus on delivering useful product at the end of each iteration is different from other iterative lifecycles.) When you take the agile lifecycles plus the practices, you have a methodology.
Ok, so some of you are saying, “Semantics, JR. Puhlease.” We use words to convey what we mean. It's hard enough to understand what everyone is talking about without changing the meanings of the words. Lifecycles are the way you lay out a project. A methodology is the set of practices you use with your chosen lifecycle. I would rather discuss the merits of specific practices or lifecycle in a particular project context than get stuck on the words we're using to describe them.