Debug 40: Nitin Ganatra episode II: OS X to iOS
Debug is a casual, conversational interview show featuring the best developers in the business about the amazing apps they make and why and how they make them. In part 2 of the Nitin Ganatra trilogy, the former Director of iOS apps at Apple talks to Guy and Rene about working on Mail for OS X, and the early days of Purple, the experience project that would ultimately deliver the iPhone.
Support Debug: Go to lynda.com/debug to start your free 7-day trial!
Question, comment, recommendation, or something you want us to follow up on for the next show?
Email us at firstname.lastname@example.org or leave a comment below.
Guy English: What happened with Carbon? Eventually, you transitioned out of that group.
Nitin Ganatra: Yes.
Guy: A very successful project. We would not have the Mac today without Carbon.
Guy: As a guide, it's basically like an app kit, open set guide, or at least, that's my vector into the platform. There's no denying that Carbon is really what made it a viable platform for a long time. Good job.
Guy: Problem solved. What happens next?
Nitin: Thank you for saying that. I agree. I think it was critical at that time. You can look at, technically, and say, "All you did was hide some symbols, expose some new symbols and covers for some of these APIs." But, yes, I believe that it was critical, and I think that history has born that out.
Guy: At the time, I would probably have been one of those people who were holding their nose up about, "Ugh, it's a Carbon app."
Guy: Truth is, yeah, it's a Carbon app and it's Photoshop. Guess who uses Photoshop? A lot of people use Photoshop, Word, or what have you. Hell, The Finder, iTunes, yeah.
Nitin: There was definitely...
Nitin: Yes. I agree. There were some things about it. I wish that it were a little bit more integrated into the system sooner than it was, or felt like it was integrated. In other words, when you launched Internet Explorer, which was the browser at the time for the Mac. When you launched Internet Explorer on Mac OS X, you knew you were in a Carbon app.
There was the text rendered a little bit different. It was pretty ugly compared to Cocoa. If you were using Office, it took a little longer to launch. Actually, maybe it didn't, but when it came up, you definitely felt like it was something different than the rest of the system.
Guy: Yeah. I think it took years to get services working in them. There was a bunch of stuff. It was like, "OK, this is clearly a Carbon app." On the other hand, these are marquis apps that, if you didn't have them on your system, it might as well be the Omega running on a PowerPC. It's kind of pointless.
Nitin: Definitely. On the Carbon team, I think we really held on to that. We used that to keep us going too. Because even at the time, it wasn't like Carbon was held up as, "Angels sing when you see a Carbon app."
Guy: No, it was always sort of a necessary evil, which is kind of a downer to be on.
Guy: For the team's action, yeah.
Nitin: You don't want to work on something that everybody begrudgingly accepts that, "Well, yeah, it has to be here, because things would be so much worse without it." Who wants to work on that? You want to work on, "Oh, my God, this thing is fantastic."
Guy: It's kind of funny. I'm just realizing that you were on the Seven team, which was kind of the necessary evil team.
Guy: Then you [laughs] went and did Carbon. You're an underappreciated fellow, is what I'm saying.
Nitin: Yeah. Thankfully, it never really felt that way for me, but who knows what I'd be doing?
Nitin: But eventually, yes, I did transition over from the lead on Carbon Lid for OS 8 to just working in the Carbon team working for John Hirochi, who reported to Scott Forstall directly. That was long before OS X shipped.
I think I made that transition in 1999, I think is when I first started working for John full-time. I was working on the core services components of Carbon, so in particular the file manager, resource manager -- those low-level bits, some process manager in there, things like that.
The challenges there were that we really wanted to have this single, unified API. At the time, Avi Tevanian was the VP of Mac OS development. He was a very strong believer in heterogeneous systems and working well with -- fitting into existing networks of computers and things like that.
Guy: Hence the insistence on file extensions and a bunch of other things.
Nitin: Exactly. Getting rid of resource forks. Resource forks were seen as this weirdo Mac thing that no other file system had. Later, Windows added it to NTFS. They had multiple streams, but even then it was kind of a Bizarro thing.
Guy: Yeah, it was two-headed, and invariably when you tried to zip something up, forget it. Everything would break anyway, on all of these systems. It's a nice idea. It's a really nice idea, but keeping things simple is a noble goal too.
Nitin: It's interesting, too. At the time, I remember there was this Tech Note that went out maybe a year or two later after OS X had shipped that was describing the way that people should be developing for the Mac. It was some of these things, like, "Don't use resource forks" and, "Use file extensions" and different things like that.
Guy: It's the one that gives John Siracusa a heartache every time.
Guy: He's probably got it tattooed. It's probably his one tattoo, and it's just the number of that Tech Note. It effectively says, "Don't be a Mac."
Nitin: [laughs] Exactly. But I think one of the things that's sort of built in, a built-in base assumption to that strong reaction is that the file system is this user-visible thing.
Nitin: Because it's this user-visible thing, we don't want to show ugliness, implementation details like file extensions. Instead we would want to have this alternate way of typing files or giving files a certain type.
Guy: But ultimately what the user interacts with is a projection of bits on a disk, effectively. You can alter that projection in a user-friendly way without necessarily having the file system itself be either case-sensitive or insensitive or have the file extensions or the resource forks for them.
Nitin: Exactly. I was in this weird position, where I was the guy who was implementing a lot of these file manager calls, and implementing some of the resource manager...we had this file-mapped resource manager as well at the time that I had written a lot of code for.
Even though I was working on developing some of these things and getting them ready to ship with OS 10.0, I could appreciate that maybe the fact that you're actually showing a user the physical representation or something that's very close to the actual representation on disk and expecting them to make sense of that, maybe that's the weird part here. Maybe hiding the file extensions or doing these other things, they're weird on both sides.
To assume that a user should be able to just go and if you use a low-level interface like "get dir entries" or "get catalog info" or whatever, the values and the strings that you get back from that API should be purely reflected to the user. Those should be things that are what the user manipulates, well, isn't that kind of a weird thing all on its own?
That's a weird assumption to build in and to base your ideas around how a Mac should be and how Macs should be used. That always felt like it was not a real strong rationalization for why we shouldn't have file extensions. That felt weird, but just in another way.
I could really appreciate, and by the way, users are just fine typing .com when they want to go to Apple. Maybe Safari helps them these days and some of their websites do, but while the web was getting wildly popular, humans are very adaptable and they're very understanding. In some ways they gloss over some of these things that we see as ugliness.
I guess maybe that's not an excuse. That's not to say, "Well, humans should be able to change their own RAM and it should all be user-serviceable." But at the same time, let's be a little bit more careful on what we think are base assumptions of the Mac OS experience. Because there's some weirdness that's just largely traditional as well.
Guy: That's a terrific point. I'm going to play that back for Siracusa the next time he yells at me about something [laughs] .
Nitin: Yeah. I'm pretty sure at this point we've kicked a hole through this dead horse of...
Guy: Yeah, exactly [laughs] . What happens after that? Where do you go from that group?
Nitin: I worked on Carbon, specifically on the file systems. Carbon Core, it was called, on John's team. We shipped 10.0. We shipped 10.1.
Guy: Sorry, not to interrupt you, but I'm going to. How did shipping 10.0 feel?
Nitin: Oh, it was awesome. In many ways that was the first OS that I had worked on that went from something that was very, very different when we had started to when we had finished. In release engineering, we had 7.5 or we had 7.5.2 and now we're going to add some new facilities or new features or fix some horrible bugs and call it 7.5.3. It was sort of a continuation. It was release management.
I guess maybe that's not true. There was major functionality that I had shipped in 8.0 and 8.5. But it really wasn't the multi-year, long-haul project that 10.0 was.
Guy: It's a reboot. Even if you count what did ship, I'm going to blank on the name -- OS X Server 1.0? It was basically Rhapsody with an OS 8 look. That did ship, but it had a mock 2.5 kernel. It had a bunch of other stuff. It was an odd beast.
Nitin: Yeah, and then to turn around and ship 10.0 with Aqua and this Carbon-based finder and things like that. There was a lot of learning that went in. One of the biggest lessons that I learned from that time that I carried on later was the value in having something working or getting something working and then incrementing on it, or improving it while continuing to keep the things that were working...while keeping those things working.
It's funny. When I say it, it sounds very almost simplistic and almost like, "Well, duh. That's of course...why wouldn't you do? What are you saying? You want to deliberately break the world?"
But really, there are a lot of software projects that are run where, yes, you've got a working system and then you go in and you push the patient on the operating table, and you open him up and parts are everywhere and who knows what the hell's going on, and you hope you can stitch it all back together and hope that they're better off later on.
As opposed to getting something working and just massaging it and improving it and making sure that, yeah, if there are things where you really just have to do just a big refactor, that you've got a plan in place not to screw half the world while you're refactoring.
To be clear, there was tons and tons of brand-new code, of course, that had to go into 10.0. But really just the overall theme of getting something working and keeping it working, that's the most important thing to a project.
That's almost more important than meeting your deadlines on the new stuff that you're working on, is making sure that you can keep something working and keep everybody else productive. I sort of credit Bertrand with having that message and placing a priority on that. That was how 10.0 went from Mach 2.5 to 3.0 and this wacky app kit-based...I don't even remember what the finder thing was called, but to the Carbon-based finder.
Bertrand loved vectors and there were all these different vectors that represented different efforts that had to take place and just making sure that there was continuous progress in all of these areas, yet all the while, we have to keep things working, when we have to keep it so that maybe there isn't a stable build every single day, but there's a stable build four days a week.
That was very different from what I saw, at least, kind of on the outside from Copeland, where on Copeland there was "Oh, well, we've got to go and rewrite the VM system." Then the entire program is kind of on its back for three weeks while the VM system gets redone.
Inevitably, once it gets checked in, it's horrible, and it doesn't work and there's all this work that needs to take place to just get it back to where it was before, let alone better and doing all the things that you promised were going to happen by rewriting it. It's not so obvious.
Guy: That's really hard to manage and to coordinate.
Guy: You shift 10.0, 10.1. What happens? 10.2, I guess [laughs] ?
Guy: Just going linearly? How long were you in the group for?
Nitin: I think it was 10.2. Oh, boy. Let's see. Unfortunately, I remember the years more than I remember the releases. 10.1 was Puma. Then I think 10.2 was Jaguar, if I recall.
Nitin: Jagwire [laughs] . Jagwire. I believe it was shortly after Jaguar that I had an itch to move into more of a management-type position and move out of engineering. The cycle around getting new features, identifying new things that we want to do, type, type, type. Get the beginnings of the features in, iterate, make them work better, fix some bugs. I had started to experience a pattern around development.
In some ways, I guess I wanted a little bit more kind of influence. I wanted a little bit more influence over kind of larger aspects of [inaudible 18:12] .
Guy: Was that born out frustration?
Nitin: Not really.
Nitin: Oh, go ahead. Sorry.
Guy: No. My first management gig, we got a new director of development. I don't know, something dumb happened and at one point I just go into his office and I just rant about everything that's broken. Then, so he makes me the director of all the programmers. Which was not what I expected to happen. But I definitely learned a lesson that day.
Sometimes you get into the management side of stuff purely out of frustration. Like, I'm annoyed, I'm going to basically articulate these issues. If you do it in a certain way, somebody just says, "Well, why don't you fix it?"
But that didn't happen in your case. You say you weren't frustrated, it just appealed to you.
Guy: The Meta level sort of appealed to you.
Nitin: Exactly. I think it was really more the desire to have more influence and to try kind of another side of software development. Don't get me wrong, poor John, my manager at the time, he heard enough ranting from me about whatever I thought was BS at the time.
But that really wasn't the motivation. That was more just engineers being grumpy and opinionated and things like that.
It really was, if I kind of look back, it really was more of, I wanted to try, I felt like I had, because I had been working on the OS, in some form or another since late '94. By then, it was 2002, so I'd been kind of, even though it was a completely different platform and very different jobs, and I'd been learning the whole time.
But it was eight years of doing, at a very broad kind of stepping back, it was doing a largely similar job. I kind of wanted to do something else. One of the things that appealed to me was having more, a little bit more influence and having a little bit more, the ability to kind of help define the product itself, as opposed to just implementing what somebody else had defined.
Guy: What was your first management gig?
Nitin: My first management gig was the Mac OS X Mail team. That was reporting to Scott Forstall and that was late 2002.
Guy: How'd that go? Was it a big leap?
Guy: Because that is not a small application. That's kind of a big deal. It's one of the, what, handful, the eight, nine, maybe, that ship in the dock by default?
Nitin: You're right. Yeah. It was definitely a big deal. It was pretty tough, the first six months, I had literally became a father the same month that I became a manager at Apple.
Guy: Oh, jeez.
Nitin: Do you have any kids?
Guy: No, I don't. But I appreciate the stress the double whammy must have put on you.
Nitin: Yeah, exactly. I certainly didn't plan it that way. Maybe, I guess, in some way, I did. But it wasn't like, I want to become a father at the same time I wildly change my position at work, too.
That was a hard, the first six months was very difficult. I kind of went from being generally pretty comfortable with my position and the work that I was doing and the deliverables and things like that to moving into management, where I had just no idea what I was doing. The best thing that I could do, in my mind, anyway, was sort of emulate the managers that I thought were the best managers that I had ever had.
There were some Apple management courses that were available at that time. By the way, anybody who's listening at Apple, it's my understanding there are no management courses today, and I think that's a horrible, horrible oversight. I can't imagine why that's happening now, but if it's still true, it's terrible. There needs to be some formal management training that takes place. At the very least...
Guy: Is that the university stuff that's replacing it?
Nitin: Maybe it is. But it's my understanding that there is still no sort of formal management training that's in place. I'm not even talking about, I got a certificate or I got, whatever the fuck.
But really, just some of the base concepts around situational leadership and just understanding that different people on a team need a different kind of manager and you need to, as a manager, you need to appreciate that, and put the effort into, make your people successful, and you can't just treat them all the same way. They're not all driven by the same things.
Guy: Some people need a lot of guidance, some people don't like to be meddled with, kind of thing.
Rene: They're difficult learners.
Nitin: Right. Yeah, different people, like your best performers are going to feel like they're just screw-ups their whole time and you have to know how to manage them. There are going to be the people who are kind of average or maybe below average and they feel like they're rock stars. How do you manage them? I'll give you a hint, you don't manage those two types of people the same way, obviously. You just can't.
Just learning to kind of go through, in a way that's detached from your day to day job, kind of going through some of those scenarios and understanding some of the techniques that are available. I don't think it needs to be this huge course, with a big old certification program and all this other bullshit. But there needs to be something there. I've seen too many people kind of move into management and hop back out of management because...
Guy: Frustrated or flounder with it, yeah.
Nitin: Yeah, they flounder, they're frustrated. But also, it is a very different job from being an engineer. You may feel like just because I interact with my manager and we talk about engineery things, and I could be on that side, talking about engineery things with someone like me, so therefore, I can move into management. It's really not sort of appreciating how different of a job it is.
Guy: It's wildly different. Like I said, when I got my first management gig, I thought I was, I was kind of happy. Then, within a month, I've got to deal with somebody's coming to work and he doesn't smell great. I need to talk to HR and him, and try to work it out. Or people want bigger dividers around their desks.
It's one thing to be the technical lead on a project, and sort of gather your troops in that way and give technical direction. It's an entirely different thing to manage people in a broader sense.
Rene: It's hard, too, because at the end of the day, you used to have product you could show for every work day. Now you spend a lot of time, and it's not your product that's done at the end of the day.
Nitin: Yes. Absolutely. It's interesting you say that, because I mean, that was one of the things that I actually saw as being a parallel with becoming a parent at around the same time.
When your child takes their first steps or things like that, that's not you taking those steps, but you're very proud of them kind of on their behalf. You didn't stand up and get on your wobbly baby legs and whatever and walk across the room. But you can be proud of them, and you can be encouraging and you can sort of take some satisfaction in knowing that, you can kind of take those accomplishments and, in a small way, make them your own.
Now, baby steps is kind of a bad example, because it's not like you had these meetings with your baby and decided how you're going to put the right foot first, and then the left foot and then and they ended up doing it and everybody's very happy. Which is a little bit closer to how it works on the engineering management side.
But the fact remains that when you're an engineer, it's been my experience, anyway, that it's very satisfying to go from either a blank file or something that works, but doesn't have the functionality you're about to add, and going to having that functionality.
When you're an engineer, you have something tangible you can point to and you can say, "I did that." The reason you can make a phone call on that thing is because I worked on the communications protocol, or you know what I mean.
An engineer can attach themselves to that, because they, in a very tangible way, they made that happen. Whereas, when you're in management, a lot of it is, "Hey, how's it going? What are you going to do about such and such? Have you thought about these different problems? How is this going to fit into this larger architecture?"
The hope is that you can ask the right questions and kind of prod people to kind of move in the right direction so that they don't paint themselves in a corner or end up at a dead end or whatever. But at the end of the day, when they've done that, it's their accomplishment. As a manager, you have to sort of take satisfaction in the fact that maybe you helped them kind of get to that good spot, but you didn't actually do the work to get to that good spot yourself.
That can be, for someone who's an engineer, who's used to that tangible benefit and sort of seeing that I did that, that can be a very difficult thing. Frankly, you can get to the end of a project and feel like, "Well, what the hell did I do? I updated some spreadsheets and I did some X, Y and Z. Really, couldn't anybody have done that?"
It takes a little bit of self-confidence and a little bit of understanding of the development process and knowing just kind of what the pitfalls are that you could go through at any point to kind of get that satisfaction. But at the end of the day, it's somebody else did the work, and you have to be happy with that.
Guy: Yeah, that's particularly hard for an engineer, I think. I don't know, I don't have another perspective. But just sort of that build and run cycle. Like the endorphin you get when you write a little bit of code and you run it and you see it working.
That's kind of what drives a lot of people to code in the first place. Management really divorces you from that. There's no action in response. The feedback loop is totally absent.
Guy: Did you adjust to that well? Or did you kind of get bummed out for a little bit or what?
Nitin: It took a little bit of time. Anybody who was on that Mail team who might be listening to this now, thank you forbearing with me. If you didn't guess, I didn't know what the hell I was doing.
But I mean, the Mail team was just, it was largely people who were kind of from the next side of things. It was just an incredible, just very, very intelligent people, very hard workers, people who knew what the right thing to do was. For them to have a shitty manager for a while, they're probably the ones who are the most capable of taking on somebody like that.
Guy: They sculpted you.
Nitin: [laughs] Maybe, probably. I think they did. That's true. Also, like you said, it's Mail. Mail was one of those marquee apps for OS X. New functionality and new features tend to show up in Mail first. Mail is used as the guide for other apps that are on the system.
Guy: I really think it's been in almost every WWBC keynote for years. There's always something cool.
Nitin: For better or for worse, it can also be very stressful, too. When Phil Schiller is getting grumpy to Scott Forstall because his POP connection doesn't work well or something like that, it can be a little stressful. Scott is...
Guy: If Phil Schiller still using a POP connection, he deserves to be grumpy.
Guy: I'm kidding.
Nitin: I'm pretty sure he didn't actually have a POP connection. I was just...
Guy: I know. I just love it. I just love the notion of caveman mail. [laughs]
Nitin: How long have you...?
Guy: Go ahead, sorry.
Nitin: To be clear, Phil Schiller definitely had problems with mail. [laughs] There were lots of issues like that. It was this high profile app. Everybody was using it. I think that Steve expected the executive team to use mail and to write up bugs on it.
When things didn't work, it wasn't acceptable to go use entourage. You had to go and, "Hey, Phil. You have to use mail. Where it sucks, you have to be very loud and clear on the areas where it sucks and let the engineering team know about it."
Guy: Serious [inaudible 32:51] , right?
Nitin: Exactly, very much so.
Guy: These guys, basically, their job revolves around email in a lot of ways. Can I scoop that up?
Guy: How long were you with Mail?
Nitin: I managed the mail team. About six months into managing the mail team, I also started managing the address book team. In early 2003, I think, was when I picked up the address book team. I managed both of those until early 2005.
We had just finished up the Tiger release, the OS X Tiger release, which had a new look and feel for the email app. It had Spotlight integration. I think we had threaded views in 10.3, but there were other refinements that were coming in all the while, resizable images, different things.
I think it was 10.3, we put a brand new...Oh, no. Gosh, maybe that was 10. 5, where we had a new sequel light-based database back in Mail.
Guy: Here I am, going to try to second guess you. That seems right. You have the mail templates and four, maybe 10.4. It was a lot of work. That app has really evolved a lot over the years.
Nitin: It really evolved a lot. It was one of those things where I wanted it to be...The thing that we had talked about on the Mail team was I wanted to be an app that people would be willing to pay for. You don't have to pay for it. You get it for free with OS X. It was kind of, "Wouldn't it be great if people thought this app was so good that they'd be willing to pay for it just a standalone thing?" That was one of the...
Guy: I think in a lot of ways, it was, because it basically just sucked the air out of that market. Nobody else really sells an email client anymore, on the Mac at least.
Nitin: That's interesting. I didn't think about that.
Guy: It worked. Nobody is paying extra to get email anymore. There's Gmail too, probably didn't hurt. I've always just used mail, and I like it. That's my email client, that's my Eudora. That's the one I go to. Again, good work.
Nitin: Thank you.
Guy: 2005, what happens? [laughs]
Nitin: [laughs] What happened? Good question.
Guy: Is this where you get abducted into a dark room and just lock you a few years or won't?
Rene: Just talk yourself.
Nitin: It is. It absolutely is. Leading up to that, just like outside of Apple at the time, the iPod was already successful. It was already this thing that had a life of its own. It was one of the legs that was holding up Apple at that point. There was a general understanding that Apple had the ability to build small devices. Apple wasn't just a PC company.
I'm sure you probably remember from that time. Phones, and smartphones in particular, but really, all phones, they were just shit. They were terrible. Even within Apple, we knew that. It was a, "Have you gotten the Trio?" "Oh, my God, yeah. I got the Trio. Yeah, it's OK."
Rene: It reboots when I make a call, it reboots when I answer a call.
Nitin: [laughs] You know what, there are these bizarre-o Blackberries that were out there, but if you really wanted to use email with it, then you had to go convince your IT department to go and sell this whole lot of box to work with it, the Blackberry exchange server stuff. That left it at the Motorola, I think it was the T68i, not Motorola, it was the Sony Ericsson. That's what it was. The Sony Ericsson T68i was like the [inaudible 37:21] phone.
Even though if you use it, it was only because it was a color screen. This is like mid-2000s, and we are talking about color screens. These are big advancements. There was danger. To be clear, there was the danger sidekick. That was a generation ahead of everything else. Definitely, it felt that way. For whatever reason, that wasn't really taking off like I think it should have.
Other than that, it was the, "Hey, the phone market is all full of this junkie crap." Apple knows how to build better devices. Why doesn't Apple build a phone?
I became pretty friendly with one of the guys on the address book team, Scott Hurst. We would hangout. My boss at the time really, really hated this kind of thing. We had a bottle of whiskey in Scott's office. We close up the door.
Guy: [laughs] I knew it. I knew I liked you.
Guy: You would hang out and...
Nitin: We'd hang out and have a glass or two and just shoot the shit and talk about this kind of stuff. What I really would see first of all in the halls was just this general thing that we had expressed interest around. Why isn't Apple making a phone? We could do so much better of a job. We go around and show people.
I go and show Scott. "Here, look. I just got this Blackberry. It's completely just horrible. It does these two or three things that are kind of cool. I got the Sony Ericsson phone. Look, it's color. It looks so nice. We could do something better than this."
I wasn't actually like ever directly pitching in. "Hey, we're your guys. We're the ones who you should put on this thing." We were all just generally interested in technology. Here's an area that was solely lacking. It just came up naturally.
Early in 2005, Scott Forstall came into my office and closed the door behind him and said, "How would you like to work on this new project where we have some designs for making a phone?" It was just like, "Of course, I want to do that." [laughs]
It wasn't even a question. It was fantastic. I think the first couple of questions were, who else is going to be working on this? It became clear that I can pick a couple of people from the mail and address book teams and we're going to move up to the human interface design hallway, and get to work on this stuff.
I haven't even seen designs for this thing yet but I had already said yes. Of course, that's what I wanted.
Guy: Just the notion of it was so promising big, just you could jump in.
Nitin: Even the prospect of just starting something brand new and scary and just doing the learning all over again. What does it take to build a phone? Obviously, we're going to do something different from anything else that was out there. Can we be so different? How different can we actually be and still ship a viable phone? Immediately, there was the rush of questions. How are going to do this thing?
We've never done it before. How much are the iPod guys going to be working on this? Can we leverage their expertise here? What are the designs look like? Are they even practical, just a first approximation? Are they just so zany that we'll never be able to do this? Is this something that we can make? There was just a bunch of questions.
Guy: Were the first designs closed to what shipped? How much fumbling did you guys do? I imagine there must have been a bunch of fumbling.
Nitin: It's interesting, though. Forgive me, this is part of the memory test. The first things that I remember were we went up to the human interface hallway and we met with, I think it was Scott Hurst and I at this point. It may had just been me. I think it was Scott Hurst and I. We both went up to Boss Holding's office, who is one of the more prolific designers in the HI team.
He had been working on using director, Macromedia Director, just in lingo, which is the director or scripting language. He had created the first look for scrolling contacts. He had it actually wired up to this tethered device, which by the way tablet-sized. It was a table form factor. It was tablet-sized.
Pushed down into the corner was a phone-like display was being rendered with this full screen list of contacts. You could use your thumb to scroll up and down. You could see the different sections within the table, the transitions between when you're looking at the As and now, you're looking at the Bs and things like that.
There was that part of it. Then also, what we know today is the springboard as the look and feel for springboard, where you come out to this grid view of apps and you're going to launch things. You're always coming in and out of springboard to transition from app to app.
Just from stepping back and looking at it, it looked very similar to what we ultimately shipped in 1.0 but of course, a lot of the details around the scrolling contacts. Some of the user interface elements were obviously very different. Some of the apps were a little bit more...It was a big Macromedia presentation, basically, that was then rendered on this tethered device, which was this combined display and input device.
Some of the "apps" were a little bit more fleshed out than the others. If you tapped on something like phone, you could easily go see your scrolling contacts. Where other things were less fleshed out, you tapped on Safari, it would just bring a still shot of New York Times and URL bar at the top.
Guy: With a hand waving. That's enough to actually help guide you. How did that process look like? How do you retreat the team? What's day one on the job look like? You're like, "I'm going to go build a phone." You sit down in a chair and then, what do you do?
Nitin: First of all, it was, "Where am I sitting? Can I get badge access to that area?" After some of those details were worked out, I think one of the funnies early stories that we had was...Let me step back a little bit. I was no longer going to be the mail and address book engineering manager. I was about to go disappear, and go work on this other thing that nobody on the mail and address book teams knew about. That was a hard thing to deliver, especially at that point, because I feel like the mail team, we were really firing in all cylinders.
We had just come off of this great early demo session. We had an intern. We had a bunch of different things that we wanted to work on. Before Tiger was even done, we had these demos that we wanted to show and get on the books for the next release.
There was already a bunch of work that had been going. We had been moving in that direction. It's not like we had taken all this down time after Tiger and kicked or feet up and things like that. That was a hard message to deliver. Happily, I think the mail team is done very well since then.
Anyway, what ended happening was, from the teams, from the mail and address book teams, I took Scott Hurst from the address book team and then two other engineers from the mail team. I went from a team of 13 or 14 people to a team of 3. All we had were designs.
Two of my engineers were sharing an office. I think I had an office over in the corner but I was never in it. We had these designs. One of the funniest things that happened was, I had access to these UI designs. Steve Jobs at that time -- not just at that time -- he was very concerned about leaks around the human interface. He had to personally approve every name that went on on the list.
Guy: I've heard that before. You try to get a guy in the team, and it just gets stellar because Steve was busy.
Guy: You couldn't check the name off, so it's like...
Rene: Ultimate bottleneck.
Nitin: At one point, I actually had access to the HI designs. Two of the engineers on my team did not. After talking with Scott Forstall about this and explaining this absurd situation we were in, I pitched him on the, "Why don't I go just go in, so we're following the letter of the law here? I'll go in and look at the designs. Then just based on my memory, I'm going to come back out to the office where my engineers are, and I'm just going to draw on a whiteboard what the mail..."
Mail was one of the first apps.
Guy: Like a clean implementation of what...
Nitin: Exactly. [laughs] It was a clean implementation. Even though we all worked at Apple and we were probably two days away from everybody having access anyway. We needed to get moving. I don't remember at that time. We were just laughing at how absurd it was. Here we were and that's what we were doing.
We didn't have any hard work to run on. At that time, it was still kind of a science project in some ways. It wasn't really a, "We're going to throw the whole company behind this thing." It was really more of a "We've got some designs. Steve was finally happy with some of the designs he saw. Now, let's start doing the early studies and early development to figure out, can we actually make of these designs work?"
Guy: It wasn't really plotted yet? It was more of a lab situation? Were you sure you wanted the project and you get some information with the project yet?
Nitin: There was a strong desire to have that product. It was not a slam dunk that those designs could be implemented. At that time, we were the state of the art as far as Apple development was concerned, we're these ARM processors that were really only capable of driving...
Again, this is my memory test. I'm probably going to fail it. I think at that time, I don't even think we had color iPods yet. We had the click wheels and we had the mini, but I don't think that we had color iPods.
Guy: The photo?
Nitin: Yeah, the iPod photo and things like that. Here we were on what we thought was going to be roughly equivalent hardware to what the current iPod was at the time, we wanted to do these full screen compositing and have these animations running at at least 60 frames a second and have these transitions from app to app.
How the hell would you implement checking your email on an iPod? It's just these things that just asking the question, seemed like it was an absurd thing to attempt.
Guy: It's a bit of a preposterous project to jump in on. Was the touchscreen there day one?
Nitin: Yes, yes, the first...
Guy: You said you had the input device, right?
Nitin: Right. The tethered device was a USB input device with a display, all integrated. It looked...Functionally, it was identical to what we know as the iPhone today. The input device was overlaid on the top of the display.
The HI Team had that already. They had already been playing with these designs, just trying to figure out what feels good in your hand. Is it actually viable to take over the whole screen and use your thumb to flick it? Can you make the scrolling acceleration and deceleration feel physically true to life in some ways? Then, also, how the hell are we going to do all of this on ARM-class hardware?
Moreover, how was a team that consisted of engineers from the desktop operating system going to get this thing working? That mostly came from the iPod side of the world.
Guy: You pulled a lot of embedded knowledge in there?
Nitin: I'm sorry. What I mean to say is that there was a lot of skepticism from the iPod team that, based on their limited understanding of what the user interface was and the fact that many of them knew that we wanted to build a phone, why would you pull desktop people onto a project like this instead of iPod people.
Rene: Why would you want OS X on a phone? That was going back a while.
Guy: How did that work out? You've got to train up a bunch of desktop-oriented developers into working in a very constrained environment. Was that troublesome?
Nitin: Yeah. I don't know if it was troublesome, but it was certainly troubling. At least for me, I had prided myself on the fact that any and every project that I had worked on at Apple up until that point, they were never science projects. We always shipped. Here I was on what was, effectively, a science project, at that point.
We had to do a lot of experiments around LayerKit and running that on Gumstix boards, which are these little arm boards, running a variant of Linux to prove to ourselves, "OK, if we have this kind of video hardware, and at least this amount of RAM, we can get 60 frames a second, doing a full scroll."
But then there was the whole rest of the software stack, and the fact that, at the very least, we wanted to use a UNIX-style kernel underpinning this. Internally, there was a lot of desire to use the Mach kernel, use the OS X kernel. There was a lot of skepticism.
It was brand-new project, and how the hell were we going to shoehorn the Mach kernel onto this thing, let alone all of the apps and all the functionality. Let alone, with all of that, buffers that are large enough so that we can composite onto the display all these awesome designs that we were seeing. It was a little terrifying.
Guy: You were totally terrified for two years.
Nitin: Until we shipped.
Guy: Those two years must have been a little bit interesting, they're the most stressful two years of your life or what?
Nitin: Yes, absolutely the most stressful two years. That plus maybe the first three months of managing the Mail team, where it was learning to be a father, learning to be a manager, feeling like you're not doing a great job at either one, but you've got to keep going.
Beyond that, yes, from 2005 until 2007...Even to this day, the fact that it took two years to go from what we started with, which was almost nothing, to a shipping iPhone...
Maybe I need to edit that because it's not "almost nothing." We had Foundation and we had a kernel. We had development tools and we had very smart people. We had what would become Core Animation to build on top of.
As far as the architecture of the apps, how they interact with SpringBoard and how things are implemented, there was almost nothing there. We had a great foundation, but that's a testament to...
There's always been this strong discipline within OS X to keep the layering of the system honest, and keeping it clean. Your memory allocation system should never know about your graphics system because you want your graphics system to use your memory allocation system, but you don't want the back references. You want to be able to use those foundational pieces.
It's at those times when you move those foundational pieces to something wildly different that you put them to the test. Did you actually get the layering right?
That's something that I never knew about, I never learned before Avi and Bertrand and those guys came in. OS 9 and traditional Mac OS was, in some ways, a kind of jumbled mess. It was a very pragmatic implementation, let's say. [laughs]
You had things like your VM system that knew about how QuickDraw cursors work. Teasing that stuff apart, it's very easy to introduce those oddball dependencies. It becomes at least 10 times as difficult to remove them later.
Nitin: Except you don't, exactly. At those moments when you need to get something fixed and you need to get something in, it's so much easier to do that, to violate the layering of your system just to get your job done.
Rene: That's when you write a comment saying, "This really sucks and we should fix it," and it never gets fixed.
Nitin: [laughs] It never gets fixed. A breadcrumb that is always there, or a "to do," that's always there.
Rene: Was there any bargaining over which apps you'd need to ship? You know you need Safari, you know you need Mail...
Nitin: Bargaining, it wasn't really. From those early designs, it was a given that everything that we saw in those early designs were things that we had to ship.
As an example, even things like Weather and Stocks, which you might think are not the most terribly important things, it was understood that this is what is going to go onto the phone.
My team actually didn't develop Weather and Stocks. Those were on the widget side. We could have a whole discussion about the selection process around the underlying frameworks and how this was implemented, but anyway, to answer your question, I don't recall too much bargaining or anything like that.
There were some things that we didn't get exactly right with 1.0. For example, MMS comes to mind. MMS was not there at all in 1.0. We didn't apologize for it.
Internally, we understood that there were these technologies that were phone-centric, that were rough approximations of things that were available on other computing systems.
Like the WAP protocol, I think it's the "Web Access Protocol," which was a stand in for HTTP. We knew that we were not going to support WAP. It was, "No, why would we support WAP when we've got the full Internet? We've got Safari, we've got the real deal here. We don't need WAP."
WAP, in practice, I'm not sure if you remember from that time, but the browsing experience on any of these things, it was horrible. It was so bad. That was part of what made all these devices not very satisfying to use.
Guy: I had a Nokia flip phone. It had an Internet button that every now and then I would hit by mistake.
Guy: It would just make me angry, because I couldn't figure out how to stop Internet-ing. It was the worst.
Rene: I had the Laser and Pocket IES.
Rene: No sympathy there.
Nitin: Yeah, it was this alternate world. It was not quite the Web, but, "Oh, look, I guess that's yahoo.com or that's what yahoo.com wants to look like on..."
Rene: It was sort of like an error page where that thing you get in between two tags, when it can't show what it wants to show?
Nitin: Exactly. There were the bad old days of early clone development. Just like we weren't going to support WAP, and we weren't going to apologize for it, it was, "No, we're building a new thing here," MMS fell into that same category.
"We've got full email support. We've got full HTTP support. Why on earth would we include a MMS application?" Obviously, in hindsight, that was one that we got wrong. We fixed it, I think it was in iOS 3.0.
There wasn't, let's say, bargaining. It feels like it would be so natural to bargain about some of these things, but I really don't recall...
Rene: Maybe it's the wrong word because there's what you want and the realities of the time that you've got to get it done in.
Nitin: Yes, right. Even copy/paste was something that was not there in 1.0, but it wasn't because, "Oh, we have this great design and we just ran out of time." It was really seen as, "Copy/paste is a holdover from computers. Are we really sure that we want people editing that much text on this phone?"
If you've gotten to the point where you're farting around, quibbling with text, and trying to copy/paste things and you're using this touch keyboard, you already lose. It's already a giant pain. Maybe copying and pasting and editing large amounts of text is not something we want to support that well.
Rene: Something you want to think about for a while.
Guy: It's like, "Be good at what you're good at," for the initial release. Then you learn.
Nitin: You learn. That was a big part of it, too. This thing that we were releasing, we had some ideas on how we were using it internally. That informed a lot of the decisions we made before we shipped it, but at the same time, we knew that we were building something that was very different than anything else that had been built.
To just take something like copy/paste as a given, at that time, it seemed like, "Well, I'm not so sure that copy/paste is such a given. We're building this new thing." [laughs]
Guy: I think that's reasonable. You also didn't expose a file system because why? It's exactly the right time to ask yourself, "Why are we doing this? Are we going to do it just because that's how computers work, or are we making this whole new thing?"
Nitin: Believe me, I get into fights about the exposing the file system thing, even to this day.
Nitin: I'm a firm believer in not exposing the file system. If you go to your mom's computer or if your child has an account, what's the biggest thing that's the hottest mess on their account? It's the file system.
They've got system folders copied into system folders. They've got documents upon documents. They don't know what they're going to open. They don't know when they can throw something away. It's already this gigantic cluster on a desktop machine. Why on earth would we want to expose users to that?
I've heard the other arguments too, but anyway, now you know, it is some of that.
Guy: I consider myself an expert user, but I would also never pretend that my file system is neatly organized. [laughs] Some things are, but my desktop is a total mess. Documents are kind of arbitrary at times.
When during that two-year period would you say that you finally settled on what it was that you were going to build? Was it earlier in the process? Was it later?
Nitin: To a large extent, it was earlier. We knew early on. We had the designs in place, and we had enough discussions and iteration with the Human Interface Team that we knew what the design was that we were going for. We knew at that point too, we had done the proofs of concept.
I never get that right. Is it proof of concepts, or proofs of concept?
Rene: Proofs of concept, I think.
Nitin: [laughs] Thank you. Proofs of concept. At least we were convinced at that point that we had a plan and we could hit it, so I think it was earlier.
One of the things that helped build a little confidence around our plan was that there was this other project called P1 that had started up. That was late 2005, maybe fall of 2005, where it was decided that P2 was the release that we were working on. I think we were already P2 anyway which was kind of odd.
The Purple project was the software side of things. Steve Jobs and Phil, some other people, and I think especially Tony Fadell at that time, who was running the iPod organization, had decided that we need something out in the market before 2007.
That's way too long to wait for something to come up. We need something that's going to be an interim device that we can release, get that out in the market and learn from that while we're building P2 and while we're building this Purple software platform.
Guy: That's fascinating. I'd always heard that described as a competitive thing.
Nitin: I guess it depends who you ask. If you're on the executive team, it's all Apple to you, anyway. If you've decided that you need this interim release to come out, and it just so happens that the iPod organization is going to do the first one, and the OS X or Core OS is going to do the second one, to those people...
Guy: It's not competing at all.
Nitin: Exactly. You're all under Apple. Yes, to your point, absolutely. I had been on the Purple team for a few months at that point, and was feeling good about some of the progress that we were making.
At that time, there was some "us and them" going on between the iPod group and the OS X group, or the Purple team. There was some open questioning about whether or not we were the right team to deliver this thing.
At that time, I think it was probably a fair question whether we could do that.
Guy: It doesn't seem irrational, for the embedded guys to think that the desktop guys might not be able to pull off something of this scale.
Nitin: Exactly. I'm sure from their point of view, not only are you trying to pull off something that runs on roughly this class of hardware, but you're trying to do something far more ambitious on the software side than the iPod team ever had, and you have no experience doing either one. "Why should we believe that you can actually pull that off?"
It's hard. We didn't have a great answer for that, but that was one of the things that helped drive us as well.
Guy: The answer shift. You kind of proved it with the pudding at that point.
Nitin: This P1 project had started up. From what I recall, it was late 2005 was when it had started up. I don't know if this was some devious plan by Steve Jobs to pit two teams against each other, make them hate each other, want to fight hard and work extra-long and try to get this in.
If that was his intention, it absolutely worked because...
Nitin: ...at that point, any time we had a milestone...I was generally paying attention to what was happening on the P1 side. What I really wanted to do was I wanted to show working functionality on P2 before there was working functionality on P1.
To your point, I didn't want to go in and talk and say, "Hey, we can do this stuff. Trust us. Look at this. We can do whatever." It was really I wanted to show that we could do this stuff. It was a great rallying effort for the group. I specifically remember...
Nitin: I'm sorry, Guy.
Guy: I was going to say, nothing makes you feel more feisty than a battle cry, effectively. You specifically remember something?
Nitin: I specifically remember it was the holiday time at 2005. We had just gotten the com center, the communications center, up and running. I believe from the time, it was going to be a shared piece of code that was running on the P1 platform and running on P2.
We had it up and working on P2. The rallying cry at that point was, "We want to send and receive SMSs before the P1 team can send and receive SMSs. We want to demo this to Steve before the P1 team can demo it to Steve."
Right around Christmas of 2005, it was one of those things that we had pulled off. It was, "OK, this is the stuff that we're going to take. Obviously, we need to do this to actually have a viable platform and to shift this thing someday." It's not throwaway work, but, "Let's just show that we were on the path to delivering these features before the P1 team is on that same path."
Nitin: "Let's let other people..."
I guess this is probably a common sales technique, but nobody can convince you more than you can convince yourself. It's one of those things. As much as you can talk to someone like a Scott Forstall or Steve and say, "Hey, we're your guys. We can do this. We're going to work really hard and we're going to do this, that and the other," that doesn't mean anywhere near as much.
You're not to convince them as much as by saying, "Hey, why don't you come to this demo? We want to show you P2 sending and receiving SMSs."
We're not going to even mention P1. We're not going to say anything. "Well, where's P1? Have you seen a similar demo from P1?" "You must have seen this a month ago from P1 because they're the interim release. They must be ahead of us."
Let somebody else ask all of those questions on their own and draw their own conclusions. I think that was one of those things that worked out.
Guy: It's basically having trust in their ability to realize the situation, rather than point out that, "Hey, we're ahead of those guys." You know they're going to notice it.
Rene: Be classy.
Nitin: Exactly. Be classy.
Rene: If you can win "classy," it's the best thing going.
Guy: I don't think we specifically stated this, but you' were the director of all of the apps at this point. Is that true?
Nitin: I didn't become a director until I think 2009. I was still, title wise, "Engineering Manager," until 2009. [laughs]
Guy: But the eggs were in your basket. Is that a fair way of putting it?
Nitin: Almost all of the eggs. I certainly don't want to take credit for my peer, Richard Williamson.
I had a very nebulous title. It was "PEP Apps." It was Platform Experience Purple and it was the apps team. Richard's scene was "PEP Web." Platform Experience Purple, the web side of things.
Richard was tasked with Safari, the WebKit back end, font rendering, Maps, Stocks, Weather and YouTube. Safari and things that were closely associated to a web presentation were managed by Richard and I had all of the other apps.
Guy: You had the native side. It's a little bit reductionist, but you had the native stuff and he had the stuff that had to talk to the web.
Nitin: Yeah. Initially, that was the plan, to ship the Stocks widget, almost literally from OS X, grab the Stocks widget, put support into WebKit so you could create these things that kind of felt like apps, but obviously weren't. We know how that played out, after 2.0.
The original plan was to make it so that Stocks, Weather and Maps were these things that were just widgets in the OS X sense of the word. Before we shipped 1.0, I remember there was a meeting where Steve was playing with some of these widgets and realized that they just didn't launch as fast as the native apps. They didn't feel right. They didn't do all the things that the native apps did.
There was a quick scramble to convert those all to native apps, to get them off of HTML and CSS and things like that.
Yes, my team had shipped probably 70 percent of the apps on the first release. We roughly maintained 60 to 70 percent through iOS 5.0, something like that.
Guy: How do you deal with stress?
Guy: Ultimately, the operating system and the framework stack and all of that is essential, but it's the apps that people see. When in 2007, the iPhone ships, there's how many iPhones? Eight, nine? It's an odd number.
Nitin: I remember 9.0.
Guy: A lot of that's on your plate.
Guy: The front facing stuff. How's your drinking problem?
Nitin: That was not going to be my answer. "How did you deal with stress? I drank." No. A little bit but not too much.
Nitin: I certainly ate. That was a little bit of a problem. Everybody on the iOS team at that point had packed on way more pounds than they had wanted, just from being in the office all day and all evening.
Guy: It's baby weight.
Nitin: [laughs] Yes.
Guy: "Product Baby Weight."
Nitin: It's interesting. I never thought of it that way, but exactly. I'm still fighting this baby weight, trying to get...
As far as the stress goes, it's hard because I'm sure I didn't deal with it as well as I could have. Many years later, when I decided to leave Apple, one of the things I had discussed with my wife was those stressful times, and how I would come home and I was grumpy.
I was grumpy with the boys. I have two kids. I hadn't seen them all day and the only things that are coming out of my mouth are just barking at them, that kind of thing. It was not easy. It was not a real pleasant time as far as family life goes.
Thankfully, my wife, she's always been super-supportive and super-understanding, but the truth is that I just don't think I was handling it as well as I could have. Honestly I don't know what I could have been doing to handle it better, maybe other than just having less responsibility over time. In an organic way that's what ended up happening through the years, thankfully.
It's a hard thing. When we were talking earlier about wanting to go into management and wanting to have this influence and wanting to have more say over how these things are developed and what the future sets are and things like that. Certainly, you can have too much of a good thing. I think that I did for a while there. It's weird, because looking back, obviously I wouldn't trade it for anything, but at the same time it was rough. It was pretty rough.
Guy: It was the best of times and the worst of times?
Rene: Was it continuously rough or was it up and down? Were there milestones of roughness, like maybe the App Store or multitasking, or was it just continual grind?
Nitin: There were times when it was more rough than others. Certainly during those first two years, from 2005 until we had shipped, in some ways it almost feels like kind of a blur. It almost feels like we were careening from crisis to crisis...
Rene: You survived it.
Nitin: ...And just trying to come up with the best answer for the problem du jour or the problem of the week or the month, and then it was on to the next crisis. But at the same time, it was glorious too. It's every engineer's fairy tale to work on something like this. Yeah, it's a ton of work, but how would you choose to do anything else?
It was sort of this dream project. In a very selfish way, I wanted the project. I wanted to use this thing in the worst way too. You make those compromises as far as the quality time with kids and things like that, and I was just hoping I could make it up later.
Guy: I think in a lot of ways it's how a lot of people's lives work. When you notice a project like this, and you're like, "Well, this is it." Opportunities like that come along very infrequently...
Guy: ...Once a decade for a handful of people. It's rough. It's always rough. But it's rewarding, ultimately, in its own way.
Nitin: Exactly. To complicate things even more, not only was it just a dream project as far as getting to work on something that's so influential later to an entire industry and to the whole world in some ways. When I was a little kid, Steve Jobs was...if you liked Apple, you probably also knew the story of the two Steves. Now here I am later in life. It wasn't even my wildest fantasy to get to be in a meeting with Steve and presenting something that's just groundbreaking.
Like I said, it really is just a dream come true in so many ways. It ultimately became too much of a good thing. How often do things like this come along, let alone are you with the same company where this thing is being developed, and are you even on the team? Are you in a position to work on those things? How do you say no [laughs] ?
Rene: There are these different narratives when it comes to Apple. Some people say when it comes to things like MMS or App Stores or multitasking or now inter-app communications that Apple changes their mind, and some people believe, "No, it's a learning process.
They see how people use it and they go the way that customers are using it." Others say, "No, it just takes a long time to make those technologies work." Is it one or the other? A combination of those things?
Nitin: Forgive me for giving the least satisfactory answer. I think it is a combination of those things. I think for some things it's learning. It's learning that on the MMS side, learning that, OK, we can place WAP in this box and just say, "We will never, ever support this, and fuck all that old shit."
Nitin: "This is the new world. This is a new device. We're redefining things." It's perfectly acceptable to say that for some technologies, but then you can't say the same thing for things like MMS. The reality of the world is that that's how people interoperate and the network effect made it so that it was such a compelling pole to include MMS that frankly we just got it wrong, and we just didn't know at that time.
It was probably also convenient, by the way, that if we didn't have to support this kind of bulky specification for MMS in 1.0...I think it was self-serving as well, but yeah, I definitely see that there's learning that takes place.
Guy: With MMS, the spec is one thing, but the UI is something totally different, right?
Guy: There's a lot of work that goes into doing that correctly.
Rene: And the carriers. You have to [inaudible 01:29:58] .
Nitin: Exactly. It was an enormous effort just all on its own by the time we had taken it on. It made it so that we could ship this thing in 2007 instead of 2008 or whenever. At that moment, we had made that decision, and it seemed like the right thing to do.
I think it's good to have strong opinions when you make observations about technology trends and things like that, everybody gets them wrong at some point. It just happens. Some people get it wrong way more often. But I think it's OK to have that strong opinion and have justification for why you're doing what you're doing.
If you need to adjust later, this is one of the things I've always loved about Apple, is just that there's a certain amount of humility that you have to have to be able to say, "Hey, we got it wrong. Here is the data that we took in. Here is the evaluation process. Here are the areas where things worked well. But then here are the things that we didn't take into consideration -- the fact that everybody on the planet had a phone and they were already sending pictures. Now they couldn't send pictures to their iPhone buddies."
Guy: Or like you said with cut and paste or multitasking or inter-app, you start making it more like a computer and those decisions have ramifications.
Nitin: Exactly. It was only later that we realized that OK...early on when we developed this thing -- it's easy to say this now, but it's hard to place yourself back in that world -- there really was nothing like it. There really was nothing like the iPhone.
When you're coming out with something that's so different, it's hard to anticipate what are the things that are going to be important, and what aren't. How many people even understood the notion of multitasking on their computers, let alone thinking that it was this thing that was super-valuable that they needed to have on their phone?
Nobody spoke about multitasking as far as I can tell before the Palm Pre came out. It wasn't with the Danger device. Nobody had mentioned that. Certainly not with BlackBerries. It just wasn't this thing that was on people's radars. It wasn't this thing that people gave value to.
Apple has always been very good about understanding what's valuable to users and putting all your wood behind those arrows that you've deemed valuable. Just because some person thinks that multitasking is cool, and you can do it on a computer, that's just not enough reason to ever do that on your marquee product. You need a lot more justification than that.
Guy: For the amount of flak that Apple gets for being arrogant, I do think there's actually a lot of humility in there.
Guy: Like the fact that they will revisit the multitasking thing, but they'll do it in a slightly different way. Eventually copy and paste will show up, even though maybe initially it was deemed something that you wouldn't necessarily want to do on the phone. Or MMS. Obviously, you must have heard the MMS outcry and been like, "Yeah, you know what? Fine."
Outwardly Apple's just painted with the arrogance brush, but I do think there's a lot more humility there than people give them credit for.
Rene: And patience, too. You want inter-app communications, but you want it to be secure, and so you have to get XPC over there. Then you have to get all these other elements in place so that you can have a really good implementation rather than just a really fast one.
Nitin: Exactly. That's another thing that I think that Apple has been very good at, is when they've decided to actually take on something like this, they're not just going to go and fill out check boxes. It's not just going to be a, "Hey, OK, Android apps can communicate with each other, so here, we're just going to crap out this little API so now two things can talk to each other."
There's a lot of homework that goes into any of these features, and when you see news stories about "It's been so many years since Apple has done such-and-such. Why haven't they addressed this glaring problem yet?" You can bet that there are way more people than you can imagine inside of Apple who've already been harping on this [laughs] for a long time and are...
Rene: Yeah, because they're iPhone users, too.
Nitin: Exactly. They're iPhone users. They're technology users. They want the best experience for themselves and their family. A lot of times it's not obvious how to come up with the right answer. They're patient, like you said, Rene.
Guy: I asked you how it felt to ship OS 10.0. How did shipping the iPhone feel?
Nitin: For me, anyway, it was enormous. I'm struggling to put it into words. Maybe part of that is because my involvement on OS X was I was on a relatively well-scoped part of the overall system that was largely defined by people who came before me, or my management or things like that. Certainly, I had some input in that process, but ultimately I wasn't making some of the decisions as well.
Whereas with the iPhone, not only was I involved from the very beginning, but we got to see it through to the end. That's one of the other things that I love, is that good ideas come from everywhere within Apple. Nobody is tasked with coming up with all the ideas.
When you come up with an idea for, "OK, we're going to make these things separate processes, because that's just the right thing to do on a Unix system. Let's not play games with a single app launcher that brings up different views or things like that. But that poses up all these other problems, and how are we now going to solve those problems?"
Because you're involved from the beginning and you're working through these issues - you, guys, you know. It's engineering. The more involved you are, the more it becomes your baby. This is my baby. It'll always be my baby. No matter how different it looks later, I still remember it as the chubby little toddler walking along, learning to do new, cool stuff.
Guy: I don't think I've ever asked anybody on the team, but that initial reveal where Steve is doing the, what is it? It's an iPod, it's an Internet communicator...what was the third one?
Rene: It's a phone.
Guy: It's a web browser? It's a phone.
Rene: It's a widescreen iPod, a phone, and an Internet communicator.
Guy: Yeah. How did that feel? Did you guys just want to jump up and pump your fists in the air or what?
Nitin: Oh yeah.
Guy: It must have been satisfying.
Nitin: Yeah. Other than watching the birth of my kids and getting married, that was absolutely one of the high points of my life, of my whole life. It was a combination of nerves, and I'm not going to kid you -- you've probably heard this -- there was a flask being passed around [laughs] .
Guy: [laughs] Yeah, I've heard that from a few people. I'm surprised there was only one, to be honest.
Nitin: It was one of these things where we knew what the demo script was, and we knew what it was going to be, and we had been working towards that for a while -- certainly over the 2006 holidays -- to get this thing ready. But it was relatively late that Steve had decided that he's going to do this sort of grand finale.
Forgive me now, I don't even remember all of the pieces that were tied together, but there was this largely unified showing off all of the different pieces and having them interact with each other. At that point, we were still six months from shipping [laughs] .
Rene: It was really advanced multitasking. You had the music player fading out, the phone call coming up, him going to the web to email back to the phone back to his music.
Nitin: I'm glad you remember it because yeah, for me it was just terror. It was just kind of, "Oh, God." We knew that this audio transition had caused some problems. We knew that this fade of the scroll bar from gray to black could be a little glitch-y.
There are all the things that as you're going through it...you've gone through this demo dozens of times yourself, and you know the areas that are a little bit more wobbly than the others.
That's the terror part, is watching your boyhood hero up on stage showing this thing that he thinks is as cool as you think it is to the whole entire world, and knowing that it's going to be on newspapers the next day just everywhere, and hoping that it doesn't fuck up [laughs] .
Guy: I can't remember which part it was. It could have been the web stuff or it might have been music, but at one point, he just went off script [laughs] . He picked a song just because he wanted to hear it, or he went to a different website. I forget what it was, but somebody I knew was telling me the heart just sank, like "Holy crap. I can't believe this. This could go so horribly wrong."
Guy: But it worked out. It actually managed to work. It was like, "Phew. Take a swig from the flask and move on."
Nitin: [laughs] Exactly. Maybe it's a PTSD thing that I just don't recall specifically where he went off script, but I remember that later, too.
Guy: Fun times. How was the group after that? You must have been sitting on top of the world for a while.
Guy: But then you had to do the SDK. Things got a little bit painful. But you must have felt so good for years.
Nitin: Oh, it was phenomenal. It was just great. There was the high of the keynote, and thankfully everything went so well during the keynote. Everything worked out. People got good and drunk after that and had some fun. There was a little bit of vacation time that some people...actually no.
They didn't take any vacation time, because it was right back into, "It's demoed well. Now we've got to ship this thing." Even after January, after coming off the high of a keynote that went well, then we had to actually put this thing in a box and ship it, and that wasn't going to happen for five more months.
Rene: You were adding apps. I think the YouTube app came after the demo too.
Nitin: Yeah. That's right.
Guy: That's nuts.
Nitin: [laughs] To be fair, that was on Richard Williamson's side. It's probably not fair, that was on his side and I'm going to give myself a pass for not referring [inaudible 41:45] back.
Nitin: But it was really, "OK, the demo went well, now we've got to ship it." But it became a new form of terror. It was sort of the, "Now we need to make it so that everybody can do the Steve demo." It's not just a well-rehearsed, "Don't fall of the rails on this part" or, "Please don't touch that part." To his credit, he was very good about that kind of thing.
But the new hurdle that we had to clear was, "Everybody wants to use this thing and everybody's going to be using it, and we have to make it so that we don't have any horrible glitches on day one." The thing that's always bothered me a little bit about demos is it's so easy to make a demo look so much better than the actual shipping product.
I've been a car fan ever since I was a little kid, and it always made me apeshit that Ford or GM or these companies would show just these sexy cars at whatever auto show, these concept cars, and then they would release these dumpy-looking things at the dealership.
It was the difference between the thing that they want you to believe and the thing they're actually giving you is just, there's just like the Grand Canyon in between them.
Rene: Everybody wanted to do cover flow, everybody wanted to do pinch and zoom immediately.
Nitin: Right. Everybody wanted to make a phone call and have their music pause and be able to go browse the web or do these things. Everybody wanted a seamless handoff between WiFi and EDGE, whatever it was at the time.
Guy: Yes, EDGE.
Nitin: Ugh, EDGE. I threw up a little in my mouth right there.
Rene: It's not your fault.
Nitin: But now that's the next hurdle to clear. You come off that high, it feels great. You can kind of ride that high for a few days. But then the reality of shipping this thing kind of set back in, and it was with us until we got technical approval, which I think it was May of 2007. Maybe it was even June. It's a blur at this point.
Guy: Close enough for rock and roll.
Nitin: Yeah. [laughs]
Guy: How did the organization proceed post-launch? Pre-launch for those two years, obviously, the driving thing is, "We're going to put out this phone, and we've got a terrific vision for it." That seems to be established pretty early in that cycle.
As soon as you launch it, there's a party. Then, all hung over the next day, what's the feeling? It's like, "What's the next goal?"
Nitin: Obviously, it was fantastic. That was when we had the big parties. Some people may be embarrassed themselves a little bit during those parties. I don't want to name any names or anything like that, but, yes, it was just a lot of partying.
It was a great sense of relief, and especially when we got...The big thing that we had been pushing for was technical approval by AT and T. We weren't doing a release to manufacturing. All of the decision-makers had said, "Yes, this is a good release. Ship it, and get it out there," and what have you.
Really, for us, the big thing was technical approval. We had these giant Excel spreadsheets from AT&T describing all of the requirements of this phone. We had been in countless meetings with them, as well, talking through various details about how different features work. There was a lot of hand-wringing around technical approval.
In addition, there was the inevitable futzing around with the UI. I don't think Steve could help himself. He just wanted to do that kind of thing. That always gives engineering managers and project managers headaches.
It felt great for a while. Everybody got drunk. Everybody was very happy, but then I think the next hurdle was international. It was the European rollout. I think that was a release called Octoberfest, because we wanted to ship it September-October timeframe. It was really not too much time between receiving technical approval from AT&T, which I believe came in May, or maybe early June 2007, and shipping a European-ready version of the iPhone.
Guy: Was that a Canadian one, too? Because I bought an iPhone just because I couldn't help myself in Canada, and I couldn't activate it. All I could do was dial 911, and I swear to god, I was so tempted. I managed to jailbreak it, and get it real. To me, it felt like a long time. To you, it must have been a very short window to roll out that extra set.
Nitin: Yes. To me, it did feel like a short amount of time. I think we rolled out with O2 in the UK, Vodafone in Germany, and maybe Orange in France. I think those were the three that came out roughly in the late 2007 timeframe. There may have been a Canadian release.
Rene: It was the iPhone 3G we got. That was the first one for us.
Nitin: One of the things that happened right after release, actually, and it may have even been right after the January demo, there was...It's funny.
I don't if it's paranoia or if it's just sort of an understanding about how the world works that I was just exposed to. But it was definitely made clear that there's...OK. People at Apple definitely felt like there was sort of a whisper campaign against the touchscreen and using touch as input for the iPhone. Even at that time, there were a lot of parallels that were drawn sort of to the Mac in the '80s where...
Guy: Being dismissive of the mouse?
Nitin: Exactly, being dismissive of the mouse and feeling like maybe that's a consumer toy type thing. But serious businesses will never use that kind of thing, right?
Rene: My company will never ship anything called a mouse, that's what Xerox said.
Nitin: Xerox said that?
Nitin: Right. That was the party line for a lot of Apple's competitors back then. Right up until they got to the point where they had a windowing system and wanted to ship this thing, and then there was hey look at our cool stuff too. Then all of a sudden, the message switched.
There was definitely some awareness around the fact that Apple was coming out with this touch-based keyboard and touch for text input where sort of the leading phones in those categories. I think it's fair to say it was the Treo and the Blackberries and maybe there are some shitty Nokias in there, too. I'm not really sure.
But all of those phones had physical keyboards. Even the danger device had a physical keyboard. As much as we did a lot of hand ringing internally around making it so that this touch keyboard actually does what you wanted to do and what you're expected to do, there was a lot of concern that our people really going to adopt this.
Internally, we knew that we could use this thing and we were pretty productive on it. But it's not just because we put in the kind of above and beyond time to learn how to do this thing and our normal people going to want to do...There's a lot of awareness within Apple that not only our people dogfooding thing but at the same time, they are also kind of second guessing the fact that they're dogfooding because they're not normal.
Guy: It's a fear of acclimatization to poor circumstances, right?
Guy: Like you are dogfooding, but ultimately, you don't want to be eating dog food. You'd really rather be eating a good steak. If you just get used to eating dog food then ultimately the product efforts from that.
Nitin: After a while and humans are so adoptable and humans are so good at...you live next to a dump for a while, you don't even smell the dump anymore. There was a lot of concern that is this keyboard kind of like living next to a dump where you've gotten used to it now and yes it's pretty good, but you live next to a dump.
How are you going to convince Joe Schmo to move in next to a dump, right? There was some second guessing internally that was taking place. But there was also just sort of this fear of kind of this, what's describe to me as this whisper campaign about the viability of using touch devices for keen professionals really use that kind of thing.
Rene: It turns out yes?
Nitin: Exactly, it turns out yes. But there was a lot of concern at that time. There was definitely a lot of awareness of the fact that Apple was...we have a lot of success with iPods but by and large, we're a PC company. Even some of our competitors like Palm called us as out as PC companies. They were famously wrong at this point now or they were later...
Guy: Did that get your backup? There was a lot of people think kind of like or being at least dismissive about Apple, being able to enter like the phone market or the embedded market. Does that seem maybe it a little bit feisty?
Nitin: A little bit? But I think it was one of those things...at that time, I think it was even so true at that time at Apple, where you're kind of used to being the underdog. You're kind of used to not everybody believing your story or wanting to buy into your story. I mean there are so many...
I can't tell you how many times I've had just in casual conversation and especially during the dark days at Apple, where I would tell somebody, "Yeah, I work at Apple." They would look at you like, are you too dumb to get a job somewhere else? Like, or are you just buying into some religion that I just can't possibly understand?
By the way, I think this is one of the things that worries me a little bit about the new Apple is that, or Apple these days is, I really hope that there are still those people there who sort of hold to their convictions in the face of a whole world that's against you. Because, at this point, it doesn't feel like the whole world is against Apple, and so it's easy to get sort of complacent and maybe feel like everything you're going to do is a success.
Guy: That's interesting, because I think, I was about to say, at least, I feel from the outside community that there is still that underdog current going on.
Guy: Which, yeah, is good and can be bad in that, I think maybe people don't appreciate that Apple now is a huge company. At least from the outside, from the external developer's perspective.
Things are changed a little bit. I think people need to appreciate that the Apple you started with that would never, ever break, super boomerang, is not that Apple anymore. People should be adjusting their expectations accordingly.
That said, I love that you want to, and I think it's important that Apple does remain feisty and does not become complacent with their success.
Nitin: Right. It's, maybe, for some of this, I think a lot of my concerns are sort of, admittedly, in a very simplistic way, I'm sort of drawing parallels to Microsoft in the mid-90s. Microsoft, they were this feisty company, they had these releases that were kind of famous for being crappy, but then they also had releases that were famous for being just wildly successful.
To their credit, they sort of, they brought computing to people who could never afford a Mac, or who could never, who just weren't willing to pay that much money for this thing that they maybe didn't see as being valuable.
Guy: I was never a fan, but they did a good job.
Nitin: Exactly. I hated it. I could never use a Windows machine, it was just awful. But to their credit, they fought through that, and they fought the people who were, there was that culture of, kind of, you've got to keep fighting. The whole world out there is critical of what you're doing.
The best way to kind of tackle a lot of that is to be your own worst critic. You want to come with the answers that you know you're going to be asked, or for the questions you now you're going to be asked. If you're complacent or if you believe that everything you're doing is going to be successful because you work at this badass company, you're not going to do that. Or you're not going to have the drive to do that. That's where I worry a little bit.
I feel much better having seen this WWDC, and sort of seeing the effort that's gone into iOS and into Yosemite. These are the points where it would be very easy for Apple to just kind of phone it in and just kind of Samsung their way into a new release. Make the new thing look exactly like the last thing, because hey, we couldn't make enough of the last thing, so why would we diverge from that?
Guy: Was this the first year that you didn't know what was coming in the keynote? You've been out of Apple, what? Two years now?
Nitin: I left Apple in early 2012, so this is my third WWDC not as an Apple employee.
Guy: Imagine the first one, you pretty much knew what was coming, right? The second one, maybe a little bit. Was this like a brand new thing for you?
Nitin: Yeah, there was a lot more that was brand new this year. It's funny, because I'm still friendly with so many people who are now working on these new efforts. I don't ever want to put them in a position where they feel like they have to say, "I can't tell you." I know they can't tell me. They're doing their jobs by not telling people.
Guy: That's [inaudible 01:58:12] dance. I got a lot of friends there, and I basically just asked like, "Are you happy?" They say yes or no and that's pretty much it. Like, you can't get into anything.
Nitin: Yeah, am I going to be happy to see the thing that you're working on?
Guy: Yeah. You try to talk in vague terms.
Nitin: Yeah, every year that's gone by, it's been a little bit more, I'm a little bit more detached from what's coming in. To everyone's credit who is still at Apple, they're not telling me, which is, they're doing their right job, and they're doing their jobs, which is great.