比爾蓋茨的審查

2021-04-20 02:29:03 字數 4243 閱讀 5731

簡介

joel  spolsky  技術部落格中的超級牛人,原來是微軟excel專案中的乙個程式經理,本文回憶了比爾.蓋茨第一次審查他的文件的故事(當小牛遇到大牛),非常有趣,

excel

曾自帶了乙個糟糕透了的開發語言,當時這個語言還沒有名字。我們稱其為"excel macros".它沒有變數、區域性變數、子函式這些概念,幾乎完全不可用。雖然它有是還一些高階功能,比如「goto」。

­它存在的唯一理由是:它看上去要比lotus的巨集要合理一些。lotus的巨集不過就是記錄了一組鍵盤敲擊的順序,用來在單元格中輸入長字串。

­2023年6月17日,我開始為微軟

的excel團隊工作。我的頭銜是「程式經理」(相當於寫需求分析的),我的任務是為excel macro 找到乙個合適的改進方案。有人建議我可以用basic來做這個方案。

­basic?!

­我花了些時間和不同的開發

團隊商量。那時候visual basic 1.0 才剛剛推出,它簡直是酷斃了!但在微軟

內部當時還有另外乙個面臨失敗的專案"macroman".  他們試圖開發另一種物件導向的basic。這個團隊好不容易才被告知他們的產品終於有了乙個客戶,就是我們excel組. 當時他們的市場經理是bob wyman,是的,就是那個bob wyman(是誰?很有名嗎)。可憐的bob wyan,我是唯一乙個可以讓他發揮推銷才能的人。

­如我上述,macroman快失敗了,雖然它有一些支持者,但最後還是面臨被停掉。excel

basic的規格說明,它真是他媽的工程浩大,我想完成時大概有500頁吧。(「瀑布模型?」(傳統軟體開發模式),也許你正在竊笑。是的,但是請你閉嘴)

­那時我們常常請比爾

.蓋茨作些審查。基本上每個重要的功能比爾都得過一遍。我被告知把我的功能說明送到他辦公室去,以便讓他在審查會前做好準備。這個說明用了整整500頁列印紙。

­我把說明打出來送到了他的辦公室後,正好當天還有一點時間,於是我試圖評估一下basic的日期和時間函式是否能處理所有excel

的功能。

在大多數現代程式開發

環境中,日期被存為實數。整數部分是從過去某天算起的天數。比如說excel

中,以2023年1月1日為1算起,今天2023年6月16日就是38884。

­我開始把visual basic 中的日期和時間函式和excel

中的都過一遍,看看是不是都能對應。我注意到visual basic文件中有乙個很奇怪的宣告:basic 使用2023年12月31日而非2023年1月1日作為日期的原點,但不知什麼原因,excel中今天的日期值居然和basic的一摸一樣。

­出問題了!

­我跑到excel

資深程式設計師ed fries的面前.我想他應該知道為什麼。

「哦」,他告訴我:「看看2023年2月28日」

「59」,我說

「現在再看3月1號」

「61」。

「60**去了」ed問道

「2月29?1900是閏年!它可以被4整除」

「很好的猜想,但不對」,ed邊說邊走,留下我乙個人在那裡深思。

我又做了一些研究。發現可被100整除的年份不一定是閏年,除非它能被400整除。

原來1900不是閏年。

「找到了,這是excel

的bug」.我歡呼起來。

「錯」,ed說,"我們這樣做是為了能匯入lotus 123(另外一種電子**)的資料"。

「那它是lotus 123的bug?」

"正確,但很有可能是故意的。lotus必須適應640k的記憶體。但當時並沒有那麼多的記憶體,如果你忽略1900,你就可以根據一年的尾數是不是00來判斷那年是不是閏年。這樣做非常簡捷方便。lotus的小夥子們可能認為歷史

上兩個月誤差1天並不是很嚴重。而basic團隊看上去想給這兩個月擦屁股,因此他們又把時間原點調回來了"

­「啊!」我恍然大悟,然後開始繼續研究為什麼那裡還有乙個設定1904為時間原點的核取方塊。 ­比爾

做review的那天來臨了。

­那是2023年6月30日。

­那時候微軟

還沒有現在這麼官僚化。我對mike conte,mike conte對chris graham,chris graham對pet higgins,pet higgins對mike maples,mie maples最終對比爾.自底向上大約有6級,而非現在的11級或12級。 我們和使用8層管理結構通用汽車一樣,是個充滿樂趣的公司。

在比爾的review中,每一層負責報告的人都出席了,順便帶來他們的堂兄堂弟,表姊表妹,大姨小姑,還有乙個專門記錄比爾會說多少個「靠!」的人。當然「靠!」越少,結果就越好。 ­比爾

進來了。

­他居然是兩手兩腳,乙個腦袋.....看上去還是象人類。

­他手裡拿著我的說明。

­他手裡拿著我的說明!

­他坐下來和旁邊的人開了個對我而言毫無意義的玩笑,有幾個人在竊笑。 ­比爾

轉向我了。

­我注意到在我的說明空白處寫著一些註解。他讀過第一頁!(激動)

­他已經讀過第一頁並寫下了他的筆記!(更激動)

­因為從提交說明到他手上不過一天時間,他一定在昨晚之前就讀過。

