WattsGrady Booch 曾采访过卡内基· 梅隆大学软件工程研究所(SEI) 的资深研究员Watts Humphrey,本篇文章来源于采访的文字记录。Humphrey 谈到他在IBM担任程序总监的工作经历,包括如何处理邮件(在20世纪60年代这也是一个难题)、如何说服老板、如何在整个IBM程序部门推行项目计划概念。
升任IBM程序总监 大约在1965年的秋天,IBM刚开始装载Model 50的时候,有一天,研究组组长Gardner Tucker对我说,“Watts,请给我写一份关于你认为应该如何管理编程的白皮书。”我说:“好啊。”于是我就洋洋洒洒地写了一份长篇大论。我当时的确非常关心编程管理。和商业活动完全不同,我们需要制订计划以完成各种工作。我们曾制订了TSS系统计划(即分时系统),但是由于市场的压力,我们没有及时修订计划,这是我的失败。市场压力是实实在在的,但是我也可以选择顶住压力, 制订一个更好的计划,而我们当时没有这样做。这真是我的失败。不管怎样,我给GardnerTucker写好了这篇文章。不久之后,我就接到了Learson的电话,提拔我为程序总监,这时才得知,原来他们解雇了之前的总监。 Booch:不祥的兆头。 Humphrey:嗯,事实上那家伙被解雇的原因和管理毫无关系,而是因为他和他的秘书鬼混。我认识他,他人不错,住在Chappaqua,有10个孩子,就这样他还是要和秘书鬼混。当时IBM有一个“门户开放政策”,员工可以给Tom Watson写信,公司里的任何人都可以直接联系Tom Watson或者董事长。现在应该不是这样了,但当时肯定可以。那个年轻的生产经理 给Tom Watson写信说:“我妻子是程序总监的秘书,她和总监鬼混,这事让我没法跟你的主管们竞争了,我希望你能摆平这件事。”于是Tom Watson做了一个门户开放的调查,发现生产经理说的是真话,所以就解雇了程序总监。程序总监走的时候把秘书也带走了,接着他和老婆离了婚,又和秘书结了婚,干别的事情去了。我不能透露他的名字。但是我还记得去看过他的前妻,挺凄惨的。我就在这种情况下得到了那份工作,我敢确定那是因为我写的那份白皮书。 Booch:你还记得白皮书里都写了些什么吗?里面有什么建议或者预测? Humphrey:哦,我记得我写了两个关键需求,一个用于计划的制订,一个用来管理评论和全套程序的规则的结构化流程。由于当时对质量的认识还不够,白皮书中没有列出质量这项内容,但是我确实让计划周期进行下去了,该做的事也都在做,所以我被招来了。这些事的顺序我记不清楚了,不过一开始是会见Vin Learson。我在位于White Plains的程序总监办公室办公,配有两个秘书和一个助理,他们一天到晚都在整理我的邮件。 Booch:那时肯定是手写信件了。 Humphrey:是手写信件。他们每天都把信件做一个总结。每天的信件总结就是用一小段话记录每封邮件的内容,整个总结大约有3~4页纸。我每天收到的信件堆起来足足有三英尺高。他们告诉我前任总监每天晚上都把所有的信件带回家,他所有的时间都用来干这个。我说:“那好,我们来这样做。我只看我的领导、领导的领导、一直到Tom Watson写来的信。小组中其他人可以直接给我写信,我不看副本。如果有直接写给我的信,就立即给我,如果是别人信件的副本,我只要看看总结就行了。” 这样一来我突然没有任何信件了。于是我就有时间来处理事情和解决问题了。我的意思是,前任总监被信件困住了。我没有时间应付这些东西,而且他们大多数没什么意思。很多人写信问我:“我下一步该怎么办?”我就说:“如果你确实遇到了这样的问题,就给我打电话。”我偶尔也会接到这样的电话:“这个我该怎么做或那个要怎么做?”我回答说:“弄清下一步该做什么是你自己的工作, 如果我们需要知道, 你弄清后就告诉我们,不然就告诉你们领导。我不会告诉你该怎么做。” Learson 的委任会议 Humphrey:基本上我很快就摆脱了那种循环。我记得一开始是Learson把我叫去的。那可能是第二周吧,因为我记得第一周的第一天我去参观了几个实验室。我看到实验室的人首先就问:“你们的责任是什么?”他们说不知道。老实说他们知道要提供一些东西,他们列出了这些东西的清单和完成日期, 很卖力地做着。但是那些基本上都是上面的规定,是按要求做的。市场通告决定着他们所做的每一件事,没有人对应该做什么有任何计划。我对他们说:“假设你们要按正确的方式来做这个工作,你们会怎么做?”他们给我描述了一个逻辑性很强的做法,如果有计划、有要求、有时间表的话应该如何去完成所有的步骤。我就问:“那你们现在怎么不这样做呢?”他们说:“我们没有时间。”我说:“这简直是疯了,难道你们没有时间按正确的方式做,却有更多的时间按错误的方式做吗?” 他们说:“ 对,是这样的。”我说:“ 你们知道,这不合情理。”我离开之后又去了几个大实验室,其中一个是在San Jose,都有同样的经历。回来的时候我一直在想应该怎么办。大约就在那几天我接到了Vin Learson的电话,他要在我Poughkeepsie的办公室开会(我在White Plains和Poughkeepsie各有一个办公室)。Learson召集我和我所有的高级管理人员早上8点在纽约Poughkeepsie办公室开会。于是我就去了。Learson是乘直升飞机来的,而我是开车,路上堵了一段时间,迟到了大约十分钟,我到的时候他正在滔滔不绝地发表长篇大论。屋里大约坐着30来个经理人,他正在喊着“你们在置公司于死地,你们会把业务给毁了”之类的话。我进去坐下看着这一切,慢慢了解到原来是因为程序计划已经失败三次了。 他们正在做硬件, 而软件什么时候能交付,没有人想过,也没人相信。市场一片混乱。顾客很失望,不想再买任何东西了,整个市场死气沉沉。不过有趣的是我们当时正在卖TSS Model 67,因为人们相信它。就这样,Learson捶着桌子发表完了他的长篇大论。Learson人长得高大,很有魄力,直觉和判断力都很强,而且很聪明,但他还是捶着桌子说:“该死的,我必须在两周之内拿到计划表。” 他环顾四周,所有人都把目光投向了我。天啊,我刚上任还不到一两周就要制订这个计划。我看着他说:“Vin,如果你想要的话我今天就可以给你一份计划表,但是那样的话明天我又可以给你一份不同的计划表。如果你想要一份可行的计划表,请给我60天时间。”他在屋里走来走去,逐一询问那些经理人:“你觉得怎么样?”每个人都回答说:“是的,要60天。”于是他转过来对我说:“好吧,该死的。”然后又捶了一下桌子冲出门外。显然,我成了这次会议的挽救者。 Booch:很厉害,你说的那些话没有人敢说。 Humphrey:之前也从来没有人说过。我能那么做是因为我了解Vin,他的要求是不可能达到的。我的意思是说,有些实验室是在法国和英国,我不可能在两个星期之内跟所有人交流。制订计划表是一项艰难的工作,所以突然之间我从一个无名小卒变成了英雄,而且我确定Learson是故意这么做的。 他想把我推出去,因为我是“敌人”。还记得TSS Model 67是360的敌人吧。我那时负责分时组,正是360的竞争者。所以我是以敌人的身份被安排来负责360程序的,Learson想把我塑造成一个英雄,并且他知道应该怎么做。我在担任系统和应用工程总监时,Learson常常要我去他的办公室开会,我不得不去开那些会,完全不知道他们在说什么,也不知道为什么要我去那儿。 等会议结束那些家伙离开之后,Learson看着我说:“你说他们想干什么?”我说:“我不知道,他们说想这样。”然后他说:“那不是他们想要的,他们想要的是这个。”他能看破所有这些东西,很了不起。我记得有一次他对我们大发脾气,起因是我们想招系统工程师(我当时既是系统工程总监,又是程序总监)。我去向他解释为什么需要招人,而每次他都会用事实和数据来作回应——我不知道他从哪儿弄来的这些东西——但是他显然比我知道得多,所以他总是能赢。后来我和同事说起这事,他们就去查访。一天,有个员工对我说:“我知道是怎么回事了。有个家伙在市场组的地下办公室工作,而他以前是给Learson办事的,是Learson的老朋友。所有记录和数据他都了如指掌。我估计Learson的信息是从他那儿弄到的。” Booch:他是你的眼线。 Humphr ey: 是的。我说:“噢,好,那我们去找找他。”于是我们给他打电话,然后过去和他聊了聊。我跟他提了我们的建议和理由,把整个事情也都跟他讨论了,并阐释了我们的一些想法,他表示赞成。他觉得那些想法很有道理。我说:“那太好了,谢谢你。”等到下次去见Learson的时候我说:“顺便说一下,我跟某某人聊了聊,他说如何如何。”Learson只是笑了笑,讨论结束时他就接受了我的意见。所以,他真的很精明。他只是想要知道我能不能做到这些,而事实证明我可以做到。他确实是个了不起的人。 所以, 作为程序总监,我发现员工没有按正确的方式来做事的原因在于他们别无选择。因此问题不在他们,而在于我。他们没有按正确的方式做事的原因是他们编程只需做两件事:写代码和测试。对吧? Booch:对。 仅仅是写代码和测试 Humphrey:这就是他们全部的工作。关于要做的东西他们可以列出很长的清单, 但对于交付产品来说, 最重要的只有两点, 而与他们相关的只有一个问题, 那就是交付产品。这样造成的后果是, 如果我让他们仅仅写代码和测试,他们一天到晚就只能做这两件事,没有时间做别的了。所以我意识到问题的关键在于没有一套合适的要求来规定他们应当如何交付产品。于是我找到Frank Cary,他是集团总裁,管理所有开发项目。我说:“Frank,这就是我们的问题所在, 如果要解决它就必须制订计划。现在我将解决这些问题, 并且保证在重新宣布任务的时候对每件事都有计划。我想公开所有的计划,并通知营销组织60天内我们会制订新的计划。”他同意了。 我就照我说的去做了。为此,我向每人发了一份电报。现在,工程师们可以按照他们的想法来编写和测试程序。但是我们不打算发布任何信息,也不打算交付任何东西。我们不会做任何事,不会做任何程序,甚至不做任何投资,除非我桌上有一份计划。他们必须在60天内回到我这儿,跟我一起审核所有重要的计划。我不可能看完所有的细节,但是每一份重要的计划他们都必须亲自和我一起审核,我想保证每份计划上都有将为之工作的每个人的签名。我不想他们为不同意这些计划的人制订计划。 就这样我发布了这个指令,我告诉你,它的影响之大,绝对是世界性的。人们开始制订计划了。我们需要去请一些制订生产计划的人来跟我们的程序员座谈,以展示计划是怎么回事。这些人将成为程序员的计划顾问。生产部门向程序员讲解计划,这很有用。然后我们就有了很好的计划,他们把计划拿给我审查,我边看边说:“首先我要的是一份可行的计划。”这时我突然改变了做法,因为之前这些事我们需要逼着他们来做。我跟他们讲:“你看,之前的总监被解雇了(他们不知道内情,但我知道),我可不想被解雇。你们没有完成计划可能只是尴尬而已,但是我可就要玩完了。我不想被炒掉,所以你们必须制订可行的计划。”于是他们就开始检查计划,我在旁边督促,让他们展示计划是怎样可行的。比如有没有足够的资源?时间安排是怎样的?我没有缩减一份计划,甚至还扩充了一些,并且规定每份计划有90天的缓冲。 Booch:那这是集团有史以来所做的最认真的一次计划,可以这么说吗?这对他们来说是从未有过的。 实现计划 Humphrey:他们从来没有制订过计划。他们根本不知道计划是什么东西。我们开了一个课程。我把AI Pietrasonta从联邦系统分部请来为我们讲课。我记不清是为期一周还是两周的计划课程了。在接下来的几年里,我们对1000名经理人进行了计划培训。包括来自销售部门和其他部门的所有人都必须接受培训。那个课程很好,AI讲得相当不错。几年前他去世了,我有一本书是献给他的,不知道你认不认识他。不管怎样,我在每堂课上都会讲这些,周五的下午我还要讲。这样一来就能引起每个人的重视,所以大家制订了这些计划而且都做到了。两年半以来,我们从来没有逾期过一天,不可思议吧? Booch:真是太棒了。那些90天缓冲后来进行得怎么样? Humphrey:这个我要说说。起初,Frank Cary同意我停下手中的一切事务来执行公开计划表这件事的时候,他对我说:“你必须向获得百分奖的营销部门讲清楚我们到底在做什么。我们一共有4个百分奖团队,他们都是公司里最好的销售人员。他们要开一个3000~4000人参加的团体会议,你去给他们做个演讲,告诉他们我们在做什么。”于是我把遇到的性能、计划等各方面的问题以及解决这些问题的方法都列了出来,一共大约准备了1个小时的演讲内容。然后我就去给这些百分奖团队开会,演讲道:“我们公开了所有的计划表,并且将在60天内制订新的计划,下面是我们正在做的事情。”我就这样和他们讲,向他们描述执行上的问题,以及用于度量性能的度量系统和其他事情。我讲得挺不错,一共讲了四次。后来有一些销售人员来投奔我,MikeArmstrong就是其中之一。你知道MikeArmstrong吗? Booch:名字挺熟,但是我真的不了解他,给我讲讲吧。 Humphrey:他是我住在康涅狄格州Darien时的邻居,IBM高管之一。在一次重组中,有人升职了,他却没有,于是他离开了IBM,在休斯飞机公司(Hughes Aircraft)担任了一段时间的主管,然后又去了老AT&T做CEO。他管理着那家公司,当中还遇到过一些问题,但是不管怎样,他是个好人,也是个不错的老板。他后来好像在技术人员方面遇到了麻烦,但是当我在IBM遇到他的时候他告诉我他做过普通的销售,并且说:“我们第一次有了可以销售的东西。”我在百分奖团队的讲话完全改变了销售队伍。他们说:“现在我们终于有了可以相信的东西。”他们回去之后颠覆了整个市场,因为他们相信我,对我有信心。虽然我没有告诉他们具体的计划,但是我们把一切都公开了,我们确实在60天内有了新的计划。对于我规定的90天缓冲,那些团队都说:“我们认可你的90天,我们会完成计划并且一直遵守它。”最初的几个发布时间都提前了90天。突然之间整个市场面貌都不同了,我是说突然之间大家都在计划表之前完成编程,那是大不一样了,这样他们的东西好卖了,同时也完全改变了我与销售部门的争论局面,因为现在人们相信我了。这时如果我说还要花费一年或半年的时间,也没有人会反对我。
Logo

20年前,《新程序员》创刊时,我们的心愿是全面关注程序员成长,中国将拥有新一代世界级的程序员。20年后的今天,我们有了新的使命:助力中国IT技术人成长,成就一亿技术人!

更多推荐