Russell Kay
MICROSOFT SECRETS: HOW THE WORLD'S MOST POWERFUL SOFTWARE COMPANY CREATES TECHNOLOGY, SHAPES MARKETS, AND MANAGES PEOPLE by Michael A. Cusumano and Richard W. Selby, The Free Press, ISBN 0-02-874048-3, $28
Microsoft Secrets
is just like one of Microsoft's own software applications: It tries to say everything there is about its subject, it's full of interesting ideas implemented with varying degrees of success, and it's so big that it sometimes gets in its own way. Just look at the subtitle.
Cusumano and Selby document what's responsible for Microsoft's commercial success, describe its procedures for developing software, and discuss how Microsoft manages its people and periodically restructures itself. There's a wealth of detail on how Microsoft operates.
Perhaps th
e most revealing segment describes the synch-and-stabilize process by which Microsoft controls software development. If you've never worked on a mammoth programming team (and I haven't), this is an eye-opening look at how to schedule, organize, and track a big, multiperson, multilayer, multiyear project.
The heart of the process lies in integrating, every day for applications and slightly less often for system software, all newly completed and debugged program modules into the existing code base. The idea is that on any given day, a product team always has a working code base that could conceivably ship. The product may not yet have all its planned features, some sections might not run efficiently, and parts of the program may not work together as well as desired. But this process gives Microsoft a complete, up-to-the-minute snapshot of the product in process -- and it's tested code that runs.
To make such frequent builds possible, every programmer works one-on-one with a tester to find bugs bef
ore checking code back into the master library. As an incentive to keep new code bug-free, Microsoft teams impose penalties for "breaking the build" -- ranging from a $5 fine to wearing goat horns to taking over responsibility for creating the daily builds until someone else breaks it.
My major criticism is that the authors fail to recognize Microsoft's unique nature. Instead, they attempt to use Microsoft as a model for what every software company could and should be. They extract strategies and guiding principles from Microsoft's success that sometimes sound downright silly. Their very first principle is: "Hire a CEO with a deep understanding of the technology and the business." It's not exactly earthshaking advice, and it bears no relation to how Microsoft's CEO got where he is -- the company has never hired a CEO.
The book also points out many Microsoft mistakes: a preoccupation with features over architecture, too many specification changes, a focus on user activities rather than behavior,
and too little appreciation of product interdependencies. These have led to such miscues as the massive underestimates of development time for successive Windows versions and the failure to anticipate problems with MS-DOS 6's SmartDrive caching and DoubleSpace compression. The authors note organizational deficiencies, including weak middle management and an overdependence on Bill Gates's leadership and vision.
But Microsoft has its strengths, too: comprehensive testing, a willingness to reexamine goals and change course, and a dogged pursuit of new markets. These will be crucial in a future where OSes disappear from view, customers are less technical and more consumer-oriented, and growth will come largely in global markets.
Russell Kay is a BYTE technical editor. You can reach him on the Internet or BIX at
russellk@bix.com
.