This post is directed at software developers. If you not one of the Guild, please leave now. No offense, come back tomorrow and I’ll be back to mindless drivel.
Ok, they are gone. I’m addressing my brother programmers now. Please for God’s sake, stop asking users “Would you like the (program/website/widget) to do xxx?”. I implore brethren of the Guild to not use this technique when talking with clients or or users and I’ll give you two reasons.
First, you, as a programmer, embody a wealth of knowledge. Knowledge that your clients do not have. If they did they wouldn’t need you. You know how to make computers do wonderful things and that’s magical. However, in all but exceptional cases, you are not an expert in the problem space. That is the knowledge your client brings to the table. In most cases your client knows more about his business than you ever will. So for you to suppose that you understand the problem he wants you to solve so well that you can not only solve the problem but improve on the process as well is arrogant. Yes, we owe it to our clients to suggest improvements when there is a technology that can truly improve their process but way more often than not, suggestions are made to make the programmer sound like he knows what he is talking about. (I know from whence I speak, I am guilty of this grievous mistake.) You and I as programmers know how to take a users requirements and turn them into lines of code. Do that for your client without adding features to widgets and I’m sure that they will love you for it.
Second, given an option that may sound reasonable, users will almost always say yes. Especially if if it a change in their work flow and they have not fully thought it through.
If you ask a user of a car “Would you like the doors to lock automatically?” the answer would almost always be yes. However, if the user were to think this through, that design ‘feature’ is fraught with difficulties and careful thought needs to be given to all scenarios else the devil of “Unintended consequences” rear her ugly head. (In the above example, if you do not design them so that the doors automatically unlock upon power failure, you could strand users in their vehicle. The list goes on, talk amongst yourselves.)
Having said all of that there are times when we as programmers do hit upon an idea that will truly benefit the user if not revolutionize their experience with our software. When those ideas do come, carefully word your proposition to the user. Instead of asking “Do you want the software to do xxx?”, ask them “How would you use xxx?”. (How would you use an autosave feature? How would you use an interface into maps.google.com? How would you use a self-destruct button?) Let your users talk themselves through potential scenarios that they go through daily and apply your idea themselves. Then they can truly tell you if the feature is useful or not. And useful software is what we are all striving for. (Unless we work at Microsoft.) :)
Until next time,