Thoughts On ...

July 11, 2004

XP... You Know, For Kids!

My good friend Alan Francis recently observed the following about eXtreme Programming:

"It feels like a bunch of people are looking at XP and the last five years
and somehow thinking themselves naive. "Oh look, we were the upstart
teenager for a while but now we have to get serious...'Agile' is big
business...XP is just adolescent idealism".

Ron Jeffries (one of my favorite people to argue/agree with in the whole world) thoughtfully asked some of us for our thoughts, and Ken Auer of RoleModelSoft -- a long time XP'r and Software Craftsmen; someone whom I admire and respect (and talk to entirely too infrequently) -- provided a response. I asked Ken if I could publish his comments on my site, and he graciously consented, so here they are:


This is the same stuff I heard from people who never got Smalltalk or
the "oriented" part of "object-oriented" and figured grown-ups used C++.
[of course the OO folks ended up having to use Java like the mature
people said we had to if we didn't want to use C++]

And the same stuff I heard from people who never got Object-oriented
Databases and figured grown-ups used Relational Databases or Object
Databases that assumed grown-ups were using C++... Note the missing
"-oriented")
[of course the OO folks came up with OR mapping layers so it could
become bearable to use the RDBs the mature people said we had to use]

And the same stuff I heard from people who never got CRC and figured
grown-ups had to have a CASE tool.
[of course the OO folks stopped using CRC cards and drew something that
resembled UML on whiteboards so they could play in the mature people's
sandbox]

And the same stuff I heard from people who never got what a real team
development environment should be like and used vi, emacs, or any number
of visual products that couldn't do much after you wired things
together.
[of course the OO folks started building IDEs that would play nice with
all the junk the mature people made us use]

And the same stuff I heard from people who never produced anything with
a small high-performance team and said my techniques would never scale
the way the ones that have never worked never did.
[of course the OO folks produced XP so they could find a way to work
with teams bigger than 3 or 4 because the mature people have produced a
complex world that is difficult to imagine that any 3-4 people can
navigate through]

I was certainly naïve when I started XP, but not nearly as naïve as
those who were too mature to use it in the first place.

About a year ago, Uncle Bob pointed out Aristotle's error... That he
stopped trying things out and observing what works but kept on thinking.

I've been called an idealist since I first started programming with
Smalltalk and producing stuff that I had no idea how I could do with any
other approach. It slowly matured so I could do even more with a team
of people without shooting each other in the foot. Now, the tools for
Java and the discipline of XP have made it bearable enough to use a
sub-par language and be almost as productive... Even when I have to
deliver applications in an environment designed for sharing static text
and bitmaps.

Some adolescents will become agilescents (adolescents that go meta
instead of grow up); some will keep their idealism until they bite off
more than they can chew and get depressed when they fail; others will
have some success amidst some disappointments... The wise ones won't let
the success or the disappointments get to their heads and become the
former.

I've done or seen a little of all of the above. Though it's good to
stretch oneself in some way, I've always come back to the idea that
focusing on being a Software Craftsman, though not without it's bad
days, is more satisfying than being a meta-consultant. It may not
always be as lucrative, but I've always eaten well enough (or too well),
and I find the enjoyment factor is always higher when I'm not in it for
the money.

YMMV

Posted by wcaputo at July 11, 2004 12:11 AM