I’ve been thinking a lot about what separates great software from mediocre or bad software. And the clear differentiator I keep noticing time and time again is the attention to detail. The business logic that is responsible for the user experience.
For example, this morning I got an email with the following subject from 1-800-CONTACTS, where I order my contacts:
Your last order should run out on 05/10/2013, reorder today!
The idea behind this email is awesome. I’d love to get reminders that my contacts will be running out and an easy link to just reorder them. But they missed a small detail in this email. It is 05/11/2013 today! In other words, they send me this email AFTER the estimated date of when my contacts will run out! If I actually woke up this morning with no more contacts to be found and then saw this email, I’d be pretty upset. Now, I have to wait for a few days until my contacts are shipped to me!
In other words, there is a very fine line between great and mediocre software. Getting the details of the implementation right is more important that just executing a general half-baked good idea.
In contrast, when I hold my iPhone in my hand, I feel like I’m handling an amazing piece of art. That’s because Apple, that created the iPhone, took the time to think about every single detail that makes up this device – from what it looks like, to the materials it’s made of, to the software that’s on it. It makes me feel loved to think that someone took the time to actually think of all these little details, just for me!
So great software is not just about functionality, but it’s also about love. All the details that have been thought of communicate to the user that whoever built this masterpiece really really cared about it. They put their soul into it, and that’s something that all of us want to feel more of in our lives.