这篇文章是我的一个外国的同事Gareth推荐给我的,我和他一起工作过一段时间。他之所以觉得非常不错,是因为这篇文章让他身有体会,他觉得我也一定会有体会,并让我考虑一下翻译到我的blog上来。我看完后觉得很有代表性,而且觉得说得太对了,所以翻译过来,希望大家都读一读,最好转给你的公司老板。
这篇文章来源于 StakeExchange 上的一个问题——“为什么BA和PM的薪水要比程序员要高?”,顶在一楼的回复分析了这个原因,并指出了两种管理文化。
———————————————————正文开始——————————————
一个简单的回答应该是——“因为在我们的社会里,我们总是会认为薪水会和职位的层次绑在一起”。但是,这个答案同时也折射出一个事实——我们的薪资是基于我们所理解的价值,但这并没有解释:
这两个问题真是非常地值得我们去问,去思考。
总体来说,这个世界上存在两种不同的软件公司的组织结构。我把他们叫做 Widget Factory(小商品工厂)和 Film Crews(电影工作组).
Widget Factories 想要去解决 怎么去激发被X理论所影响的人 。 X理论由 McGregor 提出,这个理论是说,一般人的本性是懒惰的,工作越少越好,可能的话会逃避工作,大部分人对集体(公司,机构,单位或组织等)的目标不关心,因此管理者需 要以强迫,威胁处罚,指导,金钱利益等诱因激发人们的工作源动力。于是,经理总是要去做他下属的工作。于是,基于这种前提下所思考出来的管理方式,很自然 的就是——整个团队能够容易地被经理一个人所取代,这种团队中的每一个人都很容易被别人取代,在这种团队里,经理的工作能力不断地被加强。因此,这种公司 一般使用树形层级的组织结构,而不是水平式的工作角色。
Widget Factory管理体系运作于制作软件的某种假设,这种假设需要BA在一个定义的非常明确的并且需要主管项目经理监管的流程在,准备软件的规格说明书。这 种软件制造业需要对项目定置足够的可被替换的编程和测试资源。整个工作由事先安排好的预算来驱动,这个预算由PM和BA在初始化business case的时候完成。
一个Widget Factory的公司的管理可以通过观察这个公司员工的谈话方式识别出来。他们很喜欢谈论Resource资源(包括干活的人也叫做 resource),Process流程,Operating efficiency运作效率,uniformity一致性, repeatability可重复性,严格在控制对资源的使用,鲜明的工作角色和鲜明的流程定义(inputs 和 outputs)。他们对实实在在的软件开发漠不关心,他们想要把理想中的软件开发运作变成他们看得见的图画。
Film Crews 。这种公司认为人是有相当高的智力和创造力的,是自己可以激发自己的(陈皓注:即使没有外界的压力和处罚的威胁,他们一样会努力工作以期达到目的——人们 具有自我调节和自我监督的能力),人们努力工作,并且可以享受工作(人们愿意为集体的目标而努力,在工作上会尽最大的努力,以发挥创造力,才智),就像孩 子喜欢玩一样。 Film Crews 认为,每一个个体自已的专业能力,要远远优于那种被组织和协调出来的能力。因为经理不再代替每一个人,而树形的层次架构也不能很好的运作——人们不得不以 比较复杂和形式合作才能把事搞定。工作职责变得非常地垂直——你需要具有从上到下的而比较宽泛的各种能力(陈皓注:每个人都需要有管理和技术能力),这种 管理也就是基于 McGregor的Y理论。
一个Film Crew的Director(注:有总监和导演的意思)了解要把一个伟大的软件组合起来的每一个碎片,他需要组织一个无与伦比的团队,并且要帮助这个团队 能凝聚在一起,团结在一起工作。他的角色是鼓舞大家,守护着构想(Vision),提供方向和集中大家的精力。每一个人都很关键,因为 “Director”相信软件的结果来自所有的参与者,以及他们那种独一无二的团队工作方式。大家都知道自己是这个事的一个明星,明星效应可以增加成每个 人的成功的机会。而他们的构想(Vision)驱动着预算和拨款。
当我们用报酬来表示的话, Widget Factories 认为,有价值的东西总是从PM和BA派生出来的,所以他们常驻在管理层的上面,也有相应的报酬,而软件团队,只要他们正确地把需求变成可工作的代码后就变 得无所谓了。PM 和 BA 努力工作来维护他们的权位,他们通常不会让你能得到项目的原始信息。团队拿不到项目的原始信息,团队就要拼命地制造各种理由来让他们的方案变得有价值,程 序员成为了只会从PM和BA那边听从命令的工人。这种情况反而让Widget Factory公司放大了他们的那种想法——程序员都是差不多的,就像车间里的工人一样,他们只不过在机械地干一些很复杂的但是很标准的事情。
和Film Crew公司鲜明的对比,Film Crew更主张的是平等主意,每个成员都可以不受限制地获得主要的和原始的信息,其鼓励形成价值判断,并且可以自由地选择不同的方式来达到团队的构想。 Leadership领导力结构基于人的能力而不是工作角色。报酬拆射出这个人是怎么在这个项目中工作的,需要明白这个人为我们的软件创造了多大的价值和 产生了怎么样的结果。在这种环境里,PM的工作显得并不突出,他也许也不太可能是一个有创造力的领导者,工作角色被弱化成了一种行政管理上的支持者,以及 团队外部的联系者。BA的部分工作直接被团队取代(在项目早期被Director取代)。
现在,一点也不奇怪,大多数公司内的软件开发团队以及一些咨询工作运作于 Widget Factories ,其需要依赖于流程来不断地制造那些无聊的软件。在这种情况,惯例上来说,PM和BA要比程序员挣得更多,这是基本一种他们可以创造更多价值的假设。在这种组织架构和管理里,程序员们很难证明管理是错误的。
成功的软件公司都会趋于采用 Film Crew 的方式,任何其它的东西都会妨碍他们吸引牛人的能力,因为只有吸引了牛人,你才能创造出伟大的软件。在这种公司里,一个好的程序员的收入会高过BA和PM很多。
———————————————————正文结束———————————————
读完这篇文章,我发现这完全就是在说我上一家公司和现在公司。我上一家公司的经理们最喜欢谈论的就是resource、 process,而他们的Project Manager或Team Manager或Dev Manager几乎不会为软件团队分担真正的软件开发的压力,还不如Widget Factory。哎!第一次看到这么被人系统地表达出来,心中的一些困惑都得到了解答。
你的公司属于哪一种呢?