I. Brief Summary
Ken Kocienda shares his experience of building software products and product development culture at Apple. He shared his experience of what it took to build Safari web browser and iPhone's keyboard. He also shares how he overcame technical challenges. Both were high-profile features and products which brought Ken in direct contact with Steve Jobs.
II. Big Ideas
-
Ken identifies 7 elements essential to Apple's software success. The following is not a checklist but general principles.
- Inspiration: thinking big ideas and imagining what might be possible
- Collaboration: working together well with other people and seeking to combine your complementary strengths
- Craft: applying skill to achieve high-quality results and always striving to do better
- Diligence: doing the necessary grunt work and never sorting to shortcuts or half measures
- Decisiveness: making tough choices and refusing to delay or procrastinate
- Taste: developing a refined sense of judgement and finding the balance that produces a pleasing and integrated whole
- Empathy: trying to see the world from other people's perspectives and creating work that fits into their lives and adapts to their needs
-
Demoing product features was instrumental part of product development at Apple. Demos served as the primary means to turn ideas into software. It was an iterative process.
-
Demos kept churning out that could eventually be shown to Steve which meant day-to-day software development work became a pyramid of demo reviews. Steve Jobs involvement in demos kept the progress and momentum going.
-
Decisiveness was crucial so every demo review had a decider, the person with the sole authority to approve or not. Management did their job. The clarity of purpose kept everyone on track.
-
Every major feature on the iPhone started as a demo, and for a demo to be useful, it had to be concrete and specific.
-
Demoing features was intimidating because it was an emotional roller coster. Mostly the high item features were showcased to Steve Jobs and senior executives. Often the feedback given would not be positive and people would have to go back to drawing board.
-
The most significant strand of Apple's product development DNA was to meld technology and liberal arts, to take the latest software or hardware, mix them with elements of design and culture, and produce features and products that people found useful and meaningful in their everyday lives.
-
Steve never wanted Apple software to overload people especially when they might already be stretched by the bustle of their daily lives. He believed stripping away nonessential features made products easier for people to learn from the start and easier to use over time. He wanted products and their software to speak for themselves.
-
Apple not only wanted to make products meaningful but also useful. Making it useful happens when you extend the product to all the senses.
-
Ken shares a great story of when Lombardi joined Packers in 1959. Lombardi's focus on intense quest for perfection was the Power Sweep play. Every single move of a single play was the idea behind Power Sweep. To beat the Packers, you must beat the Power Sweep. The same analogy goes for product development. Lombardi connected his words and his team's action in football by focusing on one simple play.
-
Ken discusses deeper about being empathetic and having a good taste. Taste often requires trust and finding balance. Ken omits out beauty during development because design is not about being visually attractive but a well thought-out solution.
-
Ken explains the idea of convergence and shares the story of how Google factored out taste from its design process. When it comes to picking color, just pick one. Don't waste your time doing A/B test for colors. Use your good taste, knowledge, make the product accessible and move on. Apple always made quick choices about small details. Apple took more time on bigger questions. Always make a steady progress by showcasing demos, getting feedback, and following-up with more demos till it shapes product overtime. It is all about incremental progress.
-
Understanding cognitive load was crucial during product development. Everyone involved understood the hard limitation of human memory. When information is overloaded, the tendency to make errors and making accurate judgement rises. So designers, developers and managers always streamlined user actions less taxing.
-
Apple used algorithms and heuristics likely they were left and right sides of collective product development brain. Employing each involved an interplay of craft and taste, and always tried to strike a balance.
-
Algorithms and heuristics must coordinate to make a great high-tech product. Fast page loads on Safari or correct insertion point on a small iPhone keyboard are equally important. Finding balance was a key unlike Google trying to find an optimal blue color by running A/B tests on 41 shades of blue. Picking a shade of blue and moving on to value creation feature would've served them well.
-
Algorithms produce quantifiable results, where progress is defined by measurements moving in predetermined direction. The best shade of blue is the one that people clicked most often in a A/B test is an algorithm. Algorithms are objective.
-
Heuristics have a measurement of value associated with each feature. Unlike evaluating algorithms, heuristics are harder to nail down. Heuristics is question based approach. Lots of questions asked to get to a final decision. It takes effort, judgement and time to find what these things are. Apple employees put their faith in their sense of taste when picking motion and colors. Heuristics are subjective.
-
Working at an intersection of algorithms and heuristics was such an example why there were so many demos made. It was often difficult to decide where an algorithm should end and a heuristic should take over. Hence, deciders helped bring clarity by making incremental decisions.
-
Apple's product development goal was to orchestrate a progression of algorithms and heuristics to create great products that would put smiles on people's faces and would function well without fuss. It was a slow road.
-
Why do products like the iPhone turn out so well? The first part is the demo-making creative selection process. The second part is the 7 essential elements to building a great software. The third part is combination of people and commitment.
-
The get-it-done mentality was a core piece of Apple's product development culture. It was highly dependent on execution and quality of execution.
-
Chapter 7-9 should be read in its entirety.
III. Quotes
- Listen, Steve was at the center of all circles in Apple. He was like the Oracle of Delphi. But the difference between Steve and the Oracle of Delphi was when you asked the Oracle of Delphi a question, you get back some kind of riddle. You have no idea what the hell's going on. When you get feedback from Steve, there is no ambiguity. You know exactly what Steve wants to do and that's it." He's like, "There's no like, 'Oh, I'm confused.'
- ...I think Edison's large-scale success was built on foundation of tending to small details.
- '...What it boils down to is one percent inspiration and ninety-nine percent perspiration.'
- I agree with Edison. Ideas are nothing without the hard work to make them real.
- Hard work is hard. Inspiration does not pay off without diligence.
- ...premature optimization is the root of all evil. — Donald Knuth
- People matter more than programming.
- Empathy is a crucial part of making great products.
- Taste is developing a refined sense of judgement and finding the balance that produces a pleasing and integrated whole.
- Persist too long in making choices without justifying them, and an entire creative effort might wander aimlessly. The results might be the sum of wishy-washy half decisions.
- Design is how it works.
- Form should follow function.
- Objects should explain themselves.
- We used the word heuristics to describe aspects of software development that tip towards the liberal arts. Its counterpart, algorithms was its alter ego on the technical side. Heuristics and algorithms are like two sides of the same coin. Both are specific procedures for making software do what it does: taking input, applying an operation, and producing output. Yet each had a different purpose.