What did Microsoft learn from Vista?

Here's Part 1 of my Q&A with Windows chief Jim Allchin, where the outgoing Microsoft veteran talks about what Microsoft learned in developing Windows Vista, and how the company intends to apply some of those lessons with Windows, going forward.

After Bill Gates, the man whose name is most closely associated with Windows is Jim Allchin. Allchin, the co-president of Microsoft’s platforms and services business, is in his final months at Microsoft. As previously announced, the 16-year Microsoft veteran plans to leave the company in January, following the retail launch of Windows Vista.

I had a chance to chat with Allchin at length on October 18 about everything from why Microsoft decided to christen XP SP2 a service pack (rather than a new Windows release), to how he’d like to be remembered when he leaves the company.

I’m breaking up the transcript into more digestible, blog-post-sized chunks, rather than running it as one, giant Q&A.

Here’s Part 1 (edited for length and clarity), where Allchin talks about what Microsoft learned in developing Windows Vista, and how the company intends to apply some of those lessons with Windows, going forward.

Q: You say you’ve learned a lot from the whole Longhorn/Vista development process. Could you share some of these lessons?

Allchin: What you really want to do is componentize, get the stuff done, make sure you understand the dependencies, easy as one, two, three. But you need to understand those dependencies and then you put the pieces together. And without that, your ability to build large, complicated products -- could be cars or operating systems or whatever -- it doesn't scale.

So you've got to get it down to components that you really can thoroughly understand and make sure you understand the dependencies so you're not building them on a quicksand-ish or shaky foundation.

So it sounds trivial, (but) at scale it's very hard to do. You (might) say, well, I'll do the memory manager separate. No, the memory manager can't be separate because it's so integrated in with the other parts of the operating system. And so it's a tricky balance. And when we were doing stuff in Windows – actually, alpha Longhorn -- there were many learnings that we had to go through there because we had pieces that we knew eventually had to fit together, and we were just binding them too closely, we didn't understand the dependencies well enough.

Q: But inside Microsoft’s Core Operating System Division (COSD), it seems you already knew about building modularly and were doing development that way. How much more modular can you get than you were?

Allchin: Much.

Q: How?

Allchin: We paid a huge price in the engineering in Windows Vista for the componentization work that we've done. Now, components mean different things to different people, and so I don't want to spend time on a definition here.

But we have rearchitected the system for a new setup technology, which is componentized so that people have pieces of code that have manifests associated, which describe how they touch the other parts of the system. We have dependency analysis between all these components now so we understand the layers of the system, we understand who impacts what.

And so, for example, we're in the middle of escrow right now for Windows Vista as we walk through it, and if we have to do a bug fix at a particular point in the system, we know what other components in the system will be impacted, so where else we have to test. We didn't have that understanding before. So we've paid a huge cost, which the benefits for Windows Vista, it's very hard for me to point to one other than if you've seen fast install of a clean system, that's a direct customer benefit, but most of it is all benefits for the future.

Now, with that being said, I consider it to be just step one in Windows Vista. There is a tremendous amount more to be done in componentization, and breaking up bigger components into smaller components, and just making it cleaner, cleaner, cleaner, but we paid a huge cost. It's like Windows Vista in componentization is like the first time we did localization -- or internationalization earlier, because once you put the foundation in place, then you can easily say, okay, I'm going to add new languages or I'm going to tweak it, I'm going to continue to refine it.

Q: So you're taking the hit now. You’re going to get the payoff later.

Allchin: There are many things that we took a hit in Longhorn that will have huge benefits in the future. The step towards componentization we did, which I include in that all the stuff about the dependency analysis and the layering and all of those things. Those are return benefits later.

Security, I mean, in that particular space (it’s my opinion that) it will be years before people appreciate the improvements that we did in Vista, because it's not something super visible. And improvements in the code quality underneath the covers in Vista is a big step, but there's a whole bunch more to do.

