I have been reviewing the MSF lately, and it would seem that the MSF distinguishes non-Agile processes as "formal" processes. I am wondering out loud whether that is a good choice of terms? It seems to imply, by comparison that an Agile process is an informal approach to software development. If that is an intended distinction, then I think that the MSF is missing the point.
Stealing the following definitions from answers.com (via google, tyvm),
- Relating to or involving outward form or structure.
- Being or relating to essential form or constitution: a formal principle.
- Following or being in accord with accepted forms, conventions, or regulations: had little formal education; went to a formal party.
- Executed, carried out, or done in proper or regular form: a formal reprimand; a formal document.
- Characterized by strict or meticulous observation of forms; methodical: very formal in their business transactions.
- Stiffly ceremonious: a formal manner; a formal greeting; a formal bow to the monarch.
- Having the outward appearance but lacking in substance: a formal requirement that is usually ignored
I think that 1, 2, and 3a can all apply equally well to Agile methods. You might agree if you have ever:
- had a scrum master that calls you into line for straying from the daily scrum format
- executed (or tried to execute) test-driven design
- refactored in the way that Martin Fowler suggests -- baby steps, always getting back to a working system as soon as possible.
I cynically think of waterfall as 3b or 4.
If I were trying to distinguish, I would choose agile vs. rigid.
Posted by: Greg Vaughn | 2005.08.10 at 05:46 PM