This article may be circulated freely as long as the copyright notice is included.
Promoters of Extreme Programming (XP) and some other iterative and incremental approaches to software development have coined and tried to preempt the term "agile" to describe both their methodology and its practitioners.
That's jarring to those of us who've been assuming that all competent software developers are agile. Indeed we always thought agility was central to the very nature of both programming and systems analysis.
As a professional who takes pride in his agility, I interpret the term to mean:
What "agility" most certainly does not mean to us is abandonment of all discipline. It doesn't even mean abandoning a particular discipline that we may find inconvenient at the moment.
If we allow the extremists to preempt a perfectly good term that accurately describes what we all do, then what terms do they leave us to describe non-agile methods and non-agile programmers? Antonyms of "agile" include:
Sorry, those terms are not only insulting but grossly inaccurate. What I do is agile in every sense of the term, in some ways more so than what the extremists propose, and I'm not giving it up.
We can't recall any earlier methodology revolution whose very name so disparaged those who didn't embrace it. Unstructured programming may have been "monolithic", and non-object-oriented programming may have been "procedural". Those terms had negative connotations, to be sure, but they didn't insult professionals with quite the same sneering condescension.1
I and various colleagues have been working up an answer to extreme programming (XP), drawing upon XP's strong points in the context of a more disciplined approach. We haven't decided yet what to call our approach. Some propose "moderate programming", while I favor "prudent programming".
Will we consider those who reject our methods immoderate or imprudent?
Return to IDI home page
Last modified June 27, 2002