See CritiqueOfXp for links and commentary on the article about which this page is written.
I wonder why DougRosenberg
understood the XP practices so differently then myself? They seem to be highly intelligent people, and I don't think that my own understanding of XP can be that
far off. So what is happening here? PhlogistonOrOxygen
I would like to propose a possible explanation. This explanation may be useful for presenting XP to other people, especially non-programmers.
The basic premise is that people in different fields talk different languages
. They may be using the same words, but their meaning, implied context and implications are different. A recent example of this came from my brother. He is a lawyer who now learns programming for fun. He called me the other day saying he has problems with understanding the English in the Java book I gave him: "Is it possible that I don't understand the word 'argument' correctly?"
I think that Rosenberg & Scott are in a different field than I am, as a programmer. I'm not sure what is their title (analysts? methodologists? managers?) but I really think we understand the same words differently.
For example, when I read DoTheSimplestThingThatCouldPossiblyWork
, I hear an emphasis on the words 'do' and 'work'. To me, this has the same spirit as "make it run, make it right, make it fast." I also hear a small 'now' at the end of this sentence. To me it is clear that the simplest thing to do will change after the current thing works.
It seems to me that they hear something like "do, without thinking, the easiest/fastest thing that can be presented to management/client". I see (and I may be reading them wrong) several differences in meaning and hidden assumptions:
- Doing and thinking are separate activities.
- "Simplest" means "easiest to code", or "requires a minimum amount of learning".
- "Work" means "presentable", not "thoroughly tested".
These different meanings make them see different implications: While to me the implication is that I end up with something that is both simple and working, for them it is that they end up with something that is not necessarily simple to read/change, and only works in a very restricted way.
There are many other such examples of things we understand differently about XP, and I won't bore you with them all. My point is that when talking to people from other fields, it may help to try and speak their
I too try to look for the good in people. But in this case I can only see a deliberate and malicious attack. They used quotes from some of the obvious
satire pages presenting them as if they were factual, for crying out loud! They treat us like idiots believing that they can use hand waving as factual data. What they have done here is to reintroduce a very, very old concept: If you make someone else look bad you will look better.
Their usage here is all too transparent. -- DonWells
Yes, but why
are they doing this? Can we AssumeStupidityNotMalice
(I prefer misunderstanding to stupidity, though). If you do think this is pure malice, then what do you think made them hate XP so much?
Even if Rosenberg & Scott will never be convinced, I think understanding why may help explain XP to other people.
If they have the intelligence to get a book published covering exactly this subject then they have surpassed the required low level of thought for this article to be just a misunderstanding. The reason they are doing this is obvious. Anyone who has tried XP and many who have become knowledgeable about XP realize that this new methodology is going to have a big impact on all software development methodologies to come even if it does not itself become main stream. Rosenberg and Scott imply that themselves. So what does one do with thousands of books that have just become obsolete? Sell, sell
I must disagree. I see no reason to imagine that they are that evil, or that they imagine that trashing XP will sell even one more book. (It might - I won't remark on their process until I read their book.) I just think that they haven't taken the time to understand what we're really saying, and that they have shot their mouths off in an amusing way, talking about what they think we might mean by our mottos.
Their remarks and style are little different from the objections I've seen here from lots of individuals, many of whom are now XP supporters.
It's important in living with what our colleagues do that we remember that we can't read minds, we don't know what they think. We just see what they do. -- RonJeffries
That may be but some explanations are certainly a great deal more credible than others. The idea that Doug has basic misconceptions about what XP is just not all that likely to be correct. I think that it's more likely that Doug feels threatened by XP. He certainly has had plenty of opportunity to come to an understanding of it and he is smart enough and experienced enough to have made use of that opportunity. I think that at some level he understands that this sort of process presents a real challenge to higher ceremony methodologies like the one he created and teaches for a living. His livelihood and much of his identity are wrapped up in that methodology so the stakes are very high for him. Too high perhaps for him to be objective. Even so I thought his article was quite irresponsible. He knows full well that XP doesn't promote the tenets he attributes to it. I was a part of the OTUG conversation where Kent directly addressed Dougs concerns - Kent is a good communicator, he left little to be confused about. Perhaps Dougs best defense is that he has a deep need to believe that XP is something other than what it really is. But that article was not a product of misunderstanding - not in the traditional sense anyway. Frankly, I wish it were, I respect Dougs work and would like to think better of him. -- PhilGoodwin
You just hit it right on the nose Phil. I was in those OTUG discussions too and that's exactly
the impression I got. XP is diametrically opposed to many of the tenets that have become a source of livelihood for a great many people. IMHO we are seeing evidence here of the first two stages in the FiveStagesOfGrief
. It seems a gut-level response to an idea threatens one's very worldview and way of life (as well as income). The response may even be so deep-seeded that the respondents might not even think they feel threatened or fearful -- they just know that they must quash it.
Now I may be way over-simplifying things (if not completely wrong), but the way I read it, BigDesignUpFront
is central to Rosenberg and Scott's world view, and the XP people regard BigDesignUpFront
as an utter waste of time. -- CurtisBartley
says something really interesting: XP is a threatening for some people. They fear it. I'm trying to put my finger on the thing that may be scary about XP. I think it may be some kind of change in the balance of power, it is just that I am not sure which roles are gaining more power and which are losing it. Thoughts?
I don't think it's power. I think it has to do with skills. I had an opportunity to write a book on Analysis just before I really started learning about XP. I may have to postpone or cancel that project because many of the things I'm learning about XP make what I thought I knew irrelevant or questionable. I don't mind too much because I think I'll have much better skills in the near future because of it. But I get most of my value from using my skills -- not teaching them. When I go from being an expert to being a novice it's because I'm getting an upgrade. If I were a teacher it might seem more like starting over. If I were a researcher it might be a complete disaster. Imagine how a particle physicist would feel if someone came up with a theory that superseded quantum mechanics. How would you like to be an expert on something that doesn't matter? -- PhilGoodwin
One of my new favorite quotes seems eerily applicable here: "I know that most men, including those at ease with problems of the greatest complexity, can seldom accept even the simplest and most obvious truth if it be such as would oblige them to admit the falsity of conclusions which they have proudly taught to others, and which they have woven, thread by thread, into the fabric of their lives." - Tolstoy.
I don't know, I just can't get hold of this. It's hard for me to believe that folks won't hear an idea because of fear, even though it happens to me all the time, since I express myself so directly. I prefer to assume that I've put my thoughts poorly - to attribute their not getting it to their own will is to leave me powerless. I need my illusions of being in control of my life.
Of whose life? I had a roommate who liked to say: "people only hear what they are prepared to hear". There's a page, "OnlySayThingsThatCanBeHeard", that talks about the same phenomena. Communication takes two willing participants -- you can't do the listening for the other guy. Although it does help to remember that the habit of listening can be infectious. -- pg
In my opinion, a key place where XP offers no help is in the UserStory
, which is of course the result of some kind of "analysis". Kent just gets people talking, and out come UserStory
's. Since it doesn't happen that way in my world, I am assuming that there's a skill to be learned, which is as yet not written down. Similarly, assigning value to the stories is difficult for users, and a certain kind of analyst relationship can help them do that.
Y'know, there's this guy, DougRosenberg, who happens to have some really interesting ideas about how to do exactly that. No kidding, that's his schtick. He has apparently been able to generate repeatable results and he can explain how it works too.
It's not the analyst who goes off in a corner and writes requirements ... frankly I've never once seen that work particularly well ... but analysis it is, in my opinion. -- RonJeffries
I just read the Rosenberg and Scott article. I don't understand why people are claiming they are stupid or dishonest. To me, it seemed a very typical article, just what I would expect someone from their point of view to write. I bet there are tens of thousands of other people who will have the same reaction when they read the material on the WikiWeb
Suppose someone has been working with some methodology
for a long time and has had some success with it. They will find problems,
of course, but they solve some of them and are working on the others. When
someone points out a new problem, they don't immediately think "Oh no, I
have to drop my methodology!". Instead, they start working on the problem.
It takes years of working on problems without solving them before someone will agree that it is not solvable.
Why should anybody expect that people who have been working hard for several years to apply a big upfront design methodology will immediately drop it in favor of XP? That won't happen. They might write their tests before they code, they might use PairProgramming
, they might even try ContinuousIntegration
. However, they will still spend a fair bit of time drawing diagrams before they start to implement UserStories
because they are firmly convinced it will save them time. It will take a lot of experience to convince them otherwise.
This is not bad. It is right and proper. People should be skeptical of new ideas that challenge their experience. However, it is why it is so hard to get new ideas accepted. Everyone pushing a new idea has to cross this barrier.
I found the Rosenberg and Scott article interesting. Some of their criticisms of XP are valid, such as that some parts of it don't seem to scale. Others are completely invalid, such as their analysis of the arguments about the cost of change curve. But even when they completely miss the point, we can learn something from their article. The only way to improve how you communicate is to do it and then to find out what your audience thought you said. You then change what you say so that they won't get the wrong ideas.
I got two ideas from their articles. One is that they completely miss the point that the code produced by XP is qualitatively different from the code produced without it. Many of the practices of XP are there to make sure that the code is easy to understand and is easy to change. This is what drives the cost curve down, and what makes it less important to have documentation. If XP really produces better code then these claims are believable, but if it doesn't then they aren't.
The other idea is that a system like the WikiWeb
has some disadvantages for propagating a new idea. It is too hard for newcomers to find out what is core and what is not. Newcomers are put off by the jokes and the experiments. The WikiWeb
is a great way to figure out what your story is and how to tell it, but XP really needs the books. -- RalphJohnson
I agree with Ralph's take on this. Indeed I find the most interesting aspect of the Rosenberg/Scott article is the reaction of the XPers to it. I take it you've all heard the old JokeAboutMethodologistsAndTerrorists
.... -- MartinFowler
I haven't read the article/book in question, but from the discussion here, it sounds like something I've studied in detail before. If you'll excuse the use of a overused buzzword, XP is a paradigm shift. And I mean that in the original sense of Thomas Kuhn. It's been seen numerous times in science. Most recently when Newtonian mechanics was thrown out in favor of quantum mechanics. All the old die-hards who had spent their life based on Newtonian mechanics, and whose very reputation and skills were intertwined with that view of the world, spent all sorts of effort in debunking quantum mechanics. Finally, the old guys died off and quantum mechanics didn't have to be defended anymore.
This observation has been made before; see KuhnParadigmShift.
I think this is right on! And in my opinion the thing XP goes mostly against is the belief that code is difficult to understand, and even more difficult to change. This is the point I hear most often when I tried to explain XP to my classmates; the SoftwareEngineering
mantra for the last couple decades has always been that code is difficult to maintain, so you should defer writing any until you completely understand what you're going to code, hence BigDesignUpFront
. But I have three years practical programming experience, writing and mainly maintaining code that's most of the time really ugly (still learning... :-) ) and so I don't fear code, much less the well-factored and tested code that seems to be the consequence of XP practices. Heck, the professors tell us that as future SoftwareEngineer
s and analysts we should not write code, as if it was an inferior activity, made brainless by all the analysis and design, when you see people criticizing XP they probably have this mindset. And if they don't like to code of course they won't like XP. -- FabioMascarenhas
I'm the editor of Objective View - the magazine in which the articles appeared. I find this discussion interesting in that people seem to attribute differences of opinion to malice. I always get worried when debates start to take on religious overtones about the one and only true way to do software.
Knowing both Doug and many of the XP insiders like Robert Martin, I think both parties to this debate are saying what they honestly believe. They just believe different things. They're all smart guys, and have all had success of some form or another delivering software using their various approaches.
Two major points:
- Perhaps there are just many ways to skin a cat.
- Debate is healthy and should be encouraged.
If we're seeking "the truth" we have to listen to all sides of an argument - and also assume that people are saying what they believe.
My personal experience of writing software (over the last 20 years or so) is that many different approaches can work. Why can I say this - because I've succeeded using many different approaches. It this becomes an issue of which approach is the 'optimal' one.
I personally believe the optimal solution is very very context dependent. One size won't fit all.