­我們開始一問一答。問題相當簡單,但現在我已經記不清了,因為當時我一直在注意著他翻我的文稿...

­他在翻我的文稿!!!(冷靜,冷靜,你可不是小姑娘了)

­...我看到每頁空白都寫滿了註解,他媽的,他居然全部讀完了,還寫了註解。

­他居然全部讀完了!

­問題開始變得越來越難,越來越細。

­提問有些隨機。過去我常常認為比爾

是我的大爺,事實上他是個好小伙!他讀了我的說明,他的問題可能正記在說明的空白處。以後我一定得把這些問題都在bug跟蹤系統中標記出來。

­終於最難的問題來了。

­「我不知道,小夥子們」,比爾

說,「有人研究過這個細節沒有,比如說這些日期和時間函式。excel

有很多日期時間函式,在basic中是不是能一一對應,他們工作方式是不是都一樣的?」

­「當然」,我說,「除了2023年的1月和2月」。

­沉默。

­「靠」的記錄人員和我老闆驚訝的對視一眼。這傢伙怎麼知道的?1月,2月是什麼東西?

­「ok,很好」,比爾

拿起我的說明。

­(....等等!我想知道......)

­他們離開了。

­「4個」,「靠!」的記錄者宣布,"這是我有生以來記得最少的一次。比爾

步入中年了"。如你所知,比爾當年36。

­後來我對這次審查終於有了乙個解釋,"比爾

並沒想真的想要審查我的說明文件,他只是想確定一切是否在我控制之中。他的標準方式是問得越來越難,越來越難,直到你承認你不知道,然後,他就會提醒你你尚未準備好。如果我答起了他最刁鑽的問題,沒有人會確定會發生什麼,因為這以前就沒發生過。"

­「如果是jim manzi,他會怎麼表現?」有人問道,「manzi會反問,『什麼是日期函式???』」(jim manzi就是把lotus帶垮的mba)

­正確。 ­比爾

.蓋茨是個令人吃驚的技術狂熱者,他理解variants,com物件,和idispatch,知道為什麼自動化和虛函式表不一樣,也知道這個區別會導致雙介面。他擔心日期函式,如果不是他信任的人在開發,他會難以入眠。你可以對此嗤之以鼻,但他確實是乙個程式設計師,乙個真實的,地地道道的程式設計師。不是程式設計師的人去運作乙個軟體

公司就像不會滑板的人跑去衝浪一樣。「得了,我有非常棒的顧問在岸邊指導我」,他們會一邊說一邊一次次從滑板上掉下去。那些標準mba就是相信管理是通用函式。鮑爾默會成為另外乙個john sculley嗎?john sculley曾差點把蘋果公司搞垮,只因為董事會相信他賣百事的經歷會對運作計算機公司有所幫助。mba的迷信者通常相信這一點:你可以讓組織做你完全不懂的事。

­過去數年,微軟

變大了,比爾的管理範圍過度擴充套件,他不得不投入更多精力去和us**打交道。鮑爾默坐上了理論上的ceo這個位置,這可以讓比爾花更多的時間做他最擅長的--領導軟體開發,但這並不能克服11級管理層帶來的問題。它導致無休無止的會議,頑固地不管如何也要建立每種產品的傾向,(微軟在研發、官司、公司聲譽上損失了多少億美元,只因為決定開發乙個web瀏覽器,還讓它免費。),還有就是過濫的招聘讓微軟正逐漸失去中層人員中的精英。(douglas coupland在microserf*中寫道:」在1992一年中他們僱傭3100人,你知道並非所有人都是珍珠「)

­對了,派對已經搬地方了。excel

,想來比爾已經完全忘記了我。直到有一天我讀到華爾街**對比爾的一次採訪,他提到在過去,象招募乙個excel的程式經理的事情是多麼困難,他們並非象蘋果長在樹上那樣垂手可得。

­他是談我嗎?或許應該是別人了吧。

比爾蓋茨是這樣審查專案的 1

選自 軟體隨想錄 程式設計師部落酋長joel談軟體 2006 年 6月 16 日 星期五 早先,excel 1 有一種沒有名字的很蹩腳的程式語言。我們管它叫做 excel 巨集語言 excel macros 這是一種功能很弱的程式語言,它沒有變數 你不得不將值存在電子 的單元格中 沒有區域性變數 l...

比爾蓋茨是這樣審查專案的 1

選自 軟體隨想錄 程式設計師部落酋長joel談軟體 2006 年 6月 16 日 星期五 早先,excel 1 有一種沒有名字的很蹩腳的程式語言。我們管它叫做 excel 巨集語言 excel macros 這是一種功能很弱的程式語言,它沒有變數 你不得不將值存在電子 的單元格中 沒有區域性變數 l...

比爾 蓋茨名言

比爾 蓋茨名言 1 生活是不公平的,要去適應它 2 這世界在你有成就前不會在意你的自尊 3 高中畢業別指望擁有太多 4 在有老闆前別認為你老闆嚴厲,而老闆是沒有任期限制的 5 烙牛肉餅不會有損你的尊嚴 6 你的困境不是你父母的過錯 7 你的父母一直為你付帳單才變成現在的乏味 8 你的學校可能不分優等...