Shower Debugging…


I have a book on my shelf titled “Software Exorcism”, which is all about debugging and optimization. It’s a good book, but it doesn’t have any reference to the (I suspect) widely-used-but-rarely-discussed technique of “shower debugging”.


Shower debugging is somewhat related to inspection, where you read source code to try to find the bug, but substitutes hot water and toiletries for a code editor.


I was working on a problem this morning, and managed to figure out what was going on and why in about 10 minutes.


There are, however, a few cautions with this technique:



  1. Additional hot water usage, with the associated increased chance of the “arctic blast mind refocusing experience”.

  2. You will, at some point, forget whether you’ve washed your hair yet. For the sake of others, please do it again, just to be sure.

  3. Two words: Prune City


Comments (15)

  1. I’m not trying to be crass, but why is there no mention of "toilet debugging". I think it is just as valid.

    I can help you alleviate #1 and #2. If you live in an apartment building, the hot water heater is usually enough so that you never run out of hot water.

    For #2, I always wash my hair first before I wash my body. This way, I know it’s done.

  2. Eddie Parker says:

    I completely concur. The shower is my other ‘office’.

    More for design decisions and such, for myself. 🙂

  3. Haacked says:

    Well that’s because Toilet Debugging is less common than Toilet Design.

    Just by laying the cheeks on the seat, a better design always drops in the head.

    😉

  4. AndrewSeven says:

    I think the shower phenomenon really illustrates how hard it is for us (humans) to be consistent. 😉http://alistair.cockburn.us/crystal/articles/cpanfocisd/characterizingpeopleasnonlinear.html

    For number 2, I just had this flash:

    All these years, they put "lather, rinse, repeat" on the bottles. If you always wash your hair twice I’m sure you will remeber that you’ve done it at least once.

  5. Dave R. says:

    Just as long as we don’t see these aids popping up in the workplace, that’s fine.

  6. Srikanth says:

    So true, shower water clears mind to find good solutions!

    Also worth to mention, if you think about an issue or bug that you couldn’t fix and go to bed,sometimes you solve it in the dreams!

    Did anyone had the same happend before?

  7. b wagner says:

    We always refered to an extended throne sit as "talking to Golgothan", a mythical figure that provided help with debugging.

  8. There is however some dirt that cant be showered away by hot water.. I often find myself gazing at a stinky bit of skin unable to cleanse the stench with hot water.

    A recode of such a peace of code is at that point the only solution to me.

  9. Mark Hoffman says:

    Hehehe..Over the years, my wife has begun to question my sanity when she sees all these strange diagrams and such drawn on the steam-covered glass of the shower.

    "You’ve been in there for over 30 minutes staring at the wall and what are you trying to write? That streaks the glass! And why are you washing your hair again? You were doing that last time I came in here."

    "Oh. Thanks. I forget."

  10. Rosyna says:

    I definitely do most of my debugging in the shower. I’ve found bugs (software bugs…) I didn’t even know existed. I don’t draw or anything, I just stand there, staring blankly, thinking. And people ask why the most important thing I had to have when traveling to Japan was the shower (http://www.unsanity.org/archives/000421.php). At least I’m not alone in this kind of debugging.

    I find it’s best to do this while washing your hair so you don’t forget.

  11. Michael says:

    Sometimes I wonder why I read this blog, but then you remind me.

    The bathroom is my design and debugging haven. There’s nothing like taking a 5 minute shower and then standing there for half an hour in the most peaceful think tank I know of. I talk through my designs out loud, though. My girlfriend thinks me strange….

    When I build my home, it’s going to have the ultimate developer’s bathroom as a private extension of the office 😉 I haven’t yet spec-ed all the features, but it’s definitely my top priority.

  12. My kids can’t figure out why I take 20+ minute showers.

     

    Check out: http://blogs.msdn.com/ericgu/archive/2005/10/25/484677.aspx