I read a
good blog post the other day (http://softwarecraftsmanship.oreilly.com/news/2008/8/8/uncle-bob-on-craftsmanship-at-agile-2008)

It was a
comment on a statment by Uncle Bob: "Craftmanship over crap", but in
the above mentioned blog post Dave Hoover modified the statement to
"Craftmanship over heroics".

I have
really taken this statement in, since it speaks to me.

So let me
explain to you what it means to me:

having a carpenter work on your roof, while he works for you, you think it
takes a lot of time. And furthermore repairing the roof is rather expensive.

So you talk
to the carpenter and tell him that its taking too much time and its too

He says:
"OK, I'll help your out, I'll cut 2 days off and some materiel costs as

Great your
are satisfied, you have a good skilled carpenter (a craftman you think) who suggest he will get finished earlier and
at a lower price. He is a real hero in
your eyes!

So he
finishes, you pay and everyone is happy.

Now a few
years later there's a big storm and its raining.

water is dripping down in your livingroom and kitchen.

So you call
the carpenter and ask him what is wrong.

replies: "Oh!, don't you remember we cut off two days? Well I didn't put
on any
roofing underlay, since it would take me two
days, and the material costs as well, don't you remember we agreed on

Naturally at this
stage your are stunned, you thought you were working with a professional (A craftman), and then he chooses to do something
like that !(trying to be a hero, but now
he's not!)

Well this is a very
strong analogy to the business of IT, there are lots of things (actually most
of the things we do) that our customers don't understand, and hence they try to
push us and make us cut the price.

So the question is
are we going to not put in the roofing under lay, nobody will know - well at
least not right now.

But when you cut
corners here you are going to end up with being in big trouble.

So choose craftmanship over heroics.