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'.
The results can be seen in 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 |
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.
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.
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.
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.