Cooking with Windows
Since Windows7 released today, I think it is a good time to reflect back on my experience in the Windows Client team and working on the different versions of Windows. Vista and Windows7 were done much differently. When Vista shipped and we were making big changes to how we were going to manage the next project, there was an analogy floating around that I really liked and it helped the team move forward. Here is basically how it goes.
Vista was like American cooking. When you go to an American restaurant, you almost immediately order a drink, then get an appetizer, next your main dish, and finally dessert. If not planned out well, you may get nachos for an appetizer (Mexican), spaghetti for your meal (Italian), and then run out of room to even have a dessert. And how many times does the waiter/waitress come to the table to give you that one condiment you need or other items? It's not a very well planned out meal. But it is fun. Luckily, you aren't required to have dessert or have foods that go well together. And most of the time, you aren't in a hurry so it doesn't matter how many times you send the waitress away for more items. Creating Vista was fun too. But the project also had these characteristics similar to a typical dinner out in the U.S.
Windows7 is like Asian cooking. When you go out to some Asian restaurants, once you order, they bring all the ingredients that are required to make your meal to the table. Then they make it right there in front of you. It's all planned out, is done quickly, and ends up being exactly what you ordered. I was in the Windows7 team for the first 1.5 years of that project and a significant amount of that time was spent planning.
Finally today, the world gets to see the results of all that planning.
Ok, this analogy has made me hungry. Thanks for listening and go get yourself a copy of Windows7. I'm going to go get myself dinner.
Comments
Anonymous
December 31, 2009
For a large integrated, "shrink-wrap" product like Windows, it seems the latter approach (with all the planning) seems to have worked better. Now that you are working on a web deployed product (the Microsoft.com site), which do you think is the better approach there? The advantage of the first approach, which I took to be an incremental one, is that with a web deployed service you can actually put each increment out there in front of real users before going on to the next piece, and then measure how it's doing (for instance using my team's product, the Experimentation Platform).Anonymous
January 23, 2010
Yes, web deployment projects do take the more incremental approach. Not only to get it in front of real users, but also because the projects are smaller in both people and duration which naturally just make them more agile compared to a huge project like Windows. So making changes during the product cycle is not as risky or costly. Great insight! Thanks for the comment. ExP is great and has helped us in Microsoft.com many times.