Sunday January 8, 2006 8:07 pm
Live From CES: Hands On With Vista—Vista By The Numbers, A Developer Tells All
I had the opportunity to spend close to 20 minutes interviewing and picking the brain of one of the Microsoft Vista product managers who in the Driver Group for the Windows Vista OS. John Clavin let us in on how the development process works over at Microsoft and what sort of manpower is required to develop, test and release a product of this size. As a developer myself, I was like a kid in a very, very nerdy candy store, begging to learn more about the system. (The ladies love it when I talk code to them. I swear.)
Versioning, stress testing, lines of code, distribution, builds, rebuilds and more, after the jump, straight from the horses mouth and only on Gear Live.
Close to 10,000 individuals. Over 200 million lines of code. Each division (think Graphics, Networking, Printing, etc.) uses their own individual build of Vista. During development, each division’s department (think separate graphical applications, drivers, etc.) writes their changes into the code using a specialized massive versioning system. The system allows developers to know exactly which lines of code are being manipulated across the organization, and every change is logged and tracked. If two programmers try to edit the same code at the same time, they’re both warned to get together and figure things out.
Each division rebuilds their changes every night. A rebuild of the codebase takes as much as nine whole hours. After the nine hour rebuild, the new build has to be completely reinstalled on their test beds in their testing labs. Before a division’s build is allowed to be integrated further up the hierarchy, (the various builds are integrated whenever possible, to maintain consistency across the board.) 90% of the test beds must pass “Stress”, an internal benchmarking and system stressing solution.
“Stress” isn’t just software that maxes out a system’s CPU usage. Instead, it throws every possible stress it can think of on at the system. Memory leaks and buffer overflows, thread after thread and processes with high CPU utilization, I/O over-saturation and more push the system to the max, so much so that one hour of “Stress” is equivalent to one full week of the average user’s usage patterns. Now, before a division’s build can be integrated into the main build, 90% of the test systems must survive 48 hours of “Stress”—48 weeks of normal system operation.
When things break, and they often do during development as any programmer knows, “Stress” is so replete with debugging and error tracking systems that the developers are able to see exactly what lines of code caused said problems. Multiple changes and additions can easily be made within a single build, because “Stress” allows them to so robustly track down where things went wrong. Still, “[the rebuild process] really encourages us to not mess up.”
The entire codebase is distributed on a local server farm with the versioning and changelog system built in. (The versioning software, I was surprised to learn, was purchased from a third-party and simply heavily modified to suit Microsoft’s needs.)
When asked about Bill Gates’ direct involvement in the development of something like Vista, John told us that all major decisions go through Bill. As the Chief Software Architect, Bill develops the direction that he wants the new system to move towards. In Vista, simplicity, media and gaming took precedence. He then follows closely with all of the major decisions to ensure that things fit his vision. “He’s incredibly sharp. He’ll pick up on the tiniest detail and identify why it will or won’t work.” “Steve Ballmer’s much more visible in the office, though. And he plays basketball here [points to Microsoft’s satellite shot of the MS campus] almost everyday.”
The sheer scale of a project like this is simply mind-boggling. The number of components that make up something like Vista makes it all the more impressive that it’s able to be managed and produced like it is.
- Related Tags:
© Gear Live Inc. – User-posted content, unless source is quoted, is licensed under a Creative Commons Public Domain License. Gear Live graphics, logos, designs, page headers, button icons, videos, articles, blogs, forums, scripts and other service names are the trademarks of Gear Live Inc.