Why we write tests… a cautionary tale

For those of us who practice Agile development, I propose a new hero. Not Martin Fowler, nor Uncle Bob (sorry guys) but Ignaz Semmelweiss, the Austrian physician.

In the 1840’s, Semmelweiss was concerned with the rate of infant mortality in the maternity clinics at Vienna General Hospital. The maternity clinic attended by physicians had three times the mortality rate of those staffed by midwives.

He concluded that the physicians, who also performed autopsies, were bringing lethal infection into the delivery rooms whereas the midwives were isolatedIgnaz_Semmelweis_1860 from such infection. He conducted an experiment in which the physicians washed their hands in chlorine solution before entering the maternity clinic and saw a dramatic reduction in infant mortality to the similar levels of the midwives’ clinic.

At this time, hospital doctors wore long white coats, which they never washed; the accumulated blood, pus and other bodily fluids serving as a “badge of service and seniority”. They wore these messy coats with pride. Unfortunately, this was the very thing that was killing their patients. They did not take kindly to Semmelweiss pointing this out, arguing that washing their hands took up valuable time that was better spent performing medical procedures.

They dismissed him from the hospital and, ultimately, incarcerating him in a mental asylum. In a horrible twist of irony, Semmelweiss subsequently died as a result of an infection he contracted due to a severe beating from the asylum wardens.

Now, if the penny hasn’t dropped already, we can draw a strong analogy to the world of software development here. Think of your tests (unit, functional, performance, etc) as a form of “hand washing”, and the conservative senior doctors as those in your organisation who oppose up-front testing, declaring it a “waste of time”.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: