Hanging My Test Driven Christmas Lights

Every once in a while I have one of those, “Science catches up with reality.” moments. Take, for example, this weekend. I was putting the Christmas lights up on our house. You know, that yearly ritual where an otherwise sane man will risk life and limb in the pursuit of putting more lights on the outside of his house than his neighbor has. I fall victim to this peculiar form of insanity about once every 12 months. So there I was, cursing as I disentangled myself from a particularly aggressive set of C9’s. I was just about done. Icicle lights along the roof line, LED’s along the garage, rope lights arrayed down the driveway, lighted Christmas tree and snowman in the front yard – my chest positively swelled with pride. All I had to do was to plug it in and survey this masterpiece of suburban manhood. I stick the plug in the socket and I hear a “pop!” as the fuse in the snowman blows, and then I look up to notice that half the lights on my roofline are not lighting up. Cue more vehement cursing.

I had broken the first rule of agile development – Test First! Of course, any reasonably competent handyman would have known to try plugging in each strand of lights before beginning the life threatening task of suspending them from the roof – right? As I stood there at the foot of the ladder and contemplated my predicament, It occurred to me that the consequences of failing to test in the real world are a whole lot more painful than in the digital world. It’s really quite amazing that Test Driven Development hadn’t come along much earlier. If you stop and look around, people are doing it everywhere! Doing some woodworking? Measure twice, cut once.

Why did it take so long for us developers to catch on? Perhaps it is just because in the digital world, the consequences of failing to test your work really don’t have any physical pain associated with them. Anguish maybe, but pain? No. Was I going to be in pain replacing those lights? Oh yes.

I’ve always suspected that every developer’s chair should have a Taser installed in the seat. Broken build? Bring on the voltage baby! Maybe a more severe appreciation for the consequences of breakage is what we all need. As I returned to my roofline to retrieve the dead strands of lights, I realized that even the most trivial activities can benefit from the application of Test First or TDD. After all, if you had asked me, I would have described putting lights on the house as anything but a challenging intellectual activity. Hah! now I was the idiot desperately clinging to the frozen eves of my own house, praying that I wouldn’t fall. As my flimsy ladder shifted beneath me, my life flashed before my eyes like a bad ‘B’ movie (very boring – gotta get a new writer) I realized the error of my ways.

To make matters worse, I had a string of lights that would sort of randomly turn off if I happened to jiggle them just right. My tests on the ground would prove they were fine, but then if I moved them a little, they just might just as easily test as bad. What can I do to solve this problem? Test first doesn’t do me any good here. Then I had an epiphany: why not use Continuous Integration! If I leave the lights on while I’m hanging them, then I can always visually see if I’ve created a problem as I’m in the process of hanging the lights. Cool! I can make changes to the layout of the lights based on the feedback I get as I actually lay the strands out. Blow a fuse? No problem, time to rethink that strand arrangement. So now I’ve managed to incorporate two principles of agile development into my process for hanging Christmas lights: Test Driven Development, and Continuous Integration.

I know what you are thinking – this guy seriously needs to get a life.

But honestly, I think it helps to try and find examples of these principles in your daily life. As we focus more and more on changing our fundamental paradigm for software development from waterfall to agile, we need to keep seeking validation in the “real” world. Look to other disciplines, look to the mundane, the everyday things that we do. Check and see if the premises that we use for Agile Development apply elsewhere. So, the next time you find yourself facing one of those everyday challenges, take a moment to reflect on whether the application of a few agile principles might be just the thing to help you out. And who knows, you might actually get those Christmas lights working…

Merry Christmas and Happy Testing!

7 Responses to Hanging My Test Driven Christmas Lights

  1. Robz says:

    Real life examples eh? We worked recently on my mom’s car that was overheating – http://geekswithblogs.net/robz/archive/2007/12/28/real-life-examples-of-agile-development.aspx

  2. hollie says:

    there must be a better way. broken ladders, put it up take it down. take it down late be condemned by neighbors. start late + freezing torturous unpredictabl weather. what about a standard built into the house at the house constructionl a little tube that allows the owner to gently pull one strand through the tube and be done with it yearlly. You install the clear discrete tube around the house. You have a plain rope in the whole tube you tie an attachment of light string on the end of the rope, drag it thru the tube in ten minutes. Maybe it is automated. Viola, simple. Light up the house effortlessly for the year. pull it out by the string at season end. No muss no fuss simple fast fun. The wave of the future. Want to make it with me? Sound crazy. I’ve tried all kinds of contraptions and magnets. I hate stringing lites and dealing with plugs and ladders. I like simple. goofy to be thinking about this? Maybe. Simple is the answer. Best wishes. Ho ho ho and simple life.
    Hollie

  3. Your post is very well crafted and I have learned. I’ve added your blog to my reading material. Thanks for the update!

  4. If you live out east do you have to get out in the snow to put up Christmas lights and take them down. Or do most people just leave them up? I obviously come from a place that doesn’t snow too much!!

  5. LOL – “out doing the neighbor” always reminds me of Clark Griswold. An inch from death every year, just so he can burn up the grid and one up the neighbors with his Christmas lights.

  6. dua sms says:

    dua sms…

    […]Hanging My Test Driven Christmas Lights « Agile Tools[…]…

Leave a comment