Xp Taboo Words

Why is it that XPers cringe whenever certain terms arise in an XP-related conversations? Words such as:

From people's reactions, it seems there must be a lot of emotional baggage associated with these. Is developing a unique language necessary for enforcing XP discipline?

Someone said recently: I react to the word "methodology" like a child who was beaten reacts to someone raising their hand.


What an excellent start to a Wiki page. Thanks for putting it like this.


I believe it's definitely necessary to develop a new language. Those words have taken on very specific meanings as they pertain to other models of software development. Overloading them with new meanings within the same domain is far too confusing.


The cringe comes from the assumptions implicit in the normal use of the words. I was recently driven to outburst by a lengthy email correspondence about design included the question ...

> Is there any chance that XP projects do design *despite* XP, rather than because of it?

To which I responded ...

Here is the deal. You get to make the code as good as you can. You will always be able to make the code be as good as it can be. You can take as long as you need to do this. It is built into the schedule. As you learn more, you are allowed, even expected, to add that to the code.

But there is a catch. You aren't allowed to write code to solve problems you don't yet have. If you start solving problems that you might have then you lose the ability to estimate because it becomes a contest to see who can think up the most hypothetical problems.

This do you/don't you design business is a bunch of bunk. If we get caught up in semantic arguments about what is/isn't design then we will quickly forget what we do know: it takes effort, but not unbounded effort, to make a clear program. -- WardCunningham


In my experience, non-XP people seem to cringe just as badly when an XPer says DoSimpleThings, RefactorMercilessly, ContinuousIntegration or TestFirstCodeLater?. Do others agree?

No, I'm not at all sure that I do. I'm not at all sure that I accept the term NonXpPeople? at all. I'm not even sure about XpEr? (though the apparent hesitation in the WikiName makes it a lot better for me). I liked TestInfected a lot and would much prefer extending it to XpInfected? to refer to both projects and people.

Biggest cringe I get is when I say "no need for comments, change the code." -- AlanFrancis

Oh, no. They've been XpInfected?. They have to be quarantined until we find a cure. Or at least a vaccine.

I like the attempted precision of definition of XP and I like most, but not all of the new terminology. But as for the people ... I'm not convinced. The danger is that it's so much easier to define youself by the terminology you cringe at than by your behaviour day by day in real world project development.

The danger of new terminology is that it cuts you off from insights and discussions that use more traditional terminology. I was once a young programmer and now I'm an older programmer. I've also been a consultant and a manager at times in between, with words like

applied by others to what I've done (or tried to do). I sure didn't refuse the cheques.

This change of terminology stuff - I've seen it happen before, with TomGilb, with RAD, with DSDM, with XP. XP is the best, no doubt in my mind about that. But another brave new generation that only knows what terms to cringe at - no thank you!

-- RichardDrake


In my experience, non-XP people seem to cringe just as badly when an XPer says[...]

Interesting. In my experience, they cringe most when anyone says "ExtremeProgramming". Then they say something like: "you mean like in the Pepsi ad?".


Language is powerful. If a group wants to change the image associated with it, it changes its name (like "black" to "African-American").

See SapirWhorfHypothesis.

This generally doesn't work. After a fairly short time, the new term has all the old images/prejudices/stigmata attached to it that the old one had and yet another cycle of terminology invention is started. A related phenomenon is taking up a derogatory term given to a group by the group to describe itself - a nom de gueux.

Yes, John Wesley's Methodists in the 18th century are an interesting case in point. Wesley never wanted to leave the Church of England and had no interest in messing with terminology for its own sake. But his outrageous and innovative methods, such a talking to ordinary working people in ordinary language in the open air, meant that this grass roots movement was effectively expelled by the church hierarchy. Methodism became the driving force behind the abolition of slavery, the formation of the first UK trade unions and much other social reform in the following decades. All this impact without any attention to branding. -- RichardDrake


To be specific, these terms have been used as buzzwords that are polite euphemisms for despicable mismanagement practices.

Methodology
The enormous quantity of useless paperwork, meetings and busywork added to programmers to slow them down and confuse the situation.

Analysis
Spending more time drawing useless complex diagrams that impress the hell out of the customer but don't get us any closer to having finished code (or started code for that matter).

Architecture
Byzantine and Baroque syncretism of the latest software engineering fads, probably involving object-oriented Java, that locks programmers into having to code to a poor, inadequate and overblown, highfalutin' API.

No wonder that having heard the terms used these ways, programmers don't want to hear them again no matter how they're used.


I don't mind losing the words architecture and methodology, since neither adds anything that can't be found in simpler, more honest words (like design and method). But analysis I hate to part with. Maybe it's also been usurped by the stuffed shirts, but it has a real meaning. It describes something we all gotta do almost constantly in systems work, and we need a term so we can name that and talk about doing it really well. -- WaldenMathews


It seems the advocates of XP may in their emotional reaction have discarded the old buzzwords and have substituted new ones. Which is not a BadThing if in fact the new words stand for what is required and produce working artifacts. Methodology is a way of doing things (expertise), Analysis is a way of figuring out what needs to be done (discipline), and Architecture is a way of forming the structures which are appealing to the sensibilities and are functional (integrity). It would seem to me these things are vital to the successful completion of what a team has been brought together to do. Such a team should not be hindered by reacting emotionally to words but should rather concentrate upon what the words mean to communicate: expertise, discipline, and integrity, and add to that the essential of cooperation in defining and producing works which result in useful, desirable and efficient artifacts. -- DonaldNoyes.20080720.2203.m06

See Ward's TappingWisdom for an example of communication between the Old Guy and the New Kid on the Block. Overcoming emotional hurdles is a Two way street.


CategoryExtremeProgramming


EditText of this page (last edited July 20, 2008) or FindPage with title or text search