卡特勒的团队就操作系统的想法跟伍德聊了好几个小时,他们希望这是为个人电脑创造出的最先进的操作系统。"我就在一个新的沙箱里。"伍德说,"我们没有产品。我们没有日程进度。我们只有乐趣!"
他们也不赶时间。鲍尔默希望这个部落花六个月到九个月时间来理出技术思路,了解微机特性,最后能列出一张"可交付成果"清单。这样的节奏适合卡特勒,他想"一举成功"。许多程序员的工作方式是步进式的,通过多个版本来逐步完善一段代码。每个版本都为他们的想象和推理扮演着堡垒的角色。卡特勒则相反,他在开写之前,先在头脑里形成代码图,然后再高精确度地写下代码。"我不是那种尽可能快地写出代码,然后再一遍又一遍地修改的那种人。"他还说,"另一方面,我不怕重写任何东西。如果它的结果并不是我想要的,我不怕全部推翻,重新来写。"
对于编程,卡特勒是个实用主义者。他相信形式优先于功能,但他也不是完全屈从于结构。他总是有正确的开始,而结束时,他的代码也只有极少的错误。通常,他先为团队写出最抽象的代码。他把一个操作系统预先分为几十组代码,每组代码都附着详细的要求。编写代码需求本身就是一项艺术。工程师们早就从他们的职业经验里得知,一个糟糕的代码需求会导致整个项目的死亡,而一个好的代码需求则是一座灯塔,当程序员迷失方向时,灯塔会帮助他们回到正确的航线上。然而代码需求不仅仅对它的创作者有用,它还能帮助所有参与开发程序的人。每段代码共生共存,整个程序就好比一个精致的生态系统,如果一段代码有问题,甚至是和其他代码没有直接联系的时候,也可能会摧毁整个程序。
依赖代码需求有两个缺陷。写出一份代码需求就要好几个月。一旦编程开始,代码需求也需要不停地修改更新,否则它就会因过时而不起作用。过时的代码需求可能会起到误导的作用,会导致混乱。只要代码需求在有效期内,就需要专人来维护。这个工作由卡特勒在DEC实验室的首席程序员卢皮亚佐利(LouPerazzdi)担当。
皮亚佐利是个高高瘦瘦的男人,很少挺立站直或提高他的音量。"戴夫是位实干家,"他说,"我喜欢给实干家工作。"皮亚佐利除了是位天才程序员,还是一位程序员教练。他的管理哲学很简单:让你的人们快乐。他认为他的程序员们迟早会做对的事情。他一直是位重实际的人。如果有人因疲劳过度或生气而不能继续工作,皮亚佐利会询问什么能缓解他的烦恼。有时候,程序员会给一个直白的答案,会要求要一个大点儿的显示器或是一个装数据的大硬盘。皮亚佐利有一笔基金,通常可以满足这些要求。也有时候,程序员的心情太过抑郁,而疗方也比较贵重。曾经有个程序员想要一个月的休假去意大利游玩,并在哥斯达黎加(CostaRica)的海岸潜水。皮亚佐利通常会这么解决这样的要求:你做这个,做这个,再做这个,做完后,就给你安排旅行。善解人意的皮亚佐利是最能衬托卡特勒这朵红花的绿叶。"如果说戴夫是盐,卢就是糖。"伍德这样评价。当人们害怕和卡特勒讲话的时候,他们会把他们的苦恼和烦闷诉说给皮亚佐利听。当卡特勒非常生气,忍不住要惩罚一个人的时候,他先向皮亚佐利发火,皮亚佐利再依情况,或是平静地把坏消息传达给当事人,或是不告诉任何人。许多部落成员对皮亚佐利都有极大的感激之情。"卢维护着一批自大、脾气糟糕的人,如果没有他,这帮人说不定会自相残杀。"其中一个成员说,"当有些人因为受不了卡特勒而提出辞职的时候,他能把人留住。"然而,伍德却抱怨说卡特勒和皮亚佐利用的是红脸白脸的伎俩。"麻烦就是,戴夫太野蛮了,卢又太好了。"他曾经写道。
其实,也没什么太多需要做的。"卢真的比我随和得多,"卡特勒承认,"他会这么说'这里出现了一个问题,但我不准备做任何事情去解决它,因为它自己会修理好。最终,每个人都能发现错误的地方。所以我才不会花这份心力。'"
本文摘自《微软创建NT和未来的夺命狂奔》
比尔盖茨和他的微软公司之所以能够取得巨大的成功,最重要的原因就是他们能够展望未来。微软既不满足于在应用软件方面不错的市场份额,也不满足于在关键的操作系统业务上依靠DOS和Windows获得的显著优势,他们一直在展望未来。而现在微软的未来被称为Windows NT。作为最先进的软件创新,NT也许会在全世界直到下个世纪的范围内重新定义计算的标准。NT赋予廉价的个人计算机的能力堪比庞大的大型机而且并没有牺牲其内在的灵活性和个人计算机的优点。