"Do you know UML?" I used to say these words often when I started to work with new teams. Nowadays, I just just start drawing boxes and lines. I find I that I can explain as I draw and people grok it pretty fast. "So, you're saying that a Flippet has many Finkles?" I draw the little asterisk to indicate "many" when I say this.

There isn't much to UML. It's just boxes and lines.

A long time ago, people did try to turn UML into a big thing. Maybe they succeeded. No! Don't go off and do a search for "UML" now. You're better off not knowing what they did. It's just boxes and lines that we use to explain ideas. And, you know, you are the boss. You can use ampersands instead of asterisks when you use UML in your team, and you can even call it UML. No one is going to sue you.

The thing is.. boxes and lines got a bad rap a long time ago. They were generally seen as a way of avoiding "real work." And, there's a lot of truth to that perception.

In the past, people did spend ungodly amounts of times getting all of their boxes and lines in the row before writing code. I worked on a team like that once. Those were trying times. But, drawing boxes and lines before you write code is only one way of using UML. The niftier thing you can do is draw them after you've written code. "Why?" you might say. Well, because it's good to get a picture of what you have that's bigger than the class in front of you.

It's nice to think that we "kind of know" what's connected to what in applications we work in day to day, but you'd be surprised. Actually, let me put that another way - you will be surprised if you take the time to sketch out the design of your existing code.

Sketch. Forget about UML generating tools. They are a pain.

Oh, and there's a lot we can say about critiquing a design once we have a nice sketched UML view of it. But, here's a good short rule of thumb:

Boxes good. Lines not so much.

When you have too many lines connecting things crazily, your code is in trouble.

Isn't it funny that when we look at a project the things that turn into boxes are more visible than the things that turn into lines. Maybe that's part of why it happens.