Monday, November 8, 2010

Design anti-patterns: Automating the Horse

This is one of the most ubiquitous of all design anti-patterns: the tendency of clients to try to automate a horse. It's more than a tendency, it's almost a corporate imperative. It works like this.

You're a contractor or internal project team that is charged with implementing a new automated system. Because you need some requirements, you meet with your business partner and start taking their requirements. You may also get to interview some of the people who are performing the current work manually. The interviews with managers and employees sound like this:

"OK, first I open my folder and take out a blank form. I start filling in this field and then that one from the emails I got since last night. Then I call a department to get the information for this field or that field. And then I pull out my manuals to look this field up..." And on and on. If you ask why someone is doing a particular thing the answer is "because I need to do it to figure out what to put in this field."

When you start presenting possible solutions you get pushed on from the sponsor to "make it look like the current process so people won't get confused." What they want you to do is automate their horse. The first attempts to automate transportation usually included a lot of features that were present in the original biological equivalents: reins and manes and saddles for riding on land, feathers and wings and beaks for moving through the air, etc. Progress was made when the designers stopped thoughtlessly recreating the biological features and started to exploit the advantages of the technology itself: wheels and combustion engines and rudders and so on.

It also helped when the designers remembered the goal for all this activity. If your goal is to build a mechanical horse for a rider, then you spend your time worrying about putting in features that perceptibly satisfy that goal. If the goal is to build a device capable of carrying a passenger from one place to another by whatever means necessary then you can throw out your assumptions about the goodness of the existing solution start looking for a solution with whatever materials are available.

So you have to get the higher level goals for the activities that you are discussing with your business group. And this is often hard to do if your business people already have an "automated horse" solution in mind. But you persist, and try to use the automation project as an opportunity to re-think and redesign some existing processes, using technology to offload a lot of unnecessary work from the human operators. When this works, it's a big win for everyone. If you can't do a redesign, you often are left with a mechanical horse.

No comments: