Wednesday, March 11, 2009

Users Lie, and how to deal with it.

As you learn to develop and/or program, you eventually have to deal with users. You are, after all, trying to create something people will use.

When trying to develop a tool for a user they will give you their requirements. This process has been discussed and, more frequently, mocked throughout the Internet universe.

Eventually some simple 'truths' are concluded by developers. Generally they are (and I loosely quote):
Users Lie
Users don't know what they want

The accuracy of those statements is debatable. Users don't purposely lie, they want something and they want to make sure it gets done their way and they're gonna tell you about it. Maybe just not up front.

Also, they know what they want.

So, to boil down to the truth, it comes down to:
Users don't know how to communicate what they want.

How To Deal With It
So, what do we do? In my opinion, the best way to determine what a user wants is to walk through the job they are trying to get a tool for.

This is where people skills separate the coders (write code) from the developers (create tools people enjoy using). (Again, this is me loosely defining.)

Another point to beware of, in the 'Users Lie' department comes into play when re-writing a piece of code. You will often here, 'We don't use that' with or without the added 'anymore'.

Warnings should sound. Developers don't put things into code unless they have to (or it's an easter egg, but who has time for that!!!)
Somebody, somewhere, at some time, wanted that feature.

Use due diligence to try to find out who. And then... if you are going to take it out, COMMENT. (This is where comments and version control save butts.) Make it as easy as possible for the next 2 or 3 versions to get that feature back for when the big boss upstairs does his yearly check of this part of the software and finds out that the 'Executive Report' that 'nobody uses' isn't there!!!

I'm just saying... :)

No comments: