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