卡特勒的團隊就操作系統的想法跟伍德聊了好幾個小時,他們希望這是為個人電腦創造出的最先進的操作系統。"我就在一個新的沙箱裡。"伍德說,"我們沒有產品。我們沒有日程進度。我們只有樂趣!"
他們也不趕時間。鮑爾默希望這個部落花六個月到九個月時間來理出技術思路,了解微機特性,最後能列出一張"可交付成果"清單。這樣的節奏適合卡特勒,他想"一舉成功"。許多程序員的工作方式是步進式的,通過多個版本來逐步完善一段代碼。每個版本都為他們的想象和推理扮演著堡壘的角色。卡特勒則相反,他在開寫之前,先在頭腦裡形成代碼圖,然後再高精確度地寫下代碼。"我不是那種盡可能快地寫出代碼,然後再一遍又一遍地修改的那種人。"他還說,"另一方面,我不怕重寫任何東西。如果它的結果並不是我想要的,我不怕全部推翻,重新來寫。"
對於編程,卡特勒是個實用主義者。他相信形式優先於功能,但他也不是完全屈從於結構。他總是有正確的開始,而結束時,他的代碼也只有極少的錯誤。通常,他先為團隊寫出最抽象的代碼。他把一個操作系統預先分為幾十組代碼,每組代碼都附著詳細的要求。編寫代碼需求本身就是一項藝術。工程師們早就從他們的職業經驗裡得知,一個糟糕的代碼需求會導致整個項目的死亡,而一個好的代碼需求則是一座燈塔,當程序員迷失方向時,燈塔會幫助他們回到正確的航線上。然而代碼需求不僅僅對它的創作者有用,它還能幫助所有參與開發程序的人。每段代碼共生共存,整個程序就好比一個精致的生態系統,如果一段代碼有問題,甚至是和其他代碼沒有直接聯系的時候,也可能會摧毀整個程序。
依賴代碼需求有兩個缺陷。寫出一份代碼需求就要好幾個月。一旦編程開始,代碼需求也需要不停地修改更新,否則它就會因過時而不起作用。過時的代碼需求可能會起到誤導的作用,會導致混亂。只要代碼需求在有效期内,就需要專人來維護。這個工作由卡特勒在DEC實驗室的首席程序員盧皮亞佐利(LouPerazzdi)擔當。
皮亞佐利是個高高瘦瘦的男人,很少挺立站直或提高他的音量。"戴夫是位實幹家,"他說,"我喜歡給實幹家工作。"皮亞佐利除了是位天才程序員,還是一位程序員教練。他的管理哲學很簡單:讓你的人們快樂。他認為他的程序員們遲早會做對的事情。他一直是位重實際的人。如果有人因疲勞過度或生氣而不能繼續工作,皮亞佐利會詢問什麼能緩解他的煩惱。有時候,程序員會給一個直白的答案,會要求要一個大點兒的顯示器或是一個裝數據的大硬盤。皮亞佐利有一筆基金,通常可以滿足這些要求。也有時候,程序員的心情太過抑郁,而療方也比較貴重。曾經有個程序員想要一個月的休假去意大利遊玩,並在哥斯達黎加(CostaRica)的海岸潛水。皮亞佐利通常會這麼解決這樣的要求:你做這個,做這個,再做這個,做完後,就給你安排旅行。善解人意的皮亞佐利是最能襯托卡特勒這朵紅花的綠葉。"如果說戴夫是鹽,盧就是糖。"伍德這樣評價。當人們害怕和卡特勒講話的時候,他們會把他們的苦惱和煩悶訴說給皮亞佐利聽。當卡特勒非常生氣,忍不住要懲罰一個人的時候,他先向皮亞佐利發火,皮亞佐利再依情況,或是平靜地把壞消息傳達給當事人,或是不告訴任何人。許多部落成員對皮亞佐利都有極大的感激之情。"盧維護著一批自大、脾氣糟糕的人,如果沒有他,這幫人說不定會自相殘殺。"其中一個成員說,"當有些人因為受不了卡特勒而提出辭職的時候,他能把人留住。"然而,伍德卻抱怨說卡特勒和皮亞佐利用的是紅臉白臉的伎倆。"麻煩就是,戴夫太野蠻了,盧又太好了。"他曾經寫道。
其實,也沒什麼太多需要做的。"盧真的比我隨和得多,"卡特勒承認,"他會這麼說'這裡出現了一個問題,但我不準備做任何事情去解決它,因為它自己會修理好。最終,每個人都能發現錯誤的地方。所以我才不會花這份心力。'"
本文摘自《微軟創建NT和未來的奪命狂奔》
比爾蓋茨和他的微軟公司之所以能夠取得巨大的成功,最重要的原因就是他們能夠展望未來。微軟既不滿足於在應用軟件方面不錯的市場份額,也不滿足於在關鍵的操作系統業務上依靠DOS和Windows獲得的顯著優勢,他們一直在展望未來。而現在微軟的未來被稱為Windows NT。作為最先進的軟件創新,NT也許會在全世界直到下個世紀的範圍内重新定義計算的標準。NT賦予廉價的個人計算機的能力堪比龐大的大型機而且並沒有犧牲其内在的靈活性和個人計算機的優點。