The Pragmatic Craftsman :: Simplicity from complexity : by Stanley Kubasek ::

Will not ship shit!

Software Crafstmanship defined. Defined by nobody else but by a true craftsman himself, Uncle Bob. This entry was so good and so relevant to this blog that I had to include it in full. Read it and re-read it often. I will.

Uncle Bob’s Software Craftsmanship CornerWe will not ship Robert C. MartinJuly 15, 2003

As software craftsmen we have rules, disciplines, and practices that we followto help us maintain a high degree of quality and professionalism. However,there are always trade-offs, always considerations, always possibilities.Sometimes we abandon a complex test case because we need to finish the task,and visual inspection or manual testing is sufficient. Sometimes we fail towrite an acceptance test because it’s complicated, and the bang-for-buck islow. Sometimes we don’t program in pairs, because — well — we don’t havea partner nearby, or we’re sick of programming with someone else, or thecurrent task is mechanical. Sometimes we keep a module checked out for morethan a couple of hours. Sometimes (damned rarely!) we check in code thatfails to pass all the acceptance tests, or all the unit tests.

They’re just rules, and rules are made to be broken.

Blindly following rules is a fools errand. We have enough grey matter todiscern when the rules are helpful and when they are not. We have theresponsibility to continuously measure whether the rules are helpful, orwhether they are not.

But then — there’s something else.

Something that is cold and hard, and yet simultaneously hot and blazing.Something, amidst all the compromise and ambiguity, that is neithercompromised nor ambiguous. Something that spawns and respawns the rules wefollow, and yet challenges those rules at every turn.

The still small voice; the angel’s trumpet, the grim determination, thejoyous declaration:


- “I am a professional — a craftsman!”– “No matter what pressures are on me.”– “No matter how I’ve had to bend the rules.”– “No matter what shortcuts I’ve had to take.”– “No matter what the gods, or managers, have done or may do.”

– — “I WILL DO THE BEST WORK I CAN POSSIBLY DO.”– — “Anything short of my best is shit.”– — “I _ WILL _ NOT _ SHIP _ SHIT.”

For me, at least, this is what it all comes down to. I find that the rulesof XP help me to achieve this most of the time — more of the time than anyother set of rules I have followed. But rules are rules, and when they getin the way of this goal, they get set aside.

I do not set the rules aside lightly. Indeed, when in doubt, I follow them.When the pressure is on, I follow them. When the deadline looms, I followthem. I try hard not to let fear drive me.

Fear is the mind killer. It breeds idiocies like:

“We don’t have time to write tests.”"We don’t have time to program in pairs.”"We don’t have time to integrate continuously.”"We don’t have time to automate our acceptance tests.”

These idiocies are a siren’s song. Their lure is strong. Look in theirdirection and The Despair begins. All the rules will fall away.

Our core of professional pride is the cure. That something that is bothcold and hard, yet hot and blazing. It won’t set aside a rule out of fear.It sets aside a rule when *the rule* will cause you to ship shit.

Go now, the lesson has ended.

Favorite Quote




Currently Reading


© 2001-2020 Stanley Kubasek About me :: Contact me

Me on Twitter

»see more

Recent Entries