Over at my day, evening, and night job, I just posted something on simplicity. The audience for that blog is such that I don’t really like to go into as much detail as I normally do. Lucky for me, I have all of you…
We just went through a fairly detailed critique of our application’s UI right down making sure the number of pixels used in the borders for all our dialogs were the same. Nitpicky, you say? Perfectionist? Downright anal, even? I’d be lying if I claimed I didn’t think the same thing at first. (Side note: After trying to parse that last sentence about five times, it probably has no business in a post about simplicity. But you all know what I mean so I’m going anyway.)
After looking at the final product and doing a bunch of reflection and stuff, I’ve decided it was probably one of the best learning experiences of my recent career.
Here are three dialogs that I had just done a bunch of clean-up work on (click for larger versions):
All looking pretty spiffy if I do say so myself.
Now here they are in the format that was given back to me after submitting my work:
Here are some variations on what went through my head when reading this:
- Who’s gonna notice?
- There’s more important stuff to work on
But being the passive-aggressive hillbilly that I am, I went about correcting the problems and grumbling about looming deadlines like any good hero programmer should.
Now let’s assume that I’m being honest with myself and summarize my grumblings a little differently:
- Yes, this is important but it’s also boring and I want to move on to some real development.
(Let it not be said that self-awareness is all it’s cracked up to be.)
This is a symptom of a larger “disease” I had contracted (other than misusing “double quotes”). As a consultant in the software industry, I like solving problems. Once solved, I want to move on to the next one. But a lot of times, the problem is solved only in my head. In this example, I have three fully functional screens. All work to the specifications laid out before me. Individually, there’s nothing wrong here and because of that, in my mind, I had already moved ahead to the next problem.
But user experience is a problem. Judging from our competitors, it’s a rampant one. (Hoo-ah! Bet you didn’t think the hillbilly was capable of that kind of potshottery.) Reflecting on this recent experience, my mindset is partly (possibly mostly) to blame. I didn’t put enough emphasis on the user experience and so my thinking was: In order to succeed, we need to pump out features at any cost. This is what my thirteen-odd years in the business has taught me. As long as you don’t totally screw up the user interface, the user will adapt. And when in doubt, do what Microsoft does.
Now, me taking on the persona I have on this here blog thingy, I can tell you first-hand that simple isn’t easy. (Given how much I’ve edited this post, writing about it ain’t exactly a swing o’ the possum either.) But there’s a reward to getting the user experience right, though. Yes, there’s an emotional response that the user gets and they become champions for your software and blah, blah, blah. That’s all well and good. But thinking more selfishly, I have to work with and use this software for the rest of my career (<random deity> willing). If it has a bunch of little quirks in it that I will never get around to fix it, it’s going to start eating away at me.
QA person: “There’s a bug in the Edit Staff dialog”
Me (to myself): “Woman, that screen has always bugged me with the buttons being slightly too high and everything being a little off-centered.”
Me (to QA person): “Assign it to Mayumi”
Ha ha! I jest, of course. We have no QA person. Why do you think I spent so much time automating our UI tests?
Time to wrap this up. Closing point: Creating a good user experience is a lot of work but worth the effort. For us, it’s meant taking out features that were already built until we could get the UI right. The nice thing is: once you start enforcing UI standards from the beginning, it’s much easier to maintain them going forward.
Kyle the Experienced