Coding Horror

programming and human factors

It's Better Than Nothing

I was struck by this quote from a New Yorker article on Muzak:

"Our biggest competitor," a member of Muzak's marketing department told me, "is silence."

The problem with comparing something to nothing is that nothing is, well, nothing. James Bach elaborates:

I was watching Dr. Stuart Reid talk about model-based testing, some months ago. During the presentation, he complained that so few people used UML for model-making. Why don't more people use UML, he asked the audience?

I suppose his question was rhetorical, but I couldn't help myself. I called out "Because it's clunky!"

"It's better than nothing," he replied.

Think about that. Think about that phrase. A comparison is offered between something and nothing. Who could prefer nothing? Nothing is a void. It's scary and black. It makes us think about death. Ick. But wait a minute, the comparison that matters is not between something and nothing, it's probably between something and some other thing.

As Bach points out, any comparsion that ends in "It's better than nothing" is an invalid one. There are always alternatives, whether the person speaking chooses to acknowledge them or not. Instead of UML, you could..

  • model in your head
  • model via pencil and paper sketches
  • model through your source code

In my opinion, code is a perfectly reasonable place to model. That's why I was so encouraged by the fact that visual, two-way class modeling support was pushed down from Visual Studio Team Edition for Software Architects into almost all the editions of Visual Studio 2005 (Standard or better). It isn't formal UML, but it is a kinder, gentler modeling tool that a lot more people are likely to use.

As code   As model
Account class in code form   Account class in model form

Written by Jeff Atwood

Indoor enthusiast. Co-founder of Stack Exchange and Discourse. Disclaimer: I have no idea what I'm talking about. Find me here: http://twitter.com/codinghorror