About once a day, I sift through our aggregated Web server error messages. My usual sorting goes something like “this needs to be addressed, that one is novel, this one is my personal test and can be ignored.” Usually there’s at least one issue where my first reaction is “Oh, that’s just user error.”
One particular error kept coming up from our internal users to the point that it became a nuisance, and I cried out “Why can’t they get that right?!” Immediately, I was convicted by what I had read in QBQ: The Question Behind the Question (a must-read for the Dave Ramsey team). That wasn’t a ‘QBQ’ question. What can I do so that my internal users will get that right? In this case, a drop-down list contained an invalid option entitled “Select an Option” The solution was obvious, remove the invalid option and enhance the then-arcane validation message. This process can be generalized to the following:
User Error + QBQ → User Interface Error
Don’t get me wrong, some times a user behavior is just too bizarre to code around it. (The customer isn’t always right.) Sometimes a customer just needs some education. The point is that as the solution developer, I’m responsible (at least in part) for my end-users’ actions. It is neglect of this truth that yields the bad reputation programmers get for their people skills.
Let’s do better. The next time you’re faced with a “PEBKAC” (Problem Exists Between Keyboard And Computer) error, before you write it off as ID-10-T, consider the UI or the UX or the messaging or the training. You’ll ultimately wind up with a better product. Who knows, maybe you’ll even create documentation.