The Contribution of the Cardboard Cutout Dog to Software Reliability and Maintainability.

by Stephen J. Baker.
Cedar Hill, Texas

Abstract

The contribution of the Cardboard Cutout Dog to Software generation and maintenance is well known to practitioners of the software arts - but perhaps many have forgotten how it came about. This paper presents a retrospective of the evolution of this invaluable technique and delves a little into the future development of the technology.

Introduction

There are many techniques available (Waldstein76, IBM76, etc) which have the goal of improving the quality of a computer program by Showing It To Someone Else (SITSE). The Cardboard Cutout Dog is merely the pinnacle of a long line of similar approaches.

A Myth About SITSE

Many proponents and practitioners of SITSE believe it works because Two Pairs Of Eyes Are Better Than One (Dichter92 for example). However as anyone who has attempted to explain 150 thousand lines of unpronouncable gibberish to a co-worker will attest, the majority of the benefit is gained by the person doing the explaining (the Walkthrough-er) and little if any contribution comes from the person who is supposed to be listening (the Walkthrough-ee).

It's generally the act of trying to understand why you wrote something in a particular way (in order that you can coherently explain it) that leads you to the inescapable conclusion that it's a load of male bovine excrement and that you'd better rewrite that part.

It's also noticable that the co-worker to whom you are explaining will lose track of your explanation approximately 30 seconds into your four hour performance, and after just under two minutes will be in a mental state best approximated by the term 'catatonic'.

What Can We Learn From This?

Since the person being walked though the code is catatonic - there is no particular need to tie up an expensive engineering professional. We first experimented with walking through code with secretarial staff, management, office cleaners and various other staff at our facility. We also tried to hire consultants on an hourly basis to perform this function.

The results can be seen in table 1.

Table 1.

Walkthroughee Attention Span Distraction Feedback Cost
Engineer 30 seconds 10% 2% $30/hour
Consultant 20 seconds 15% 1% $200/hour
Secretary 14 hours 98% 1% $20/hour (NOTE 1)
Middle Manager 20 seconds 85% 1% $50/hour
Senior Manager 0.64 picoseconds 118% 1% $100/hour (NOTE 2)
Office Cleaner 10 minutes 50% 11% $10/hour
Restroom Attendant 8 minutes 50% 14% $5/hour

Note 1: "My computer crashes like that too".
Note 2: "Can't we work smarter - not harder"

As you can see, results were mixed but between the tendancy for the Walkthroughee to distract the Walkthrougher and the general lack of useful feedback, the best candidate for the job appeared to be the rest room attendant. Regrettably he generally has other more important duties to perform and his availability at all times of day is patchy at best.

Late one night, we had something of a breakthrough. Realising that the attention span of the Walkthroughee was irrelevent to the task in hand, one of our staff attempted to walk through a short code segment with the office cat (Tinkerbell). This attempt was almost successful - failing only because the cat was clearly unable to see the computer screen and fell asleep rather faster than either the Engineer or the Consultant. However, the cat's Distraction to Feedback Ratio (DFR) was comparable to the other Walkthroughee's and the cost was (remarkably) even lower than the Restroom Attendant.

We were but a small step away from a major breakthrough - and it was only when we tried the test again with another animal subject - to whit: Jake the Yellow Labrador - that we hit upon a winning formula.

Jake was able to sit on the office chair and look back and forth between Walkthrough-er and the CRT display maintaining a look of intelligence for almost an hour - requiring only the provision of several Dog Biscuits (dB's) and the application of an occasional scratch behind the ear to maintain concentration.

The Sad Demise of Jake

Jake served as our key code review expert for many years (Dog Years that is) - but finally was lost to the organisation when he starved to death during an especially complete checkout of the Transaction Interchange Manager's Scheduling Algorithm.

Faced with looming deadlines, we had to take some drastic action in order to bring the project in on time and in budget.

Visiting our local pet store in search of a suitable replacement for this Canine code expert, we observed a life-sized promotional display for Poochie-Chunks which comprised a cardboard cutout dog of unspecified breed. Once again, in our hour of need we had a breakthrough.

The Cardboard Cutout Dog Code Walkthrough (CCD-CW) was born.

To this day, programmers everywhere have the by now familiar cardboard cutout dogs. Sitting - forever alert - never distracted and virtually maintenance free throughout even the longest sessions. Truly the software industry owes a lot to Jake and the unsung heroes at the Poochie-Chunks marketting department.

Recent Developments

It has been reported from some of the racier parts of the computer games business that inflatable sex toys are supplanting the cardboard dog as the Walkthroughee of choice - but for my tastes, they seem to present a look of perpetual suprise which somehow leads me to suspect that I have a dangling pointer or some such.

Others have attempted to use live Parrots, Goldfish or imaginary six-foot tall white rabbits - but somehow explaining the subtleties of an unwrapped hash table lookup to a Parrot that talks back, a Goldfish who is swimming in the opposite direction at the critical moment - or an empty chair - lacks the necessary disciplinary focus to keep me explaining my code rather then playing net-hack.

Efforts by Microsoft Inc to provide an animated dog (or God forbid, a Dancing Paper-Clip) as an on-screen Walkthroughee have been disappointingly ineffective.

Conclusions

Unless you are writing in Pascal, steer clear of Poodles (especially the smaller breeds). Shitzu's and Pugs are poor for Object-Oriented code. Yappy dogs in general are to be avoided since thay are at best annoying - and have been reported in the literature as being particularly poor at detecting off-by-one errors and misplaced parentheses.

The calm face of a Labrador - or for some, a Cocker Spaniel - fits the need for a steadying influence. A calm, understanding demeanor and nice, droopy ears. Some will claim that German Shepherds are better for alertness to subtle rounding errors - others prefer a Greyhound where race conditions are suspected in the code.

References