Tuesday, November 20, 2007

Personification in Software Design

When you're in a design meeting and people are throwing ideas around it's easy to get confused. People have this funny habit of not fully specifying their subjects. For example, "It wont store versions." What is "it"? The website? The application?

This really does happen all the time, it doesn't matter who you're talking to. Its really hard to avoid. When you're the one talking, you have a mental picture in your head. You're just trying to convert that to words so other people will see it too. But the people you're talking to don't have the same mental picture, so "it" could mean something completely different to them.

You're really trying to shape their mental picture to match yours while continuously updating yours to reflect theirs, so you have to be very specific until you can settle on some common terminology to represent that picture.

I like to use Personification to make this go smoother.
the attribution of a personal nature or character to inanimate objects or abstract notions, esp. as a rhetorical figure

I like to take this one step further and make the people I'm talking to represent the various components of the system. Person A is the database, person B is the website, person C is the application, and I'm the Document Management system. I've found that this works really well. Now I can say "You wont store versions, but I will" instead of "The website wont store versions, but the Document Management system in the application will."

Not only does this make the sentence shorter but it makes it easier for our mental models to jive and its funny. "Maybe you wouldn't have performance problems if you weren't written in Javascript!" See?


  1. I do the same thing

    My problem is when diagramming or visualizing a system I often make mental leaps that the diagram or picture doesn't show and can't change it as fast as it changes in my head.

    That and the fact that for some reason other people are unable to see the thoughts that are still in my head for some reason. So rude.

  2. Yep, devs who write software often personify their apps, usually unknowingly and with funny results:

    > VLC media player versions 0.8.6 to 0.8.6c suffer from
    > a security vulnerability in the ActiveX plugin...

    There's actually no definition of "suffer" that relates to a deficiency. Someday software will have feelings, but it hasn't happened yet.

  3. Maybe, indirectly, they are referring to the suffering of the developer who realizes they released that security vulnerability on the world.

    Oh the pain! the torment!

  4. Heya¡­my very first comment on your site. ,I have been reading your blog for a while and thought I would completely pop in and drop a friendly note. . It is great stuff indeed. I also wanted to ask..is there a way to subscribe to your site via email?

    Document Management Systems


Note: Only a member of this blog may post a comment.