Inside Windows' core: A peek into Microsoft's COSD

Jon DeVaan -- the "mystery man" behind Windows 7 -- is the Senior Vice President in charge of Microsoft's Core Operating System Division (COSD). I had a chance to ask DeVaan some questions last week about how COSD works and about one of COSD's better-known (if still largely misunderstood) initiatives: MinWin.
Written by Mary Jo Foley, Senior Contributing Editor

Microsoft's Core Operating System Division (COSD) is somewhat of a black hole to many outside (and even inside) the Redmond software maker. Charged with the amorphous goal of ensuring Windows "engineering excellence," the five-year-old COSD group creates the core components at the heart of Windows.

Jon DeVaan -- the "mystery man" behind Windows 7 -- is the Senior Vice President in charge of COSD. I had a chance to ask DeVaan some questions last week about how COSD works and about one of COSD's better-known (if still largely misunderstood) initiatives: MinWin.

COSD was created in December 2003 during the reign of then-group-vice-president-of-platforms, Jim Allchin. COSD's mission was to help the Windows team hone its architecture development and overall processes. Since its inception, the COSD team has focused on developing the "guts" of Windows: the kernel, I/O (input-output) system; core devices; setup; virtualization; the driver framework; and all the build properties.

Here is a transcript of my phone exchange with DeVaan (edited for length and clarity): MJF: Could you talk a bit about how you ended up heading COSD (in 2006) and how COSD has changed since it was founded?

DeVaan:  When COSD came to be, I was working in the engineering excellence role for Microsoft. One of the things we did for engineering excellence (was) bringing some better focus on the engineering system for finishing Longhorn, and that was a really positive step, which actually helped get to the point where Vista could be shipped. So, when I was asked to come work on Windows, it was pretty natural for me to come work in COSD.

The basic role of COSD hasn't changed a whole lot in that time. Now, (Windows engineering chief) Steven (Sinofsky) and I bring a different philosophy about how we organize engineers and engineering projects, and we've really done that same work across both teams, and that has to do with how we organize that we're building the engineering talent that we need to meet our challenges long into the future.

We created a shared vision for Windows 7 and really manage the teams exactly the same way according to that vision for Windows 7 and for Server 2008 release 2, where we have the same shared execution vision with the server team, so that we can ship these products together in a much more coordinated way, and with much better teamwork across three major divisions at Microsoft.

MJF: How is COSD organized, beyond what you've shard on the Engineering 7 blog?

DeVaan:  We really try to manage the feature team, so these are the core groups of development, test, and program management, working on a particular technology area, whether it's devices and media under Steven or the kernel and VM team under me. We try to manage them really exactly the same way on Windows 7.

The things which are shared between client and server gravitate to COSD, and then the things which are specific to client or specific to server are in those teams. It's never perfectly clean along that definition, but that's the basic philosophy.

One of the things that I did do at the beginning that's a little different than before is to make sure that we have a team focused on improving our engineering system. So, the engineering system is a very broad term, but all the tools and the practices and the processes that we use to engineer Windows, we set aside people to work on that explicitly and to be in constant improvement on making that better over time.

MJF: Are you talking here about things like software development and testing processes?

DeVaan: Yeah. When I talk about the vision process that's shared across client, COSD, and server, that's one of the core processes of the engineering system.  When we get to the things about how we ensure daily quality -- so there's the main branch build, which is the one that has the contributions of all the teams, and how does work get managed from a developer on the front line making a change and all the quality checks that go in to make sure that that main branch is always very high quality every day. Those are a couple examples of the basic engineering practices and processes.

MJF:  In the past, one of the things that COSD did was work with both Windows client and server together. Do you also now work with the Windows Azure cloud team, too?

DeVaan: We do. We do a lot of technology sharing between us and Azure.

MJF: Is COSD responsible for things like which code gets passed back and forth between the different teams?

DeVaan: I think that's where the primary engineering engagement is. So, in terms of sharing technology around virtualization and operating system kernels and that stuff, that is where it happens.

MJF: Could you talk a bit about MinWin, and how it fits in with COSD. I'm trying to better understand exactly what it is and how it relates to Windows 7 and Windows going forward.

DeVaan: There are a couple kind of concepts which fit in with engineering excellence in terms of bringing new approaches on how to work on long term changes and improvements to any product, not just Windows. MinWin is an example of where we incubate a long term change to Windows, but we do the work on it in the context of a well-defined engineering project.

So, Windows 7 is a well-defined engineering project. It has a vision, we've assigned resources to the priorities of that vision, and people are working according to the enterprise system to develop that product and that project. Every one of those projects is going to have forward progress on our long term objectives. MinWin -- that's really the name from the incubation, and instantiated in Windows 7 -- is one step along the way.

You're not going to see any product MinWin, but you will see a much better Windows embedded product based on Windows 7, and you'll see a much better Server Core in the Windows Server product.

MJF: If you're a customer or a developer and you're targeting or thinking about using Windows 7, what will it gain you, if anything, in that MinWin is part of Windows 7?

DeVaan: If you're a person just sitting in front of your new laptop, for example, you're not going to see anything visible, but you'll see that some of the ideas around MinWin are the ideas that allowed us to reduce the RAM footprint of Windows, and it actually helped us in terms of engineering process to have better stability every day, so that's not a thing per se that has the name MinWin on it, but you'll appreciate the fact that the system is more stable and more reliable.

MJF: Will the inclusion of MinWin in Windows 7 have any impact on developers in terms of how they build software to run on Windows 7?

DeVaan: No. A clear goal, and this again is one of the concepts coming from engineering excellence, is that you can achieve these reforms without interfering with compatibility. Not using MinWin as an example -- because we're not really surfacing any MinWin platform in Windows 7 -- but if you use an analogy of the WDDM 1.0 and 1.1, you can certainly deliver a perfectly great display driver with the 1.0 driver model, and all those Vista drivers will work seamlessly on Windows 7, but if you take advantage of 1.1, then you get advantages around the DX 11 compute shading and the RAM savings that we're able to accomplish in the system with the new driver model.

When we get to the point of sharing a new platform element, that's the time when you'd be able to take advantage of it.

MJF: Is surfacing pieces of MinWin so that they actually affect developers and consumers something that's a longer term goal?

DeVaan: There could be a point in the future, and I think right now I don't want to comment on the incubation part of it, because we're really trying to talk about Windows 7 now, but we're working on -- you know, we're always working on taking into account a lot of different impacts of how the computing world is changing. I don't want to talk about them specifically until they're being delivered in the context of one of those well-defined engineering projects.

There are a lot of people that really want to speculate about a lot of things, and I don't want to encourage it, but we certainly are always looking forward to understand the things that we should be accomplishing.

Editorial standards