TITLE: One Reason I Like Agile Methods AUTHOR: Eugene Wallingford DATE: June 28, 2006 4:22 PM DESC: ----- BODY: Short answer: Because sometimes I am too cocky for my own good. If you read the recent entry 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. -----