You need to really master complexity in order to build simple things

Great insight from the BusinessWeek interview with Jonathan Ive and Craig Federighi:

You have to master complexity to make things uncomplicated.

Federighi: I think that’s a unique talent among folks here. If you think about it, so many of the people here are so capable of dealing with complexity, so capable of operating complex tools that something could be simple, or at least workable in their eyes because of their capabilities, but that wouldn’t be very appropriate for the average person. And yet our best people, despite their own facility for navigating complexity, also have a natural gravitational pull toward simplicity and understanding what’s intuitive and continually returning to those solutions.

Ive: It’s also good that we have team members who are also not good at dealing with complexity. [LAUGHTER] I’m just saying.

This, right there, is probably the most underrated skill in the whole field of software development (and probably in the product development profession at large).

It is just so easy for people who need to master the intricacies of software development to see something as simple enough to use, when in truth it's just not up to par with the expectations of most users. In order to build a great product, you have to be a domain expert. There are so many assumptions that you'll be making that it's easy to forget about the wider picture. 


When you build a product you make a lot of assumptions about the state of the art of technology, the best business practices, and potential customer usage/behavior.  Any new product that is even little bit revolutionary makes these choices at an instinctual level–no matter what news stories you read about research or surveys or whatever, I think we all know that there’s a certain gut feeling that comes into play.

The mistake many people make is that they don't realize that they're holding all those assumptions for granted. They over-trust their gut feeling without fact-checking it with real world users. I've done it myself when working in product development. There's an easy tip-off: using the word "obvious". Once you hear yourself saying, "It's obvious that clicking on this button will trigger this action!", you know you're guilty. That's when you should rewind and ask yourself: is it really that simple?