MORE ABOUT THIS BOOK
“Bzzt.” I looked down at my iPhone. I had been nervously turning it over in my hands for the last half hour. Now, finally, I got the text I had been expecting.
It said, “Any minute now.”
I replied, “OK.”
I had been sitting forward, elbows perched on my knees, fidgeting uncomfortably in an otherwise comfortable leather chair, one of a set arranged as a casual meeting area near the elevators of the second floor of Apple Headquarters, Infinite Loop Building 2, in Cupertino, California. Message received, I got up from my chair, returned my iPhone to my pocket, and walked a few steps down a quiet hallway until I stood outside of the conference room called Diplomacy. When the door opened, I would be invited in to give a demo to Steve Jobs.
It was the late summer of 2009, and I was making software prototypes for a new product, an as-yet-unnamed tablet computer. A little more than two years before, Apple had introduced the iPhone, which was then beginning to realize its vast potential in the marketplace, just as it had captured the fancy of the computing cognoscenti on the day it was released. Now it fell to people like me, a programmer on the iOS software team, to help create a fitting follow-up.
I’d worked on the iPhone as well, starting in 2005. Through twists and turns, which I’ll describe in detail starting in chapter 6, “The Keyboard Derby,” it became my job to write the software for the iPhone keyboard, with my main focus on the autocorrect feature, the code responsible for turning your acxuratw tyoinh into accurate typing.
Throughout the development of the iPhone, we referred to the keyboard, often quite nervously, as a “science project.” When we started developing our touchscreen operating system, we didn’t know if typing on a small touch-sensitive sheet of glass was technologically feasible or a fool’s errand. As commonplace as virtual keyboards have become, in those days, the norm for smartphones was the BlackBerry, with its built-in hardware keyboard, its plastic chiclet keys, and its tactile thumb-typing. In contrast, the iPhone keyboard would offer tiny virtual keys that gave no feedback you could feel with your fingers.
An effective autocorrection feature would be essential, and I worked with the constant worry that my typing fix-up code might turn the iPhone into a punch line. Nobody at Apple wanted a repeat of the Newton, the handheld personal digital assistant the company marketed in the 1990s. Unreliable handwriting recognition gave the Newton a public relations black eye that never faded; the product never sold well, in large part due to its lackluster text entry; and the Newton never became the mass-market indispensable item it was intended to be.
My task was further complicated by Apple’s pervasive secrecy. On Purple, the project code name for the in-development iPhone, every detail was protected with need-to-know confidentiality. Few people had been given the chance to see or try the Purple software before Steve announced it in a high-profile keynote presentation in January 2007, so it was out of the question to treat my keyboard work as a real science project and conduct extensive trials on a broad population. I got feedback on the autocorrect feature from just a few dozen people before the whole world got a crack at it. No wonder we were nervous.
Standing in the hallway outside of Diplomacy, I had no time to think about the stress of the iPhone keyboard development cycle. I was focused more on the stress of the moment—an imminent demo to Steve. This new tablet, which Apple would introduce many months later as the iPad, would use the same operating system as the iPhone but would have a larger screen. This brought a new set of keyboard challenges, and I was ready to present my solution for one of them. Demos like this were the foundation of the Apple software development process, as you’ll see in the case of this iPad demo and as I’ll describe in many other demos throughout this book.
I never demoed my keyboard to Steve while our Purple smartphone was in development—someone higher up in the organization had always done it for me. The success of the iPhone keyboard had, apparently, enhanced my standing. My managers didn’t come right out and say so, but their invitation to meet with Steve, coming as it did only after I had proven myself by delivering iPhone autocorrection, showed me what it took to get direct access to the company’s famous CEO.
This would be my second Steve demo—the first had happened a few weeks earlier, when I’d shown him font options for the high-resolution Retina display planned for the iPhone 4. That demo had gone well, and since I was being invited back, I began to feel that I had made it into the inner circle of people in Apple product development who would routinely demo software to Steve. I don’t know exactly how many people were in this group, but there weren’t many. Perhaps a few dozen. Of course, there were even more exclusive circles. I was still in the hallway waiting to be called in, while there were people already sitting with Steve inside Diplomacy.
Steve was at the center of all the circles. When he was in sufficiently good health—he had returned only a couple months earlier from his second health-related leave of absence in five years—he made all the important product decisions. He used these demo reviews as his chief means of deciding how Apple software should look and feel and function.
From my standpoint, as an individual programmer, demoing to Steve was like visiting the Oracle of Delphi. The demo was my question. Steve’s response was the answer. While the pronouncements from the Greek Oracle often came in the form of confusing riddles, that wasn’t true with Steve. He was always easy to understand. He would either approve a demo, or he would request to see something different next time. Nevertheless, some mystery remained. No matter how good your work was, or how smoothly it had sailed through the preliminary reviews leading up to him, you could never know how he would react. Sometimes he’d say he loved or hated something but then reverse himself in midsentence. Perhaps his change of heart might come a day or two later. Other times his opinions, once stated, held in place for years.
Then there were his moods. On any given day, he might give you a tongue-lashing during a demo if he didn’t like the work you brought him. Nobody was exempt either—not top-level executives he worked with every day and not programmers like me whom he didn’t know beyond a passing recognition. This was the price of admission to his demo room—either accept it, or don’t demo to him. It could be difficult to hang on while riding this emotional workplace roller coaster, and some begged off. One exceptionally talented and experienced colleague told me flat out that he refused to demo his own work in Diplomacy ever again because of the way Steve treated people in these face-to-face meetings. My friend continued to respect Steve’s taste, even though he deplored his temperament.
Although Steve’s opinions and moods could be hard to anticipate, he was utterly predictable when it came to his passion for products. He wanted Apple products to be great, and he insisted on being involved in the process as it went along, to guide the development of the work through his reviews. That’s why I was waiting to show him my demo. He wanted to see my latest progress and then push the work toward his ideal with his feedback and suggestions.
It was a sure thing that our tablet keyboard, a major new user interface element for a new product line, would need his direct approval. Whenever Steve reviewed a demo, he would say, often with highly detailed specificity, what he wanted to happen next. “Add more space between these two elements,” or “Replace the green in this graphic with blue,” or “None of this is working. Show me more options next time.” More generally, he was always trying to ensure the products were as intuitive and straightforward as possible, and he was willing to invest his own time, effort, and influence to see that they were. Through looking at demos, asking for specific changes, then reviewing the changed work again later on and giving a final approval before we could ship, Steve could make a product turn out like he wanted. Much like the Greek Oracle, Steve foretold the future.
I heard a door handle turn. I looked toward Diplomacy, the door now opened just a sliver, and a shard of light from the conference room brightened the darker hallway. As my eyes adjusted, I saw the backlit and smiling face of Henri Lamiraux, vice president of iOS software engineering. Henri cracked the door just wide enough to poke his head out. Even in the moment, I didn’t understand this theatrical beckoning. It was common knowledge that Steve saw demos in Diplomacy and that people would quietly come and go from the room on demo day. Yet this was no time to ask questions, and I felt a rush as I headed for the door.
Henri occupied a position where he interacted on a daily basis both with top executives like Steve and with individual programmers like me. He led the team of software engineers responsible for the apps that came as standard on the iPhone—Messages, Mail, Calendar, the Safari web browser—as well as the software kits Apple published for developers out in the world to make apps of their own to post and sell on the iOS App Store. Steve looked to him to deliver on the decisions that came out of these demo sessions, and Henri filled his role with his own brand of self-assurance coupled with a lack of self-importance. He wore a full beard, which he kept cropped close, and over his more than twenty years at Apple it had become less solidly black, more salt and pepper. A Frenchman with a strong accent—occasionally I could understand what he was saying only from the context—he had quaint pronunciations for a number of English words. My favorite was for “build.” When Henri said this common programming term, it came out as “bweeld.”
Henri had been my manager again for just a few weeks. I say “again” because I had reported to him several years earlier, before the iPhone project, when both of us were in different roles. I’d witnessed Henri’s ability to remain calm in stressful situations in an episode when I had sorely tested his patience, and I’ll relate that story later.
In the years since, I’d seen him demonstrate his calmness again and again. In the lead-up to a Steve demo, he could be counted on to keep his composure and smile through the tension. Henri acted as a buffer between his team of programmers and the company’s hard-to-please leaders. He edited expletives out of the executives’ requests before passing them down to individual coders. He might say to me “I just heard Steve reported a bad bug.” The actual message he’d received had been more like: “THE F***ING CAPS LOCK BUTTON DOESN’T WORK IN TODAY’S BUILD! DON’T YOU PEOPLE TEST THIS F***ING KEYBOARD?!” As Henri sifted through and related the details at such times, I appreciated his ability to project the confidence that everything would work out. He seemed to know that applying pressure on me wouldn’t help me figure out the fix for the bug any faster but that I would drop whatever I was doing and get right on it. In his way, Henri filled a role created by the personality of our intense CEO. He was a source of coolness that prevented us from constantly getting burned by Steve’s searing heat.
“Come in,” Henri said, smiling as he eased the door open a little more so I could walk through. I took a few steps to cross the hall. Deep breath. The demo was on, or so I thought. Turning to my right as I entered Diplomacy, I saw Steve. He was talking on the phone.
“Yeah, that sounds good,” Steve said as he leaned far back in an office chair, staring at the ceiling through round-rimmed eyeglasses, iPhone pressed to his ear, the sleeves of his black mock turtleneck tugged halfway up his forearms, legs crossed in front of him, the cuff of his jeans riding up on his calves to reveal several inches of dark socks above his gray New Balance running shoes. The uniform. He didn’t appear to have any lingering illness-related lack of energy, and for the moment, he was directing all his focus toward his phone call. I was surprised for a second or two, but quickly realized that I should stand there quietly and do nothing to draw attention to myself. I was in for more waiting.
It’s uncomfortable to listen to someone powerful and mercurial as they finish a phone call, and since I didn’t want to appear like I was eavesdropping, I put my hands behind my back and surveyed the conference room.
Diplomacy was about thirty feet long and fifteen wide, drab and windowless. A couch in the middle of the room faced the door, roughly dividing the space into two squares. A pair of eight-foot-long tables were pushed against the walls in the half of the room closer to the door. This created an area for demo devices to be laid out, and this was where all the action took place. The couch and tables were arranged end-to-end to form a U, and Steve’s office chair was positioned in the crook of the letter, while I stood closer to the open end by the door. I looked down and to my right, onto the table closest to me, and I saw my prototype iPad. It had my demo loaded on it.
Looking around again, I had the same reaction I always did when I set foot inside Diplomacy. The room was shabby, certainly not the decor you would expect in a company as obsessively design-focused as Apple. The table furthest from me only had an iMac on it. On the wall behind the computer, someone had tacked, a bit crookedly, an unframed poster for Mac OS X,* version 10.2, nicknamed Jaguar. If the poster’s tattered appearance didn’t give away its age—it was several years old by then—then its serif “X,” rendered with fur and spots, surely did. By that point, this “X” logo had been changed in steps through release after release to metallic gray and then to sans serif. This poster looked seriously dated. As for the tables, they were remarkable for being unremarkable. They weren’t the premium examples you might expect, lovingly crafted from the same light-colored wood favored for the display of products in Apple retail stores. No, these were plain, workaday gray tables with Formica tops. Standard-issue office furniture. Floor-to-ceiling whiteboards covered the wall to my left, and they were caked with a heavy accretion of pen marks, indifferently and incompletely erased. And then there was the couch. It was not clean. When you sat down on it, you sank into the cushions as you would on a mangy sofa in a college frat house. In the half of the room behind the couch, there were a couple of forlorn bean bag chairs piled in the corner, an homage to an earlier age in Silicon Valley. On the whole, Diplomacy was a study in indifference. It was an important room, often used for CEO demos, but it was never the center of attention itself.
By now, my glances around the room had killed a minute or two, but Steve showed no signs his call was about to end. I began to feel a self-conscious awkwardness that I was the only one in the room standing, but there was no more room on the couch after Henri sat back down, and Steve was sitting on the only chair. There was nothing for me to do but remain where I was until Steve finished his conversation. At one point, I looked over at Henri, who looked back with raised eyebrows and gave a little shrug, as if to say “I have no idea how long he’ll be.” I couldn’t imagine why Henri invited me in when he did, but again, this was no time to ask questions.
The people sitting with Henri on the couch were the true software development inner circle. They were the few Steve wanted around him to advise, consult, and bounce ideas around as he reviewed demos. They had done this for the iPhone, and now they were there for the iPad too. Each person had earned their place, and kept it, by consistently providing feedback that helped make the products better.
Sitting to Henri’s left on the couch was his boss, Scott Forstall, then the senior vice president of iOS software engineering. Scott reported directly to Steve, and he was the one giving me this chance to demo in Diplomacy. Scott expected me to keep it concise and on point when it was my turn to go. He didn’t tell me to do that—proper conduct was implicitly communicated through the success and failure of the earlier-stage demo sessions Scott ran himself, where he was the top executive in the room. The stakes in Diplomacy were obviously higher, now that his boss was in the room, and since Scott was my sponsor, my demo would reflect on him. Given what I took to be my new probationary status in the Diplomacy inner circle, I imagined that one bad demo might cause Scott to rescind my membership. Even though he never spelled it out, for all I knew, I might be a single boneheaded comment away from never being invited back.
Scott’s position was not nearly as precarious. His relationship with Steve was solid, and their partnership extended back to their time at NeXT, the computer company Steve founded after being fired from Apple in 1985. Ever since Apple acquired NeXT in 1996, Steve and Scott had collaborated closely on software.
I expect Steve valued Scott’s ability to imagine how new technologies might be integrated into our software products. Scott excelled at making these connections. If a programmer told Scott about an in-the-works software change to the touchscreen system that would make it possible to reliably differentiate between quick swiping gestures and slower panning gestures, Scott could visualize a user feature like swiping on an item in a list, say an email message, to delete it.
The software we created at Apple was an accumulation of such small details. Steve looked to Scott not only to make these kinds of intuitive leaps himself but also to build and lead a team that could make them in volume. This was part of Steve’s mission for Apple, the most significant strand of Apple’s product development DNA: to meld technology and the liberal arts, to take the latest software and hardware advances, mix them with elements of design and culture, and produce features and products that people found useful and meaningful in their everyday lives. Scott had the position he did because he could make these technology-to-people links as well as anyone, and he could do so with such deceptive ease, sometimes with a complete lack of pauses or throat stroking as he formed a steady stream of on-the-money reactions. His quick-wittedness could be unnerving. I found that Scott could make me feel that I needed to speak faster, so that he wouldn’t interrupt to finish my sentences better than I could finish them myself.
Sitting on the other side of Scott was Greg Christie, one of his other senior managers, the day-to-day leader of the Human Interface team, the software designers responsible for the look and feel of iOS and the Mac, as well as the concepts behind how these systems functioned. We shortened his group’s name to two letters in conversation, and as the HI team leader, Greg brought breadth and depth to the design of our apps and user interfaces. A flannel shirt–wearing, cigarette-smoking New Yorker, Greg had an encyclopedic knowledge of the history of computing, a tinkerer’s knowledge of analog and digital hardware, and a gut feeling for how to create software that made sense to people. A couple years earlier, Greg had given me crucial advice during the development of the iPhone keyboard. At a point when I was desperately stuck, he challenged me, point blank, to solve a problem I had been skirting—to make each key smaller than a fingertip and to develop the necessary improvements to my autocorrection code. Greg often provided the insight that some difficult development path was the best way to make our products easier to use. But he was never easygoing. He dragged around a metaphorical bear trap, one that was tripped by lackadaisical effort and bullshit excuses. Try to sneak a slipshod demo past him? You’d get caught in the jaws of a sharp rejoinder, which Greg would likely deliver with a loud snap. He wasn’t the most popular man in the company. However, to those who shared his high standards and his abhorrence of lazy justifications, he was unceasingly loyal and supportive.
On the rightmost end of the couch, sitting close enough that Steve could have kicked him with his outstretched leg, was Bas Ording, a designer on the HI team. Bas possessed genius-level skills in illustration, animation, and demo creation, and his deftness contributed much to the intuitive feel of iOS devices. When we needed a way to move up and down a list of items on a touchscreen device that didn’t have a mouse or arrow keys, Bas created inertial scrolling, the system of finger swiping that speeds up as you scroll repeatedly, glides to a rest when you stop touching the screen, and pleasantly bounces at the end of the list. All of us take this behavior for granted today only because Bas’s solution so clearly matched our sense for how this interaction should behave. Tall, thin, with short hair that he spiked so that it stood straight up on his head, Bas had the habit of adding a pleasant “ha-hah” chuckle onto the end of his sentences, as if you and he were in on the same joke together. Bas was one of Steve’s favorites. He was one of mine too. I loved working with him. The demo I had for Steve was our latest collaboration.
As I looked again at the faces and postures of these couch-sitters, I noticed that I wasn’t the only one trying to appear like I wasn’t snooping on Steve as his conversation wore on. The scene started to seem surreal and dreamlike. I looked again at the demo table behind the back of Steve’s chair. The iPad was still there—of course it was—but now I wondered: Was the battery charged? Was the dream going to turn into a nightmare?
The work on this keyboard demo had started about a month earlier—soon after I received a promotion to “Principal Engineer, iPhone Software.”
My new job was open-ended. I was expected to find, create, and contribute to projects that made our software better. As I tried to figure out what that meant, the HI studio became part of my normal rounds. One day I stopped by to visit Bas. As usual, he was up to something cool.
Copyright © 2018 by Ken Kocienda