It's not easy to create a good software or hardware product - Microsoft, Google, Apple, Facebook, Twitter and a myriad of companies large and small put a huge amount of effort into everything they ship.
That's why it annoys me so much when they stop at good and don't get to great by making the User Experience (UX) so good that it's invisible.
I'm lucky enough to work with some very smart people who get UX like Nishant and Tim who do a good job of reminding me about it most days.
So what do I mean when I talk about the difference between good and great?
Let me take one example. You probably have several you'll be able to think of when you see what I mean. My example is ActiveSync in Windows Mobile.
I've been using Windows Mobile devices for a while, and I check mail every day (sometimes more than every day - sorry Storm!) so I really care about the process.
Now I've got two choices in Windows Mobile. I can either have it work in full "push" mode so mail is sent to my phone as soon as it arrives. That would actually be optimal (I have an "all you can eat" data plan and WiFi at home)... but the high data traffic eats the battery at rather a scary rate. That means I operate in "on demand" mode. And here's where it's painful...
After unlocking the phone I have to go into Active Sync (either the default... Start, page down until Active Sync is visible, or the "power user" way.... scroll to the "Communications Manager" settings - last menu item on the homescreen - and select Active Sync; or I've added a couple of short cuts - one on the user customisable key and one via a registry hack) - a minimum of 3 clicks to get the sync started.
Once the sync completes and I see there's mail I don't have the obvious one key "read new mail" option.... I have to go back to the main menu, click down to get to the mail option, scroll right (past Text Messages, Picture Messages and Audio Postcards) and then get into mail.
For something I do day in and day out it's not exactly optimal... and every time I do it it annoys me.
And it's not just the standard apps that behave like this. The T-Mobile Hotspots app likes to interrupt whatever I'm doing every time we pass a Starbucks (really boring on the bus to work let me tell you) and I have to "dismiss" or "logoff". Sometimes sitting in a Starbucks it will fail to authenticate properly just to add insult to injury. Hardly surprising I've disabled that rubbish and installed DeviceScape which handles the log on reliably and seamlessly.
Before the Nokia S60 and iPhone crowds get all high and mighty they've got their own little idiosyncrasies as well.
The problem is that it doesn't matter what the tool is (Outlook, iPhone, a Samsung TV, Comcast Cable, a 3 Series BMW) .... people don't complain loud enough, they just expect the pain and live with it.
Funnily enough sometimes dropping someone an email or writing a letter is all it takes to reach a tipping point and get the feature improved. I remember years ago writing a letter to a car manufacturer to suggest a better placement for one of the auxiliary light switches. They listened (I even got invited to the motorshow where the next model launched with the "fix" applied) and to this day I've an affection for their brand - it doesn't always translate into a sale when I need a new car, but it always results in positive recommendations
Not concentrating on polishing the UX because you're busy trying to squeeze one more feature in there, or pushing a usability fix to the next release (and then the next and then the next) because it's not blocking shipping isn't the way to win loyal customers. It's a way to push them away one cut at a time, until a thousand little cuts they are dead to you.