Jeff's Blog

Musings about software development, Java, OO, agile, life, whatever.


Tuesday, June 13, 2006 
Blogging

I'm convinced that blogs are a very self-indulgent forum, a cheap way for people to get up on a soapbox and spout stuff that people wouldn't pay to read. I've never claimed to not be self-indulgent, however, so don't expect me to shut down this blog. (I did shut down my Agile Java forum because of all the spam jerks out there.)

Going forward, I'm going to try to move these blog entries more into the realm of the provocative and honest. I've been challenged with the notion of that I'm a zealot, that I'm an arrogant, elitist agilist. Perhaps some of that's true.

I'm certain that I'm a bit arrogant. But some of that is necessary in order to have the confidence to run a business on your own. I'm definitely not so arrogant that I would presume what I'm doing is the only right way to do things, and that other people are doing it "wrong." I'm also pretty humble about my own abilities.

And I'm certain that I'm pretty enthusiastic about TDD. Why? To sell more consulting and/or training? I'd be lying if I said it has nothing to with generating business.

But that's not really why I promote TDD. I've done it for seven years now. Some of that was either short-term consulting or in a training setting. But I've also had longer stints during that time span (7 and 12 months) where I did hardcore TDD, and on sizeable systems (500,000-800,000 loc systems). And most of the consulting work I've done has been in helping developers work on typical, larger systems in Fortune 500 companies. I say this, because I've seen people suggest I've never worked on a real project, anything above 30,000 loc. Whatever.

What this work has generally revealed is that most developers are clueless about quality code and good design. But it's also revealed that these aren't that difficult concepts--as long as the developer is willing to learn. It only takes a few days before things start clicking with most developers. I worked with one sharp, wonderful guy for about 4 days worth of pairing, doing TDD, and refactoring. I asked for a quote from him about his experience, one that I could take to his VP (and justify my cost). He thought for a minute and said, "I've learned more about software development in the past few days than I have in the past two years."

I've also worked with many developers who just don't care that much about what they do for a living. And I've worked with many developers who already know how to build perfect software. Not. There's some adage about old dogs and new tricks. This industry seems to birth a lot of dogs who happen to already know everything.

Ultimately, I do this because I love developing software. I've also learned that my code always starts out sucking, that there's always a better way to do it, and that I can get to that better way pretty easily--particulary if I'm doing TDD. I've also noted that just about everyone I've paired with demonstrates the same.

And, here's my zealot out-of-touch agilist statement: I love doing TDD, because I've gotten it to work, for me and for many developers I've had the pleasure of doing business with. If you don't like it, go back to the same old way you've always been slogging through code. I don't give a hoot. And don't forget to write a self-reassuring blog about how TDD can't possibly work as well as I've touted it.


Comments: Post a Comment

Links to this post:

Create a Link



<< Home

RSS Feed (XML)

Archives

February 2004   March 2004   May 2004   September 2004   October 2004   January 2005   February 2005   September 2005   October 2005   November 2005   December 2005   January 2006   February 2006   March 2006   June 2006   August 2006   January 2007   February 2007   March 2007   April 2007   September 2007   October 2007   November 2007   December 2007   January 2008  

This page is powered by Blogger. Isn't yours?