Friday, October 29, 2010

Hope


A recent CBC Radio story that stuck was from the a show called Tapestry. The show was titled Hope and I happened to tune in right around the time when these two quotes came over the air:
"Hope is the worst of all evils, for it prolongs the torments of man." -- Friedrich Nietzsche
"Hope deceives more men than cunning does." -- Marquis de Vauvenargues
What is going on here? I had always hoped that hope was a good thing. You know, "We send our hopes and prayers", "I hope that you have fun", and "Here's hoping that all goes well". Nietzsche is saying otherwise. Heck, "worst of all evils" doesn't sound too pleasant.

But when I think to the projects that I have worked on in the software development world the word hope keeps slipping in there too. You know the phrase, you probably hear it a couple time a day: "I hope to deliver that stuff soon.". What is hope doing there?? Someone has asked for a commitment and the response was "I hope".

What “hope” really means here is that the person has an impediment and that they could use some help. Help focusing on one task. Help understanding the technology. Help understanding the domain. Impediments come in all sizes and shapes and worst off they can be very well disguised.

Watch for the hope word; don't ignore it and just hope that things will get better. Take the opportunity to find out why someone is offering hope instead of a commitment. Perhaps an impediment will surface from the depths and people will be able to talk about it and even perhaps finds ways to start solving it.

Missing the Target

I work with teams quite a bit. I help them understand practices that will lead to better software. Inevitably during the description of some practice I hear the words “that will never work here”. The phrase seems universal, almost like “Kleenix” is to facial tissues.

Take TDD for example. I describe the basics – red, green, refactor. “Wow, cool” they say. This is followed closely by “but that will take too much time” or the ever popular “we can’t possibly add tests to all that legacy code”.

I don’t expect teams to hit the bull’s eye (for that matter I don’t expect myself to hit the bull’s eye either!). I do hope that people will try. I also hope they understand that failure is an option. Actually, failure is a darn good option; so much learning can come from failure.

And here is the point. Set your eye on the target. Take aim and practice, practice, practice. Eventually you will hit a target. It might not even be the target you originally set out to hit. That too is learning!