This post was originally on my Posterous account, it's posted here without updating, some of the links my not work.
This micro-blogging lark isn't going very well, not posted anything for months. Oh well, let's try again...
When I first started working in commercial software development (nearly 10 years ago now) the first major piece of work I was involved in was a rewrite from the ground up of one of our applications. The application processed data in realtime and controlled some hardware based on the data received. There had been 5 of the best people in our group working for 3 years to replace an ageing, ugly, bug riddled and almost impossible to maintain application with a shiny new one. The old application was very basic, it was controlled through a couple of drop down menus, and some dialog boxes, and 2 text fields giving progress updates. The new one had a fancy new UI, in corporate colours with big shiny buttons that had embossed icons on them showing what they did. Gone were the text fields, replaced with page after page of graphical displays updating in real time to show exactly what was happening.
I was lucky enough to be able to visit with one of our most important customers to oversee the install. I installed the software and gave a demo, being sure to show off the new UI.
They hated it!
OK, hate is a strong word, they did like the new features and the better performance meant that the hardware control was more accurate (timing was very critical to this application), but they hated the UI. It was big, took up too much of the screen, and they had to navigate around all over the place to get to the information they wanted to see. For all it's faults the old application showed the important information, and only the important information. This was when I realised that the customer could not care less about our software, all they wanted was their hardware doing it's job, so they could get on with theirs.
This experience has stuck with me, and guides a lot of what I do whenever I'm involved in any kind of UI work. I've also been reminded of it by a couple of pieces of software I've had to put up with recently. The first is this:
This is the Samsung ODD Firmware LiveUpdate, and what it does is update the firmware on a Samsung Blu-ray drive. Or should I say, what it also does is update the firmware on a Samsung Blu-ray drive, it's main purpose seems to be to sit in your task tray, popping up every day or so to remind you that there aren't any updates available at the moment. This is for some hardware firmware! I expect that I may have to upgrade when I first get the hardware, and then only if I have problems, I do not care even the slightest that the Samsung software guys haven't delivered a new bit of whiz bang firmware in the last 24 hours! And look at that interface, someone has spent a lot of time and effort on that, with a lot of branding, it has an expanding black rectangle animation to let you know it's opening, and a non-rectangular window. I'm sure they are very proud of it, but this software would have been perfectly fine as a little command line app that I can leave, hanging around on the hard disc, in case I ever need it. It also requires that you give Samsung your contact details before it will work (or even close) which I personally think is disgusting behaviour, I've already paid you money and now you want me to give up my contact details as well. (Spamgourmet.com to the rescue)
After fighting with that monstrosity I discovered that Windows 7 doesn't support Blu-ray playback out of the box (Didn't we have this pain with DVD as well?) but the drive comes with CyberLink PowerDVD, which I installed and was able to watch my first (and possibly last, but that's another story) Blu-ray which I very much enjoyed. After watching the film, I went to shut down my PC, and noticed a whole array of new software in my Start Menu. When you install PowerDVD it comes with loads of other stuff you wouldn't possibly want, I mean who buys special discs that they can print labels on using the drive? Who needs two video editing suites? Who thinks, you know, having only one way of writing a DVD isn't enough, I really need three more!
So CyberLink and Samsung haven't figured out that their users don't care about their software, but who has? I think the perfect example of egoless software is Google Chrome. I have to admit to being a bit of a Google fanboy, I'm blown away by almost everything they do, but Chrome is by far my favourite. If you using it to read this, take a look at the window it's running in, now with the exception of the Task bar and the little one on the New Tab page, can you see a single Google or Chrome badge anywhere? Notice how when you maximise it the title bar gets completely out of the way. The whole application is designed to allow you to look at web sites, and do nothing else. Have you ever been asked to restart Chrome or your computer to install an update? No, because it does it silently in the background, most of the time your not at all aware it's happened.
This is how all software should be, focused on allowing it's user to do what they want to do with the minimal of fuss, that's all they are really interested in, and that's what they pay for.