It’s been well over a year now since a difficult incident that occurred after I spoke at a well-known software company. I’m normally thankful for people willing to engage in honest debate, and for people who correct me in a constructive manner. That wasn’t the case with respect to this incident: I was basically assailed after the fact by someone who wasn’t professional enough to challenge me in person.
Of course these things are very painful. I still get angry when I think about it. I wonder, “did I really come across as stupid as I was made out to be?” I second-guess myself now, every time, when I speak in front of audiences. I fear that I will be called out, perhaps publicly humiliated again.
With respect to the attack, it was one of those things where where comments were taken out of context. The author is someone who appears to have a personal agenda against not just me, but the entire agile community. Having thought over the whole incident many times, I’ve come to a perhaps smug conclusion: my assailant was acting out of his own fear.
Fear? I doubt he would admit it, and probably doesn’t even know it yet. Fear often masquerades itself as arrogance. Arrogance is knowing that your way of doing things is the right way; it hides the fear that something you don’t completely understand might be better.
I spoke at Agile2007. I got the chance to attend one of Bob Martin’s sessions on Code Craft, about professionalism in software development. If anyone has cajones, it’s Uncle Bob. He projects no fear, and was bold enough to say something like, “software professionals use TDD” in his conference talk. I believe he is absolutely on the money.
Many people claim to fully understand TDD, but insist that it’s something you might do only when “you feel like it.” Unfortunately, that statement right there represents a severe lack of understanding about what TDD is and why you might do it. That’s something I’ve been trying to help correct, by demonstrating first-hand the benefits of TDD and the high costs of viewing it as an optional activity.
I’ll project some confidence, which might similarly be construed as arrogance: soon enough, we won’t talk about TDD. It’ll be like subroutines, compiling, and automated builds–we’ll just do it. The holdouts will become like the dinosaurs who still insist that OO is a passing fad.
Behind this arrogance I have no fear–if there’s something better, show it to me. I haven’t seen it yet, and it’s most certainly not the claims that programmers are smart enough to know when their code is perfect and needs no tests. For now, then, I’ll stick with TDD–all the time.
Anonymous gr3ml!n October 18, 2007 06:33pm
Yours humility impress me much.