Tuesday, July 20, 2004

Telirati Newsletter #46

Every now and then I would reach pretty far in my newletters, and this is a case in point: I analyize David Cutler's influence on Microsoft. Ambitious, but perhaps also useful in that the influence of people like Cutler is one reason why Windows seems to move so slowly to respond to the threat of Linux. He shaped Microsft, and his influence, and the momentum of what he set in motion, is still strong.

Telirati Newsletter #46: Cutler on the Couch

One thing that makes Microsoft great is that titanic personalities can still mold large parts of the company in their image. David Cutler, the father of NT, is one such titan, and his worldview is about to start shaping your desktop computing experience. What a strange world it will be. In a recent interview Cutler gave in a Microsoft newsletter distributed to the Windows 2000 beta test community, he made some telling remarks. The interview itself was a puff piece, and the writer was in awe of her subject. But Cutler reveals more than he or the writer might know.

One striking thing about the interview is the reverence over the original NT specification document. Your's truly enjoys regaling his co-workers with stories of how he had to walk five miles through the snows of Illinois to a log cabin where he toggled in the boot load code on the front panel of a PDP-8 until their appreciative snoring reaches its crescendo as much as the next old fart. But it does not exactly exude an aura of Internet speed to blow the dust off the original NT spec. It more reminds one that the ghost of VMS lives on in many of the clunky aspects of NT.

Everyone has to deal with the legacy of their previous efforts. This is nothing new. The more important thing here is the legacy of one's management philosophy and leadership. When Cutler was hired, the move was widely praised as signaling the maturation of Microsoft. Here was someone who could bring order to the chaos of microcomputer software, which had hitherto (and long after) been the province of cowboy engineers who had little patience for the style of software development practiced in corporate software engineering projects.

Microsoft no longer had to scrimp and improvise. It could for the first time afford to do things the right way, and Bill Gates thought there wasn't enough "right way" thinking inside Microsoft. It would be better to score a system architect from an established firm that did things the right way. At the time, the rightest company on the planet was Digital Equipment Corporation. Microsoft harbored dreams of PCs being able to reshape computing to the extent that the kind of rigorous design and development of an operating system that was a hallmark of DEC would become a requirement. So they went right to the source: David Cutler, father of VMS, would lead Microsoft to the future of microcomputer-based systems used alongside, and perhaps even replacing minicomputers.

Cutler is, as already stated, a titanic figure. He had the overwhelming force of personality to move a company like Microsoft, already filled with strong personalities, to a direction of his choosing. He would not shy away from spending whatever it takes to accomplish his goals, and, in general, has self doubt in amounts that, if it exists, must be hunted down as assiduously as a neutrino. In some ways, the perfect man for the job. In some ways, not.

One way to measure the level of self assurance is in the way the discussion of NT's goals are framed. Cutler refers to the original spec (which will be donated to the Smithsonian!) and an early book on NT:

We had five or six major goals: Portability, reliability, extensibility, compatibility, performance. I think that's right. Let me see.

He was then asked if the goals had been achieved. The response is intriguingly self-contained, internally consistent, but not even coming close to examining the ways in which reality has impinged on the relevance of the goals and the way in which they were met:

We tried to create a system that had a good, solid design, as opposed to one that would run optimally on hardware of the time. When we started, we were working on 386/20s. At the time that was a big, honking machine. Since our design had to be portable, we didn't allow people to optimize code in assembly language, which is hardware specific. This was hard for the Microsoft mentality at the time. Everyone wanted to optimize code in assembler. We didn't embed operating-system semantics into the kernel, so when we switched from OS/2 to Windows, we didn't take a major hit. If we had built OS/2 threading or signals into the kernel, we would have been in trouble. Instead we built the OS in layers.

Later he adds: "The basic, internal architecture has not changed, except for Plug and Play?"

Anyone who has ever complained to a Microsoft engineer that a product or programming tool might be more than necessarily complex or difficult to apply is familiar with the form of Cutler's response. Correct, but it leaves one with a sense of unreality. Two facts jar the mind here: Windows NT was forced to adopt an architecture where notoriously unreliable video drivers were allowed into the kernel for the sake of performance, and Linux achieves a high level of reliability with a low-tech monolithic kernel architecture. Multiple user interfaces, multi-protocol-networking, and other NT architectural keystones have become cybernetic teats on a boar. Shockingly, the museum-piece spec dates back only to 1989. NT feels much older.

Napoleonic siege development processes and forced-march debugging cycles do not feel right in Internet time. It is as if a bunch of splendidly dressed German officers on horseback showed up to fight the narco-terrorists in Colombia. What saves Microsoft is the fact that Windows 2000 development is not a single, monolithic army. It is a multi-service-branch task force with a variety of leadership styles and operating procedures. Good thing, for as Cutler says:

What I think is cool, is that the system doesn't crash, and it doesn't lose my work, and it has functionality. I could care less that the visuals are flashy if my 32-gig hard drive goes away.

Never mind the fact that Apple has resurrected itself on the restored ability to deliver the flashy visuals on a kernel that was iffy in 1984, and little better today.

Cutler's remark shows he is more brethren to the Linux people than one might think: architecting a system to make user interface systems changeable and disposable indicates a similar contempt for what we feed on through our eyes all day long. The kitchen may be a gleaming temple of stainless steel, impervious to infection, equipped with the fastest-cooking ovens, but if the food is unmemorable, never mind its objective quality, it will go uneaten in favor of the kebab of dubious street corner origin.

To this point Microsoft was up against companies that were either far more stultified and bureaucratic, or that had inadequate resources for a credible challenge. With Linux as the main competitor, the old measures of relative strength are mostly useless. Any inefficiency could be the cause of Microsoft's decline. They can no longer count on IBM to botch OS/2, or Apple to become a seething pit of office politics, or BeOS to be the consumptive Bohemian in the garret. Linux is immune to these diseases. Not to say Linux is destined to succeed. Only that the old paradigm that sucking less is enough may no longer hold. Can Microsoft make NT development really conform to what people want? Can they do this before Linux oozes into the gaps NT has left open, and metastasizes?