Extreme Programming (XP) founder Kent Beck likes to say he made up XP’s fundamentals during a particularly troubled project in 1996. While strictly true, from talking to him you sense he’d really been formulating the process for quite some time. Find out what Kent thinks about the contribution of the Java platform to software development’s success (or lack thereof). In this interview he explains how better applications can arise from the ashes of failure.
I’ve not done a fully fledged XP project, but I have tried elements such as pair programming and test before. Test before is a technique I’m particularly fond of now, and pair programming too resulted in better code when I gave it a go.
Processes involing things like UML are not only boring, but low in productivity.
Processes involing things like UML are not only boring, but low in productivity.
I guess you mean Rational Unified Process right ? I don’t see how this has anything to do with UML itself, which is just a tool, and pretty handy one at that.
I actually find “Refactoring” (Martin Fowler with Kent Beck) to be more significant in the development process than XP. XP is just too extreme :-), and I dislike the preference to hacking (aka Bazaar) to white board analysis and design (cathedral). In the real world, I find that most problems disappear if management allows time for refactoring. Developers, dont rely on management to grant you this time, this should be part of the development process itself, even more so than design reviews (since with refactoring, designs change).
Then again, refactoring is a component of XP.
Refactoring is used to clean up an existing code base while XP seems intended for brand new projects, or extensions to existing code bases. Sometimes the existing architecture is so bad or obsolete that the most rational long-term solution is to start over.
There’s no conflict in using XP and UML simultaneously. When coding in a language such as C++ or Java, it’s hard to get very far without drawing object diagrams, and you might as well use UML since that’s the current standard. This is true whether the development team consists of one, two, or many programmers. Perhaps you mean the waterfall approach of designing everything up front, without prototyping, before coding anything; I agree that usually doesn’t work too well.
I’ve been to XP boot camp and experienced the wonder and power of Kent’s “GML”, short for “Galatic Modeling Language”.
And I must say that it is far superior to UML. People can learn it quickly, it’s easier to draw by hand, and describing GML systems is compatible with the English language.
Even before bootcamp I was in agreement with Kent. UML is a pile of crap, just another layer of complexity. Look at all the UML books and you get a clear picture of what’s going on — lots of consulting dollars, lots of training dollars, and lots of pointy headed wizards shutting out the non-guru developer. But not a lot of great software.
Having grown up in commercial software, we built some very complicated and high quality software before UML existed. And in my experience it is far easier to build something using the “whiteboards & english” methodology than UML+RUP.
It does seem to be a publishing/training racket. Then again, so does XP.
What happened to UML is the same as what happened to browsers and office suites. It had to become bloated to meet everyone’s needs, otherwise it wouldn’t be accepted as standard. But nobody needs all that.
XP still fits in a small book. One book. RUP does not, UML does not.
What key pieces of the RUP/UML “big-method software” credo would even fit on a mousepad? Or one page? There is so much fat in RUP that you’d be running your distiller for years just to get something good out of it.
People can understand XP markedly faster than RUP. And you can learn GML in less than five minutes, not something anyone can claim with UML.
Let me paraphrase a parable:
“Something that tries to please everyone ends up pleasing no one”.
But it does make a lot of money for those involved and that is why RUP/UML are pushed so hard.