What Happens when Engineers don’t Rule
Written by Kendall Miller on May 5, 2009 – 12:42 amI’m an engineer at heart. I worry about all the little details of how something works technically. When I can, I go for the overengineered solution every time. We recently needed to get a Microphone Pre-amp to USB device. Instead of getting the plastic MAudio unit that probably works just great I got the USBPre at twice the price. Why? Just look at that case, it’s awesome:

With a nice metal case like that, industrial strength construction – it’ll last forever! Of course, this thing will never leave my desk, so the ability to be run over by a truck is more or less academic.
So with my natural preference for hard core engineering I’d like to report that the best software comes from a group of driven software engineers. Technically, that may be true – a big group of engineers can make a very technically sophisticated product. But, really great products? Well, that requires a lot more than just technical excellence.
I think this is the backstory behind Vista’s successes and failures. We’ve been using Vista is our corporate OS since January of 2008, not long after it was widely available. It’s worked very well for us – even better since SP1. But again, we’re engineers: half of our systems are 64 bit, and we use high end hardware so we were very good candidates.
A Whole Lotta Polish
Last weekend I installed Windows 7. Now, even though I generally love new toys I haven’t been chomping at the bit to try out Windows 7 because Vista is working great for me, and we’ve had a lot of deadlines I didn’t want to risk. But, with the release of build 7100 last week, I couldn’t resist.
What’s the big difference between Windows 7 and Windows Vista? Polish. A whole lotta non-engineering polish. I was using the media center capabilities last night and noticing all of the little things that are completely irrelevant from an engineering / functional standpoint. These same things make all the difference in how you perceive the quality of the product and, more importantly the quality of the experience in using the product.
Is Build 7100 without issues? No – there are some optimization issues that I’ve run into, but they’re likely known already within Microsoft and they have months to refine them. The big picture is that the risky, time consuming design details are all there. I haven’t even turned off UAC yet, and I couldn’t live with that under Vista for more than two hours.
Now, it may be that if you’re creating the next version of SQL Server that this fundamentally human element of intuitive adjustment and polish isn’t as necessary. SQL Server could be all about hard core specifications, tests, and optimization. That’s reasonable when the human to product interface is either through a standard you can’t affect (e.g. T-SQL) or is confined to highly technical specialists.
Goes to Eleven
When you’re creating an application, you aren’t going to find the polish by reading a functional specification. You also aren’t going to get it just by using any particular development methodology – Agile, Waterfall, whatever. What you have to be willing to do is go beyond the written functional and system specification and look carefully at each aspect of the human – computer interface in your product.
This dedication requires a few things:
- Access to a User Experience (UX) / Human Computer Interface (HCI) specialist. These folks are experts not for facts and figures or things you can read in a book but their experience and practiced eye that lets them pick out the key details that make all the difference.
- Dedication to making it better: At each turn, and in very difficult moments, you’re going to have to repeatedly look at what you have and what you’ve done and say OK, how do we make this better. Take the case that we can leap beyond this, what would that look like?
Done right, this experience can be tortuous to engineers because it’s about iterating through hard to quantify, experimentally determined states without objective metrics to guide your process. You will see the results of your work – but as the sound of distant thunder as your users either rave more and more for what you’ve done or just accept meekly what you give them. Engineers are used to tweaking a knob and seeing the needle move in a quick, quantifiable way.
If you want to get a sense of what happens when people think deeply about how to create software that interacts well with people, read the Microsoft document on how to write an error dialog for Vista. This is 28 pages on how to do a good error message and why. Warnings? another 12 pages. Even if you’re a hard core engineer, some of the Vista User Experience Guidelines is a great read to understand why it takes many iterations and at least equal measure of instinct and intellect.
Fighting the Good Fight
The challenge with pushing for breakthroughs in the user experience with your product is that it doesn’t fit well into traditional engineering problem solving techniques. That may be why some of the most successful organizations at it have a strong command & control personality (like Apple) that emphasizing an individual making an intuitive judgment to decide what’s best. Trying to apply traditional engineering approaches will generally stifle and drive away the very talent that excels at solving these problems. Just ask Google. Their well respected expert on design and usability quit this year, saying:
I’m thankful for the opportunity I had to work at Google. I learned more than I thought I would…. But I won’t miss a design philosophy that lives or dies strictly by the sword of data.
The full text is an interesting read. Probably the most poignant example was testing what shade of blue should be used in a specific scenario. This is a good example of trusting your judgment, but don’t try to explain it. It’s a fundamentally human, intuitive leap and you might be able to rationalize it, but that doesn’t mean you can really explain it.
The best part is that if Microsoft is finally getting the message that it isn’t enough to just complete on business and engineering requirements but instead you have to battle for the hearts and minds of the people that use products it’s only good for everyone. Just like Linux has pushed Microsoft to be faster at evolving Windows (and creating more low cost licensing options), this may push players that are known for great design to have to up their game as well. I can’t wait.
Tags: Cosmetic Defect, HCI, Software Development Process, User Experience
Posted in Software Development | 4 Comments »
May 6th, 2009 at 10:47 am
GREAT post Kendall.Found myself nodding and smiling throughout. Whether we like it or not, people’s expectations are being raised constantly by the plethora of online destinations and tools that offer sleek, intuitive and (dare I say it) sexy experiences. And what people see in that “personal” realm colors their expectations of what they see and use in the professional realm. As designers and engineers we don’t have to LIKE that — but we DO have to accept it and design our solutions accordingly.
When the user experience sucks, people walk. Apps don’t get used, products don’t sell, cost savings are not realized, redundancies and process bottlenecks remain. I’ve been saying for a very long time that designers need to think more like engineers and engineers need to think more like designers. We NEED each other, need to collaborate and learn from each other to meet this exponential growth of expectation when it comes to web apps.
Again, well done. Keep it coming!
May 6th, 2009 at 5:28 pm
Great post Kendall! I always have to remind developers about the need to think simple. We often joke that there is a Microsoft way of releasing a new product/software and there is an Apple way (keep the functionality to a minimum). That’s when UXD comes in play as they will quickly remind engineers how important is to know your audience and how much patience do they have for your product. Majority of mainstream home users don’t have a patience to figure out what was your brain thinking when you were developing the interface or a gadget. They want you to figure out how their brain works when utilizing your system.
P.S. That being said – engineers of Verizon’s TV remotes have no clue how human hand operates. I love FIOS, but looks like they did not want me to enjoy watching the TV, but rather wanted me to exercise my fingers by going top right, then left bottom and back and force again to do a simple operation.
May 6th, 2009 at 10:48 pm
It’s unfortunate, but many companies resort to improving user experience only when all else fails, not as part of the initial design process. I seriously doubt that the Comcast or Verizon DVR functionality would be remotely as good as it is if it wasn’t for TiVo. We just converted to FIOS, and my wife is not happy about losing her TiVo’s. She’d rather have no HD video and TiVo than the Verizon DVR. I haven’t told her that it appears light years better than the Comcast version I saw two years ago…
In this case, it’s a good example of the quality of the user experience (cable DVR vs. TiVo) trumping the quality of the presentation (SD vs. HD).
May 19th, 2010 at 5:01 pm
GREAT post Kendall.Found myself nodding and smiling throughout. Whether we like it or not, people’s expectations are being raised constantly by the plethora of online destinations and tools that offer sleek, intuitive and (dare I say it) sexy experiences. And what people see in that “personal” realm colors their expectations of what they see and use in the professional realm. As designers and engineers we don’t have to LIKE that — but we DO have to accept it and design our solutions accordingly.
When the user experience sucks, people walk. Apps don’t get used, products don’t sell, cost savings are not realized, redundancies and process bottlenecks remain. I’ve been saying for a very long time that designers need to think more like engineers and engineers need to think more like designers. We NEED each other, need to collaborate and learn from each other to meet this exponential growth of expectation when it comes to web apps.
Again, well done. Keep it coming!