人們在解決智力題的過程中往往有文不對題甚至是愚蠢的感覺,智力題的作用就是向你提出挑戰(zhàn)。對有的人來說,他們很樂意接受這種挑戰(zhàn)。就像爬山運動員,他們夢想登頂,就是因為喜歡面對山峰本身的挑戰(zhàn)。一個好的智力題解決者不僅有著解決難題所需要的智慧,更應(yīng)該主動面對智力題帶來的任何挑戰(zhàn)。
當軟件變得日益龐大,單個的人已經(jīng)很難只靠自己的力量完成整個軟件的制作。MS-DOS 1.0版本的絕大部分的工作——程序碼、編譯、找漏洞等,都是由蒂姆·佩特森完成的。隨著軟件產(chǎn)品變得越來越復雜,就有必要對兩個甚至更多的程序開發(fā)員進行分工。這種分工說起來容易做起來難。把不同的人寫的大塊程序合并起來并不是一件容易的事情,除非這些人在寫程序的每一步都能夠牢記這一點。因此必須在程序開發(fā)人員之間建立起一種有效的溝通,來保證他們都能夠按照相同的“正確”方法來工作。問題是程序開發(fā)員可不是一群“隨意”或者“善于”溝通的人,相反,這些人往往是喜歡在深夜單獨工作的“夜貓子”。這就產(chǎn)生了一個大問題。
查爾斯·西蒙尼是解決這個問題的人之一。西蒙尼是一位知名計算機科學家,但他選擇了去對理論持有懷疑態(tài)度的商界工作。在施樂公司帕洛阿爾托研究中心,西蒙尼寫出了第一個“所見即所得”的文字處理軟件。但施樂公司根本不熱衷于把公司實驗室研制的窗口和鼠標界面推向市場,西蒙尼對此非常惱火。有一次到西雅圖出差時,他在沒有預約的情況下順道拜訪了微軟公司。西蒙尼接受的面試相對比較容易,一位經(jīng)理(史蒂夫·鮑爾默)看了西蒙尼的簡歷后,認為比爾應(yīng)當接見這個人,但是比爾當時正在開會。當比爾開完會后西蒙尼已經(jīng)不得不去機場乘飛機回家了,蓋茨就陪他一起去了機場。他們的個性碰撞出了火花,西蒙尼很快接受了去微軟工作的邀請。
西蒙尼認為可以通過設(shè)立一個“主程序員”的新職位,來解決多個程序員之間的合作和溝通問題,這同中世紀手工藝人的做法有點相像。主程序員對程序的總體規(guī)劃和程序的編寫負全責,他手下還有一個助理團隊,這個助理團隊負責程序代碼的優(yōu)化和挑錯。
這是一個非常有用的主意,但由于程序員特有的個性,這種做法在他們中間也引起了一些麻煩:每個人都想成為主程序員。按照他們的說法,沒有一個人想要成為所謂的“程序奴隸”。由于在一個項目中只能有一個主程序員(這也正是問題的所在),因而大多數(shù)程序員都做著普通的編程工作。
但是由于微軟業(yè)務(wù)的迅速膨脹,主程序員的職位概念也很快走到了頭。軟件產(chǎn)品變得越來越大,一個主程序員已經(jīng)不能滿足項目的要求。還有一個更重要的問題是,主程序員不一定擅長軟件設(shè)計。隨著軟件越來越復雜,以消費者為對象的設(shè)計問題漸漸從純粹的代碼編寫中脫離出來。要讓同一個人來負責兩方面的工作,會讓人心有余而力不足。盡管可能有人多才多藝,是劇作家的同時還能是一個好的橄欖球后衛(wèi),但是,如果你雇用一個人的目的是讓他從事這項工作,而實際上又讓他從事另一項工作,你肯定會感到失望。
“主程序員”這個稱呼后來就不再怎么有人使用了。盡管微軟是一個令人驚奇的“優(yōu)秀”男人集中的地方,但是這個過度男權(quán)化的字眼還是讓人不舒服,于是他們改用了一個中性的稱呼——項目經(jīng)理。目前項目經(jīng)理這個工作崗位在軟件行業(yè)非常普及,但據(jù)我們所知,這個稱呼很可能是微軟辦公軟件Excel的開發(fā)者杰貝·布盧門撒爾的發(fā)明。