I was playing with my iPhone earlier today and I remembered a notion we've all spoken about. For some reason, though, this time I pondered it a little longer than usual. It feels wonderful.
The iPhone interface feels authentic, polished, robust and reactive in a way that few other software interfaces do. Many Apple interfaces do in fact.
I started thinking about other examples of this and I've come to realize that todays users seem to be rewarding feeling over function in their software. Google, FriendFeed, iPhone OS, MacOS, BaseCamp, Omnifocus, Flickr. These are all applications that feel good.
In many cases, they are far less functional than their counterparts, but that doesn't seem to matter.
I also recently came across the Facebook Design Team's Facebook Group.
This is from their group description:
We love clean and simple. We are passionate about enabling the user to connect and share what they want, fast. We design for users of all ages and demographics. We don't believe in reading a manual to understand how something works. We care about details down to the pixel. We are a small team of 20, and we design the homepage, profile, chat, inbox, platform, and every part of the Facebook experience.
I especially like this sentence:
We care about details down to the pixel.
I don't think anyone was under any illusion that Facebook did not care about pixels. Their interface is so clean and consistent that they have actually killed category of personal branding - self expression through design.
I was recently lobbying for something to be simpler to use. At the end of my description of how it might work, I was told that I contradicted myself, because the implementation I described was more complex.
The reality is that simple, intuitive and good feeling design is not about a simpler implementation - it's actually about a more complex implementation. It's usually an implementation that takes more thought, more time, more pixel pushing and ultimately more business logic for the developers.
Apple didn't need to make their home screen bounce when you tried to push pass the end. But they did. It makes it feel great. I sit there playing with that little bouncy effect all the time (yes I do have a life). It took more time, more complexity and more work. But that's not the point - the end result felt and behaved like a real-world object. It feels nicer and is ultimately a more intuitive way to signal the end of the list than ignoring the user input or jarring the user with some brute force notice.
Pixels matter. Animation Matters. Layers of additional business logic that try to consolidate and simplify the user experience matter. More than most engineers and product managers know.
Product managers need to give engineers the time to polish the pixels. They need to consider that getting a product 'feature complete' does not mean it is 'user complete'. Engineers should also lobby for product managers to give them the time needed. When they are writing code and presenting things to the screen they also need to take the initiative to consider the pixels because the pixels matter.
As a product guy I've been guilty of pushing for feature complete instead of user complete. And I am going to try to find the patience and the process to change that.
Engineering is not just about building something that works - it's about building things that belong in people's lives. Things that people want to use not because they have to, but because it makes them feel good.