系列专题:《微软创建NT和未来的夺命狂奔:观止》
伍德在微软的第一个项目就是Windows的原始版,这个项目让伍德引人注目起来,因为盖茨认为Windows是微软能从IBM独立出来的主要出路。接着伍德接手了另一个备受瞩目的艰难的任务——OS/2,IBM把它当作是DOS的接班产品而大力支持。1988年11月,他结束了OS/2的开发工作,他认为做个项目的一年是“有趣而荒谬”的。一年中,他还在IBM的英国和佛罗里达州波卡拉顿市的实验室里度过了整整12个星期。这一年的经历使伍德对OS/2彻底失望,OS/2能同时运行多种程序(DOS则不可能),但只要任何应用程序出现问题,整个OS/2就不能运转了。伍德像丢“一包垃圾”一样放弃了OS/2,还认为这是“好设计不可能出自委员会(译者注:“委员会设计”指很多人同时进行设计,却没有统一的看法)”的最好例证。 疏离了他的OS/2同事,伍德需要另找地方着陆。因为他不能容忍与“无能的人”共事,自然而然他的早期前途看起来比较暗淡。他发现计算机这块新领域的时候,他既没觉得它像个家,也没觉得它意味着成功。而现在,计算机对他来说,意味着家,也意味着成功的所在。他在微软的经历既可以说是不同寻常的,又可说是十分典型的。像这样一个软件明星,对卡特勒的团队来说,肯定是锦上添花。他是一流的程序员,工作效率极高,精力充沛,他可以让自己发挥得很好,也能代表微软的形象。盖茨心里乐哉乐哉。 伍德为加入NT小组而激动万分,他在那儿发现了“一些聪明人”。但他也感觉怪怪的,因为卡特勒的部落想依靠他来帮助他们来适应他们的新家,可是“连我自己也不是很擅长微软方式”。 卡特勒的团队就操作系统的想法跟伍德聊了好几个小时,他们希望这是为个人电脑创造出的最先进的操作系统。“我就在一个新的沙箱里。”伍德说,“我们没有产品。我们没有日程进度。我们只有乐趣!”

他们也不赶时间。鲍尔默希望这个部落花六个月到九个月时间来理出技术思路,了解微机特性,最后能列出一张“可交付成果”清单。这样的节奏适合卡特勒,他想“一举成功”。许多程序员的工作方式是步进式的,通过多个版本来逐步完善一段代码。每个版本都为他们的想象和推理扮演着堡垒的角色。卡特勒则相反,他在开写之前,先在头脑里形成代码图,然后再高精确度地写下代码。“我不是那种尽可能快地写出代码,然后再一遍又一遍地修改的那种人。”他还说,“另一方面,我不怕重写任何东西。如果它的结果并不是我想要的,我不怕全部推翻,重新来写。” 对于编程,卡特勒是个实用主义者。他相信形式优先于功能,但他也不是完全屈从于结构。他总是有正确的开始,而结束时,他的代码也只有极少的错误。通常,他先为团队写出最抽象的代码。他把一个操作系统预先分为几十组代码,每组代码都附着详细的要求。编写代码需求本身就是一项艺术。工程师们早就从他们的职业经验里得知,一个糟糕的代码需求会导致整个项目的死亡,而一个好的代码需求则是一座灯塔,当程序员迷失方向时,灯塔会帮助他们回到正确的航线上。然而代码需求不仅仅对它的创作者有用,它还能帮助所有参与开发程序的人。每段代码共生共存,整个程序就好比一个精致的生态系统,如果一段代码有问题,甚至是和其他代码没有直接联系的时候,也可能会摧毁整个程序。