If there is one key take away I have from years of creating and designing software, it is that the importance of how to approach the problem of initial design of the visual interface and interactions of a product.
When I started my career in software, I approached the problem like most engineers. I put in every feature I thought someone would want, but I did it from my perspective. I wanted loads of features and a way to customize everything as well.
When I started back at Apple for my second tour of duty in 2001, I was given the amazing opportunity to start from scratch on a new product. And better yet, I was shepherded through the process by none other than the late Steve Jobs.
The product was Keynote and it was a delight to be involved in the creation of such an amazing product with such a great team. Instead of doing every feature imaginable, we started from a long list but attacked it one feature at a time. While the engineering team was focused on creating a basic canvas architecture, we focused the design team on the slide outline and overall interface.
The design went through weekly reviews with Steve. Every single pixel was scrutinized. I recall a common question was "why is that there?" If it wasn't something that was needed 95-100% of the time, it was removed.
We also looked at animation of the interface to help explain why things were the way they were. We started with all sorts of different looks and generated small movies to show the animations, but continuously simplified to the bare minimum that clearly and cleanly made the specific feature fluid and obvious.
We never showed Steve wireframes. We occasionally used them internally in the team, but when we showed product ideas to Steve, it was always pixel perfect. This allowed us to focus the conversation on how should the feature be presented to the actual person using the product, versus having everybody make assumptions in their minds about what is meant by the wireframe and how it would actually work.
Oftentimes, we'd find we couldn't exactly duplicate in code what we had animated. Then we'd have to iterate again on the actual product to get the best feel. This was actually highly welcomed as in those days everyone was still trying to understand what was really possible in OS X.
Differences of opinion were common, but the shared goals were the same:
· Create the most amazing showcase application that the world had ever seen
· Show off what could be done on a Mac and OS X
· Redefine what it meant to tell a story to an audience (presentations).
It was these overall shared goals that kept things on track.
So, what did I learn:
When you design look at every single pixel. Scrutinize every single interaction. Keep asking why.