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).
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.
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.