Q: I’ve been confused by some of the messaging around this. (CEO Steve) Ballmer is out there saying that no Windows development cycle will ever take Microsoft as long as Vista did, ever again. He’s even said that the whole “integrated innovation” concept Microsoft has been championing is outdated. Now it’s “innovate, then integrate” – whatever that really means…

Allchin: Let me give you my viewpoint of that. There was a phrase that (Chairman) Bill (Gates) used called integrated innovation. Some people got confused that that meant you just integrate it, put it in a big bowl and stir it up. I'm being silly, but -- versus you innovate and then integrate. So you want to get the innovation done and then you integrate it, and then you make sure of the dependencies.

So to some degree I would say the balance that Microsoft needs to attain is how far you reach. There were engineering learnings that took place during the Longhorn thing, but the real question is how far you reach each time. The truth is that Windows Vista has been done in two and a quarter years. That's the truth. We basically started in August or so of 2004.

Q: So you are counting after the “Longhorn Reset”?

Allchin: After reset is when we started. So we've accomplished an amazing amount.

Then you say, well, what in the world did you guys do before then? And I'll say the following: There's a whole set of products that we're not getting credit for that we did ship. Three versions of Media Center, two versions of Tablet, and Windows XP 64, a Windows 2003 Server, a Windows 2003 SP 1, which has X64 in it, and a service pack which by any other means would have been a release, called Windows XP SP 2, which I had thousands basically of people across -- if you total everybody who had something to do with it -- involved in it. I just took these people basically offline.

And we made mistakes. So it was a combination of, yeah, we shipped a lot, and then we learned a lot about how we needed to stair-step in terms of the dependencies.

Q: So what was the deal with Windows XP SP2? I was always curious why you guys didn't call that an operating system release, which it really was.

Allchin: Well, right or wrong, that buck stops with me, because I made that decision. And this was against Steve Ballmer's direction or opinion to me. And here's the reason why I did it. In hindsight I look like an idiot.

(But) I'll stand by my decision. I stood by my decision because I was absolutely so worried about customers hesitating in deploying this, and I thought there could be a complete meltdown that customers were at risk.

And so I wanted to do anything I could to ease the deployment, and I felt that if I called this thing Windows XP release 2 or anything like that, I would have started a retest, re-verification, delay the deployment and in would have come an attack of some form. I wanted to, even with as simple thing as the name, we did things in technology to make it simple to deploy, too.

For example, we didn't do a brand new setup, we just used the update setup. So I wanted to do everything I could to help customers, because I didn't -- my mindset was customer, customer, customer, customer -- what can I do to get those customers safe. And there were meetings here where we were -- I mean, there was a lot of concern. I was super concerned; that's why I dropped everything. I wasn't even thinking about Longhorn at that time for I don't know whatever it was, almost a year I spent time focused to say, okay, we've got to do everything we can, put all our energy, whoever can help to get this done.

So now that everyone has got it deployed, everybody says, oh, it's a very good product, blah, blah, blah, blah, blah, why didn't you do it, and I look like an idiot, because if I would have called it something and everybody said, yeah, well, they shipped Windows XP release 2, yeah, they really didn't sit around doing nothing.

Q: Interesting. There were so many conspiracy theories floating around about why you guys called it a service pack as opposed to an OS release …

Allchin: Well, I made that decision. And I made it because I wanted no retesting, even though there was going to be some anyway, but I didn't want people to think we were putting things in it.

In fact, although there were some little minor things that improved features that went into it, I kept things out of it because I was afraid if we put things in it that might appear to be feature oriented, that I might have resistance. And my focus was get the customer secure, because -- and I knew at the time it was a first cut, it wasn't anywhere near far enough, but I wanted to get that first cut out there as fast as I could, and I didn't want -- to be clear, I knew I wanted to jam this through Windows Update. If I would have tried to do this and had all these features, I would have had a backlash, particularly if I said, they're distributing a new operating system and making it a critical through Windows Update.

So at any rate, that's the logic. Now I so wish it had been called XP release 2 or something like that. And Steve said I should do that at the time, but he also understood my rationale.

Part 2: Will Web 2.0 ultimately kill Windows?