TITLE: One Reason I Like Agile Methods
AUTHOR: Eugene Wallingford
DATE: June 28, 2006 4:22 PM
Short answer: Because sometimes I am too cocky
for my own good.
If you read the
on my latest half marathon, you may have noticed
that my mile 3 time stands out as slower than the
rest. What happened? After running two comfortable
miles at exactly 7:32, about a half minute faster
than planned, I started daydreaming about what a
great race I would soon have run. "Let's see,
that's 91... plus six-and-a half, which is...
Wow!" While patting myself on the back in advance,
I forgot to keep running. Too cocky.
Last summer, when I took on the
responsibilities of department head,
I managed to convince myself that I was the best
person for the job. Maybe even the only person.
With this attitude, it is all too easy to fall
into habits of thought and action where I forget
that I have to do the hard work of the job. Why
aren't things coming more easily? Too cocky.
So it is with programming. It's quite easy to
attack a problem before we fully understand our
customer's needs, to start pumping out code before
we know where we are going. Get cocky, and pretty
soon the problem and the program step up to humble
me. Unfortunately, by then, I too often have a
big mess on my hands.
I work better when I'm a little nervous, when I'm
a bit unsure of whether I can do what I'm trying
to do. Maybe that's a trait peculiar to me, but
I think not. I've had good friends who thrived on
an element of tension, where just enough uncertainty
heightens their senses. I am more aware then.
When I get cocky, I stop paying attention.
One reason that I like agile approaches to software
development is that they encourage me not to get
cocky. They tell me to take small steps, so I can't
run ahead of my understanding. They tell me to find
simple solutions, so that I have a better chance of
succeeding (and, when I don't, I won't have erred
too badly). They tell me to seek continuous feedback,
so that I can't fool myself into thinking that all
is going smoothly. The red bar cannot be denied!
They tell me to integrate my work continuously, so
that I can't fool myself about the system at large.
They tell me to interact with other developers and
with my customer as frequently as I can, so that
others can help me, and keep me honest. The whole
culture is one of humility and honesty.