两个故事
by Joel Spolsky
Sunday, March 19, 2000
原文连接 http://www.joelonsoftware.com/articles/TwoStories.html
我想要告诉你们两个故事,都是来自我的事业,我认为非常经典的展示了一个管理良好的高科技公司和一个管理得灾难搬的高科技公司的不同点。这两者的不同来自一个信任自己的员工并且让他们自己把事情完成,一个对待员工像做汉堡的人一样需要时刻的监督和控制,免得他们迷失和蓄意的破坏。
我第一个工作是在微软,我的第一个任务是为Excel构思出一个新的宏语言。很快我有了第一个“Excel Basic”的规格说明书(这个随后并入了Visual Basic,但是这个另外一个故事)。不知怎么的,那个神秘的在微软内部被称为“应用程序架构”的团队听到了关于我的规格说明书的风声。我必须要去关注他们,因为由于一些原因他们认为宏语言这类事情在他们的管辖之内。而且他们要求看我的规格说明书。
我问了周围的人。谁是应用程序架构团队?看来没有人认为他们非常认真。我发现他们这个团队只有4个人,最近雇佣了博士(这在微软非常少见)。我给他们发了一份我的规格说明书然后去会见他们,以防止他们有有趣的东西要说。
"Blah blah!"其中一个说. "Blah blah blah, blah blah blah!"另一个说。我想他们没有什么有意思的东西要说。他们被一个叫做子类化的想法迷住了,而且有一种想法认为人们会用Excel中的宏去子类化很多东西。不管怎么说,他们中的一个继续说,“好的,这个非常有趣,下一个是什么?谁批准你的规格说明书?”
我笑了。即使我来微软才几个月,我也知道这里没有批准我的规格说明书这种事情。没有人有时间读我的规格说明书,更不要说批准。程序员每天叫我给他们更多的页数以便他们能写更多的代码。我的老板(也是他的)说的非常清楚,没有其他人真正理解宏或有时间做关于宏的工作,因此不管我做了什么,最好是做对的。
我很快意识到应用程序构架团队对于宏的了解甚至比我的还少。至少,我与一些宏的开发人员和Excel的一些老用户交谈过了解了什么人真正需要Excel的宏:每天需要重计算表格中的数据,或者依据固定的格式重新安排日期。但是应用程序架构团队几乎仅仅认为宏只是校园里的练习题,而且他们不能真正的想出一个什么人会使用宏的例子。在压力中,他们中的一个人提出了一个想法,现在Excel已经有了下划线和双下划线,也许有些人想要一个可以划三个下划线的宏。是的,非常正常。因此我继续进行,而且有策略的尽可能得忽视他们。
我这样做似乎激怒了应用程序架构小组的老大Greg Whitten。Greg好像是微软的第六位员工。他一直在那里;没有人可以明确说出他究竟干了什么,但是他之前和Bill Gates一起做了很多东西,GW-BASIC就是以他的名字命名的。在Greg称作大会的会议上他继续抱怨Excel小组(指我)把宏这件事情给搞砸了。我们逼他提出明确的理由,但是他的论点并没有说服力。我想我现在的处境非常有趣,一个刚刚从大学毕业的学生与微软的第六位员工争论,而且快要赢了(你能想象发生在Grey Flannel Suit 公司吗?)。Ben Waldman带领这编程团队,他完全支持我,这对我非常重要,因为事情最后做的怎么样完全由编程团队写的代码决定。
我非常开心的离开了那个大会。如果应用程序架构小组想我继续和我争论饿了应该吃什么东西,这也行。我会和他们争论下去直他们想结束,直到他们肯放程序员回去工作。但是接下来更有意思的事情发生了使我佩服的五体投地。我在和同时一起吃午饭的时候,Pete Higgins过来找我。那时候Pete是Office的经理,我知道他,当然,我不指望他非常了解我。
“事情进行的怎么样,Joel?”他问。“我听说你和应用程序架构小组有争议。”
“噢,不”我说。“没有什么是我不能应付的。”
“不需要说了,”他说,“我知道了。”他离开了。第二天我就听到了谣言:应用程序架构小组被解散了。还不知那些,小组的每一个成员都被分到了微软的不同部门,并且分得尽可能远。我就再也没有听到过他们了。
当然,我佩服的五体投地。在微软,如果你只是开发Excel宏的项目经理,即使你才来公司6个月,这没有关系,你依然是Excel宏这一领域的上帝,而且没有人,即使他是微软的第六个员工,也无权干涉你。
这传递了一个很强的信号。首先,这使得每个人都更关心自己的工作。他们不会把自己的想法以“经理要批准这个规格说明书”为借口隐藏起来。因为经理根本不会看你的规格说明书。经理做的事情只是雇佣了一批足够聪明的人然后让他们做事情。其次,这使得这里更适合工作。谁不想成为自己这个领域的老大?软件,由于的固有特性,可以非常容易的分解为更小的部分,因此总是可以分解到一块让一些人自己完全负责自己的一部分。这就是为什么软件人才喜欢在微软工作的原因。
多年过去了,我现在工作在Juno。这是一个在线服务商和免费的电子邮件提供商。这次,我的经历正好和在微软时候相反。我手下有两个程序员,但是我的经理总是不断破坏(限制)我的权利而且叫他们做事情,通常不会告诉我。即使像请假几天这样一些琐碎的请求,我的经理都认为批准或者不批准是他的事情。
几年过去了,我在Juno做关于新用户注册功能的工作。这功能用在Juno3.X上,这是是一个重要的发行版本,我将要赶上一个对注册功能的彻底大检查。这次,我在技术团队中是一个相对资深的成员;我非常完美的展示了这个功能,而且我的经理对我的工作非常赞赏。但是他们总是不能让他们自己相信我。总是命令和控制。
注册流程的一部分是提示用户输入他们的生日。这在用户注册流程中是一个很小的部分,其他的还有大约30多个步骤,Juno询问你的收入,你喜欢的运动,你有几个孩子,他们几岁,和其他100个问题。为了是注册流程尽可能的简单,我想要把生日变成任意格式,你可以输入“8/12/74”或者"August 12, 1974" 或者 "12 Aug 74" 或者其他的任何格式。(你使用过Outlook吗?就像Outlook那样,不过你输入的日期是什么格式,它都能处理)。
还没有了解详细的情况,我的经理就决定不用这个方案。这完全成了他自己的事情。一开始他朝着做这个页面的设计师吼(甚至不告诉我)。然后朝我吼。然后他每天提醒我要按他想要的方式修改。然后他找到公司的CEO审阅这个,还搞了一个大展览让公司的CEO评论我的设计。甚至Juno的CEO还很高兴他能干预公司最底层的工作,实际上,这是标准的操作流程。
不需要说,我彻底被激怒了。这是一件小事,只是关于风格的事情。有些人会喜欢我的方式。有些人会喜欢他的方式。不管怎么说,这里传达了一个很明显的信号:你只要做我告诉你做的,他妈的。这是想要征服和命令人的心智,这更像是一场胆量的战斗而不是对于界面设计的讨论。
我不会说这是我离开Juno的原因,但是我离开Juno的一个很明显的因素:这里传递了一个信号,不过你工作多努力,不过你有多聪明,不过你是否在主管某些事情,你都对任何事情甚至很小的一件事情有权限。你的想法,经验,思想,和才智,所有这些我们都付你钱,然后把这些乱扔。在Juno,有足够多的经理,大概有1/4的员工,而且他们有足够的时间对你的每个决定指手画脚以确定他们能控制局面。微软正好相反,你有完全的权限做你自己想要做的事情。
从某种程度上来说,Juno的毫无希望的无能的管理方式是因为它是一个纽约的公司,而不是一个西海岸的公司,因此先进的管理方式还没有普及开来。也因为Juno的那些无经验的经理们,和他们的源头CEO,一个29岁的从来没有在D. E. Shaw以外的地方工作过,而且总是对所有的事情指手画脚,包括程序出错应该弹出什么错误信息;CTO总是朝他的手下吼好像他们会质疑他的英明;他们找程序员出气,程序员只能回家踢他们的狗。与微软相比,事情变成了另外一个样子。好像经理最重要的工作是满房间的跑,把家具从道路上移开,以使人们能专心做自己的工作。