比尔盖茨就是这样审查项目的
——选自《软件随想录:程序员部落酋长Joel谈软件》
【好消息】本书今天(12.10)互动有货,感兴趣的朋友可以 逛逛去
【续】http://turingbooks.iteye.com/admin/blogs/545266
1992 年 6 月 30 日 。
那个时候,微软还没有那么多官僚机构。今天,整个微软公司的管理层一共有 11 到 12 个层级吧。那时不是这样,我向 Mike Conte 报告,他向 Chris Graham 报告,后者再向 Pete Higgins 报告,后者再向 Mike Maples 报告,后者再向比尔·盖茨报告。从上到下,一共 6 层。我们曾经取笑通用汽车那样的公司,因为它们有 8 个管理层或者天知道是干什么的层。
在我的 BillG 审查会上,上面提到的那些人都到场了,每一个人还带着一大堆听众,我怀疑他们将表兄表妹、七大姑八大姨都带来了。另外,还有一个家伙是和我一个团队的,他在会议期间的所有工作,就是负责准确记录比尔爆了多少次粗口。比尔说 Fxxx 这个词的次数越少,就代表审查的结果越好。
比尔进来了。
我觉得很不正常,他几乎和普通人一模一样,也是两条腿、两只手、一个脑袋。
他的手里拿着我写的规格说明书。
他的手里拿着我写的规格说明书!
他坐下后,同一个我不认识的经理说了几句俏皮话,我没听懂。一些人倒是哈哈大笑。
比尔转向我。
我注意到,规格说明书的页边空白处写有评语。他看过第一页!
他看了我写的规格说明书,并且在空白处留下了几句评语!
因为我们是在大约 24 小时前交给他这份文件的,所以他一定是在昨天晚上看的。
他提问,我回答。那些问题很容易,但是后来我极尽所能,也想不起来他当时到底问了些什么问题。因为我一直目不转睛地看着他快速翻动那份说明书……
他在翻我写的规格说明书! [ 淡定,难道你是没见过世面的小姑娘? ]
……我还看到, 所有的空白处都写着评语。文件的每一页都是如此。天哪,他居然从头看到了尾,并且在空白处写了评语 。
他看了所有内容! [ 我的老天啊,怎么可能! ]
他的提问越来越难,也越来越细了。
那些问题似乎不太有条理。到这个时候,我已经把比尔当成自己人了。他真是不错!他看了我写的规格说明书!他想问我的,大概都跟那些页边上的评语有关吧!我要在错误提交系统中,把他的每一条评语都放进去,并且确保得到处理, 一定要快!
最后是一个很要命的问题。
“我不知道,诸位,”比尔说,“你们有人真地看过有关实施的所有细节吗?比如,所有这些日期和时间函数。 Excel 有那么多日期和时间函数, Basic 也要有相同的函数吗?能保证它们的行为都一样吗?”
“是的,”我说,“只有 1900 年的 1 月和 2 月除外。”
一片寂静。
那个粗口记录员和我的上司惊讶地对视了一眼。他们一定奇怪,我怎么会知道那个? 1 月和 2 月是什么鬼东西?
“行了。好,做得不错,”比尔说。他拿起那份写满评语的规格说明书。
…… 别啊!我要那个 ……
他离开了。
“ 4 次,”粗口记录员宣布,每个人听了都说:“哇,这是我记忆中的最低纪录。比尔随着他的年龄增长变稳重了。” 那一年,你们都知道,他 36 岁。
后来,我自己是这样想的:“比尔并不是 真地想来评论你写的东西,他只是想确定你对实现那些目标是不是有把握。他的标准做法是不断地提问,越问越难,直到你答不上来,承认自己不知道为止。然后, 他会冲着你吼‘为什么没有准备好’那个他准备好的最难的问题,如果你答出来了,没人知道会怎么样,因为还没有人答出来过。”
“如果提问题的是 Jim Manzi 呢?他会提什么问题?”有人问。“他大概会问你,‘什么是日期函数?’”
Jim Manzi 只知道 MBA (工商管理硕士)。 Lotus 在他的领导下,走了下坡路。
这是很重要的一点。比尔·盖茨对技术的了解令人惊叹。他理解可变数据类型、 COM 对象、 IDispatch 接口以及 Automation 与虚表有何不同,他明白这种不同可能会导致双重接口( dual interface )。因此,他担心日期函数并非心血来潮。如果他信任那个干事的人,他就不会干涉软件。但是,你不要糊弄他,哪怕是一分钟,因为他也是一个程序员,一个真正的、现实的程序员。
不懂编程的人管理软件公司,就好像不懂冲浪的人硬要去冲浪。
“没关系的!我请了非常棒的顾问,他们在岸上告诉我怎么做!”那些人会这样说。但话音未落,就会一头从冲浪板上摔下来,而且乐此不疲。这是那些 MBA 的标准说辞,他们从心底里相信,管理是一种通用职能。史蒂夫 ·鲍尔默 [ ① ] 会不会成为第二个约翰·斯考利 [ ② ] ?后者几乎让苹果公司破产,原因仅仅是,那时的苹果公司董事会相信,知道如何卖百事可乐就可以管理好一家计算机公司。迷信 MBA 的人们总是愿意相信,懂不懂公司业务没关系,只要懂管理就行。
多年以来,微软公司逐渐变得庞大,比尔·盖茨的精力被分散了,一些道德上有瑕疵的决策使公司的管理层不得不将大量的精力转向与美国政府抗争 [ ③ ] 。史蒂夫·鲍尔默接任 CEO[ ④ ] ,在理论上可以让比尔将更多的时间花在他最擅长的事情上,也就是管理软件开发组织。但是,这看上去好像无助于解决某些因为特殊原因引起的内部问题,比如像 11 层 的管理结构,永无止境的开会文化,一种要将所有可能的东西都创造出来而不管这样东西是什么的顽固倾向(想一想吧,他们决定做一个网络浏览器,而且还要免费 发布,结果在研发、打官司、公司名誉上面损失了几十亿美元),以及长期以来使得中层干部素质下降的匆忙、草率的招聘机制。(就像 Douglas Coupland 在 Microserfs [ ⑤ ] 一书中所说的:“他们在 1992 年雇用了 3100 人,其中并不都是人才。”)
好了,不说了。聚会要到其他地方开了。后来, Excel Basic 成了微软 Visual Basic 应用程序语言 Excel 版( Visual Basic for Applications for Microsoft Excel ),里面的注册商标标志 ™ 和权利保留符号 ® 多到我都不知道怎样才能将它们都放进去。我在 1994 年离开了微软,我觉得比尔已经彻底将我忘了。直到我在《华尔街日报》上看到一篇不长的比尔·盖茨专访,他在谈到招募优秀员工是多么困难时,顺带举了一个例子,说比如一个优秀的 Excel 软件经理,他们不会自动从树上长出来,诸如此类的话。
他会不会在说我?不会,可能是在说其他人吧。
都过去了。
【完】
[ ① ] 史蒂夫·鲍尔默,微软公司 CEO 。 1977 年,他从哈佛大学本科毕业,专业是数学和经济学。 1980 年,他从哈佛商学院退学,应比尔·盖茨的邀请,加入微软公司,担任微软的第一任商业事务经理( business manager )。他是微软历史上的第 24 名员工。
[ ② ] 约翰 •斯考利,一位美国专业经理人。 1977 年至 1983 年,他担任百事可乐公司的总裁。 1983 年 4 月,他应创始人斯蒂夫·乔布斯的邀请加入苹果公司,担任 CEO ,一直到 1993 年离职。 1985 年,他与乔布斯之间的矛盾升级,迫使后者离开苹果公司。此后,在他的领导下,苹果公司的业绩一落千丈,几乎破产。
[ ③ ] 1998 年,微软公司发布 Windows 98 操作系统,其中捆绑了 IE 浏览器。这遭到了美国司法部起诉,原因是“滥用垄断”( abusive monopoly )。 2000 年 4 月 3 日 ,微软公司一审败诉,被判一分为二。这个判决后来被联邦上诉法院部分推翻。 2001 年,微软公司与美国司法部达成和解。
[ ④ ] 鲍尔默 2000 年 1 月被任命为微软公司的 CEO 。 1998 年,他被任命为总裁,比尔·盖茨自己担任董事会主席和 CEO 。
[ ⑤ ] 该书由 HarperCollins 出版社在 1995 年出版,是一本书信体小说,讲述 Windows 95 发布前的计算机行业的状况。