Geeks With Blogs


Things Mark Flory Forgets Because Who Needs Memory When There is the Internet

This morning I got up in the bitter cold to walk our new puppy.  I did not want to do it, but if he does not get his exercise in he turns into a total spaz by the end of the day (instead of just a partial spaz). 

When we were done walking I opened up my garage door to get back into the house using the keypad.  Because it was so cold I was not patient enough for the door to go up completely before I went inside.  Because it was so cold I had my hood pulled up so that my peripheral vision was completely shot.  Add the two things together and you end up banging your head into the garage door. 

Somewhat like this:


One thing I noticed is that when I broke the beam of the safety sensor it did not stop the door.  If the door had been going down and I had done the same thing it would have stopped.  For some reason this gave me a pause and made me think about the way software is specified.

I began to imagine a meeting long ago in some garage door manufacturing companies corporate office.   It was your typically design meeting, guys in suits sitting around talking to a bunch of guys in Dockers.

“Look fellas”, said the main guy in a suit “we have this problem.”  Here he would have paused to make sure he had their attention.

“People keep getting squashed by our doors.  It’s a real issue.  The shut the door and then walk under them, or their idiot kids do, or their idiot dogs, or their idiot Subaru hatchbacks do.”

“Or their grandmothers”, pipes up one of the guys in suits, the obvious suck up.

“Right”, says the main suit “So what we want you to do is to work up some kind of laser that when it gets broken it causes the door to go into reverse and stop squashing people.”

“Like bugs”, adds the suck up.

“A laser?”, asks one of the Docker’s kids.

“Yeah, you know, like in the movies where they rob the art gallery and cross the laser and the whole thing comes crashing down.”

“Like Entrapment”, says suck up, who then glazes over as he thinks about Catherine Zeta Jones.

“Exactly!”, says Mr. Main.

At this point a lot of the Docker's brigade is mad because the suits are trying to tell them how to solve the problem.  Of course, it is pretty much exactly how they are going to do it, but still where do these guys get off telling them how to do that.  And it is not a laser, it is an optical beam.  But for all the grumbling they get to it.

On the first iteration the Docker crew does exactly what is asked.  The plane of the “laser” gets crossed and the door throws itself into reverse.  Except sometimes the plane gets crossed when the door is going down, which is great because it caused the door to go back up.  However, when the door is going up crossing the plane causes it to shut without any way to stop it.  So they go back to the drawing board and decide that what it really should do is just stop. 

And then one brilliant engineer says “You know, there really is no reason to stop the door if the door is going up.”

And thus instead of giving myself a violent whack and knocking my storm trooper helmet all askew, I really just got a glancing blow.  And even better the door did not reverse itself and squish me and/or the dog (although at this point I might have been ok with the latter).

I guess my point is: Specification is hard, let’s go shopping.

Posted on Thursday, January 29, 2009 3:09 PM | Back to top

Comments on this post: Specification of My Garage Door

# re: Specification of My Garage Door
Requesting Gravatar...
Very funny, and very true-to-life!
Left by Martin L. Shoemaker on Feb 27, 2009 1:28 PM

Your comment:
 (will show your gravatar)

Copyright © Mark Flory | Powered by: