软件公司的两种管理方式

软件公司的两种管理方式

这篇文章是我的一个外国的同事Gareth推荐给我的,我和他一起工作过一段时间。他之所以觉得非常不错,是因为这篇文章让他身有体会,他觉得我也一定会有体会,并让我考虑一下翻译到我的blog上来。我看完后觉得很有代表性,而且觉得说得太对了,所以翻译过来,希望大家都读一读,最好转给你的公司老板

这篇文章来源于 StakeExchange上的一个问题——“为什么BA和PM的薪水要比程序员要高?”,顶在一楼的回复分析了这个原因,并指出了两种管理文化。

———————————————————正文开始————————————————————

一个简单的回答应该是——“因为在我们的社会里,我们总是会认为薪水和会和职位的层次绑在一起”。但是,这个答案同时也折射出一个事实——我们的薪资是基于我们的所理解的价值,但这并没有解释

  1. 为什么PM(Project Manager)和BA(Business Analysts)在很多软件公司里在组织的上层?
  2. 为什么软件项目团队总是在最底层?

这两个问题真是非常地值得我们去问,去思考。

总体来说,这个世界上存在两种不同的软件公司的组织结构。我把他们叫做 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 公司放大了他们的那种想法——程序员都是差不多的,就像车间里的工人一样,他们只不过在机械地干一些很复杂的但是很标准的事情。

与 Widget Factories 公司鲜明的对比,Film Crew 更主张的是平等的工作职能,每个成员都可以不受限制地获得主要的和原始的信息,其鼓励所有人形成自己的价值判断,并且可以自由地选择不同的方式来达到团队的构想。Leadership领导力结构基于人的能力而不是工作角色。报酬折射出这个人是怎么在这个项目中工作的,需要明白这个人为我们的软件创造了多大的价值和产生了怎么样的结果。 在这种环境里,PM的工作显得并不突出,他也许也不太可能是一个有创造力的领导者,工作角色被弱化成了一种行政管理上的支持者,以及团队外部的联系者。BA的部分工作直接被团队取代(在项目早期被Director取代)。

今天,我们一点也不奇怪,大多数的公司内的软件开发团队以及一些咨询工作运作于 Widget Factories ,其需要依赖于流程来不断地制造那些无聊的软件。在这种情况,惯例上来说,PM和BA要比程序员挣得更多,这是基本一种他们可以创造更多价值的假设。在这种组强架构和管理里,程序员们很难证明管理是错误的。

成功的软件公司都会趋于采用 Film Crew 的方式,任何其它的东西都会妨碍他们吸引牛人的能力,因为只有吸引了牛人,你才能创造出伟大的软件。 在这种公司里,一个好的程序员的收入会高过BA和PM很多。

———————————————————正文结束————————————————————

读完这个贴子,我发现这完全就是在说我上一家公司和现在公司。我上一家公司的经理们最喜欢谈论的就是resource、 process,而他们的Project Manager或Team Manager或Dev Manager几乎不会为软件团队分担真正的软件开发的压力,还不如Widget Factory。哎!第一次看到这么被人系统地表达出来,心中的一些困惑都得到了解答。

你的公司属于哪一种呢?

————更新 – 2011-7-6 晚————

有人在我的新浪微博(@左耳朵耗子)里说,Widget Factory就是Waterfall,Film Crews就是Agile,在下面的留言里也说Film Crews很像SCRUM。我在这里驳斥一下这种说法:

  1. 我上一家公司也用Agile ,但本质上还是Widget Factory,甚至还不像。
  2. 著名的Thoughtworks中国公司,Agile的倡导者,其实是外包公司,他们的开发团队中也有PM和BA。

(转载本站文章请注明作者和出处 酷 壳 – CoolShell ,请勿用于任何商业用途)

好烂啊有点差凑合看看还不错很精彩 (59 人打了分,平均分: 4.64 )
Loading...

软件公司的两种管理方式》的相关评论

  1. 感觉我们公司是混合型的。。。。。
    现在更倾向Film Crew 方式,但是可能正是人的惰性问题,感觉公司正逐步的倾向于 Widget Factory…..

  2. 不可否认,越大的公司越倾向于前一种模式。所以,小公司永远有做出来的机会。只是这方面我国的提供的保障实在不怎么样。

  3. 奇怪的就是很多以产品为导向的公司却偏偏要把自己弄成Widget Factory。 最后牛人跑光, 老板满意了, 老板认为是这些人不符合公司的要求才被淘汰的, 其实随着牛人的离开, 优秀的产品也离开了。

  4. “为什么BA和PM的薪水要比程序员要高?”——不要总是弄的很玄, 其实很简单。大部分程序员只是coding, 并没有创造太大的价值。

  5. Film Crew 在我看来国内能有这样的公司可以说凤毛麟角了,在玩PS3的战神的时候,顺便看了他们整个Team的介绍,当时都有种激动的哭出来的感觉。

    今天看到这篇文章得以解释了这样的团队模式就是Film Crew,其实目前流行的Scrum模式有点类似Film Crew这样方式的管理模式,更弱化管理,而强掉每个人的能力提升。

    但在中国大环境的形势下,或者根深蒂固的孔夫子思想下,大多数程序员是不适应的,如果团队中有一个人是这种思想,那么这个团队就很难成为Film Crew,而且这个团队的人都是非常优秀的,只会越来越优秀,因为每个人的能力提升不会因为某个管理者而提升,也不会因为管理出现太大问题逼走某个员工,因为这种平行的管理模式就让每个人都感觉到自己价值的存在了,并且自己的技能会逐渐扩展,当然自己会发挥自己最大的优势,以前在一个外企待过有过深刻体会,但因为经济危机解散后来来到国内公司,还是这种Wild Factory模式,但我真的不想做管理,可这样的公司管理层却成了地位的象征,有时候苦笑和无奈,唯一能改变的还是丰富自己,这也许是很多人都有的感触吧。。。

  6. Mic :
    “为什么BA和PM的薪水要比程序员要高?”——不要总是弄的很玄, 其实很简单。大部分程序员只是coding, 并没有创造太大的价值。

  7. sixfooter :
    奇怪的就是很多以产品为导向的公司却偏偏要把自己弄成Widget Factory。 最后牛人跑光, 老板满意了, 老板认为是这些人不符合公司的要求才被淘汰的, 其实随着牛人的离开, 优秀的产品也离开了。

  8. 不赞同机械的把这两个模式分开。决定一个角色价值的是这个角色能给组织带来多少价值,以及要成为这个角色需要付出多大的代价(角色的稀缺性)。

    公司对某个角色的价值判断从公司的组织结构就能看出来,你可以分析一下苹果,微软,谷歌等公司的组织结构,非常非常不同。所以从你公司严格的树状的组织结构判断,程序员的地位未必高。

    在互联网公司,决定价值的首先是idea, 其次才是管理,技术等等,所以今天能够看到那些product manager很值钱。至于技术,有了idea,总能找到人实现它。

    最后要说的是,很多人的职业生涯是跨越多个角色的,程序员是其中最基本的工作,很多好的pm,dm都是从这个角色上转过来的,所以很自然的要价要高于developer。

  9. 我们公司老板是香港人,也是特别喜欢说Resource这个词。
    后来我们的一个经理也学会了这个腔调:我们组的Resource不够啊,找两个Resource来吧,要加班啦。

  10. 在互联网公司,决定价值的首先是idea, 其次才是管理,技术等等,所以今天能够看到那些product manager很值钱。至于技术,有了idea,总能找到人实现它。

    呵呵,这个….
    在互联网公司,资本财是决定性的因素,没有资本你就请不了有[idea]人才,所以也没有有创意的产品,没有有创意的产品。。。。。 这个公司也就没有了价值。
    有了资本,总能找到有价值的公司进行投资从而获得更多的资本。

  11. Film Crew和Scrum很像,都需要个体的能力很强,愿景很足,如果管理者足够明智,遇到这样一个团队自然知道自己该做什么不该做什么。但是以国内的文化而言,这样的个体太少,他们遇到一起的几率也太低。
    Widget Factory是工业时代的产物,相信按照流程做事,对人的依赖会降低,产出能够保持在一个“可接受”的水准,所以他们通常难于做出创造性的产品,但是做出来的东西通常都能用,当然不能用的也很多。
    抛开工资不谈,国内需要的是强有力的Mgr,以Widget Factory的方式来带团队,同时努力培养和营造Film Crew所需的条件和基础。
    人永远是决定因素,虽然不能说“因人设事”,但是你手上有什么样的人,基本上就决定了你能用什么的方式来带领他们。
    愚见。

  12. 目前自己也在努力的营造第二种工作模式,确实,看到自己零散的想法能被人这么切中要害而且完整的表达出来,的确是一件快事。

  13. 嗯,感触比较深的就是接触oracle的工程师,他们说oracle公司不缺任何人,公司有的是钱,所有工作都流程话管理,所以oracle公司的工程师,进去的时候工资是多少,以后基本不会增加多少…

  14. 你的blog一直在我的google-reader里面,没想到今天看到你的email, 才发现原来在一家公司,希望今后能像你一样有这么丰富的阅历

  15. @ghostwish
    你这种模式手下永远是”SB”的人;“牛人”喜欢Film Crew的环境; 什么样的环境聚集怎么样的人,环境是先由领导者创建的;

  16. idea重要嘛?似乎不是这样的,全球六十几亿的人,你的一个idea肯定被无数人想过。第一个做出来,并且做好的人才是牛人。空有一个idea,到处找人实现的话,最终也不会是好产品。除非你运气特别好,遇到了一个认同你观点的牛人,而且这个牛人还得脑残才行。最简单的例子,请参照社交网络里的情节。

  17. 即使是film crew,也有talents和resources的区分,编剧、主要演员是talents,或者可以理解为牛人,他们的工作不可替代;同时还有许多剧组人员比如场记、扛麦克风的勤务等,更多的是resource属性,他们完成的是预先设定好模式的,可重复可替代的工作。作为软件开发公司来说,有时候也是这样。另外,导演更多的类似软件开发中dev manager的角色,而制片更多的类似软件开发中team manager或production manager的角色

  18. Haining :
    在互联网公司,决定价值的首先是idea, 其次才是管理,技术等等,所以今天能够看到那些product manager很值钱。至于技术,有了idea,总能找到人实现它。
    最后要说的是,很多人的职业生涯是跨越多个角色的,程序员是其中最基本的工作,很多好的pm,dm都是从这个角色上转过来的,所以很自然的要价要高于developer。

    在我们公司没有见过程序员出身的PM,ProjectManager有,ProductManager没有。

  19. 我觉得虽然我们公司思想上很开放,有点像Film Crews,但工资却没见得涨。。。

  20. 现实中往往是混合型的居多。而且好像越是往上,越偏向于Film Crews。相对比较低级的员工就偏向Widget Factory。
    其实也没啥好奇怪的,在哪个领域都一样,给牛人的自由度就高,普通工人呢,因为可替代性实在是太强,爱干不干吧,估计资本家都是这么想的

  21. Widget Factory(小商品工厂) 和 Film Crews(电影工作组).— 我翻译为(小作坊)和(电影工作室)

  22. 字体怎么改成雅黑了。好像很多个人博客字体喜欢用微软雅黑,这种字体在很多电脑上看着很模糊很难受。

  23. 遇见 :
    @ghostwish
    你这种模式手下永远是”SB”的人;“牛人”喜欢Film Crew的环境; 什么样的环境聚集怎么样的人,环境是先由领导者创建的;

    哥们说的很在理~顶!

  24. 互联网团队,除了学会传统”规划、组织、领导、控制 “的管理方式之外,还需要”激励、授权、支持、交流 “,这实际上意味着,领导者(特别是CEO)把资源分配采取分布式,而不是集中制(集中在自己手里)。这对团队/组织/公司,在应对复杂、即时、阶层式问题时的灵活度、适应度增加很多。

  25. 是不是写错了~?和 Film Crew 公司鲜明的对比,Film Crew 更主张的是平等的工作职能,
    是不是和 Widget Factory 公司鲜明的对比?

  26. 大多时候接手的程序是个烂摊子, 所以能真正投入到产品中,或者说对产品有爱的程序员挺难得的

  27. 去年上SCRUM Master的培训,Peter说过一句话印象深刻,真正的敏捷应该是Be Agile而不是Do Agile
    在我们强调/争执xx方法论,xx实践的时候,我们往往在做敏捷,而不是真正的敏捷了。
    所以:
    1 大部分项目在推行敏捷,他们只是在做敏捷而已,使用一些最佳实践和方法论来改进开发流程,部分提高开发效率。
    这点在大公司非常突出,特别是传统电信行业。

    2. TW != Agile, TW只是一伙打agile牌号卖私活的生意人而已。

    Agile的核心就是管理学上的Y理论,这点应该是毋庸置疑的。scrum就来源于橄榄球比赛,这和电影公司是一样的,需要整个团队的每个人都做到最好。

    Agile没有严格的方法论,应该是用实践效果来说话,在Agile宣言里,检验的标准就是可运行的软件产品。

    Agile也不可能自上而下去推动,因为需要整个团队一起出力,所以agile团队天生就不应有很强的层级结构。(TW的咨询师做的工作在我看来恰恰是反agile的,他们通过背后强大的品牌效应,一拨只会刷嘴皮的书呆子以一幅我才是专家的这种高高在上的嘴脸去教导客户如何Do Agile) ,在SCRUM里面,其实根本没有PM这样的角色,SCRUM Master不是pm,他只是一个承担一部分协调工作的程序员(在一些团队里,SCRUM Master是由开发人员轮换的)。

    不过感觉国内很难be agile,因为中国人文化里的等级观念实在太强了, PM, BA,xx经理,必不可少呀,而且大家都还没脱离生存问题,弄个级别,收入高呀。

  28. 这绝对是个草根写的!
    作为一个CEO当然想象Film Crews那样!!!!
    但如果牛人太牛变成与一般人的本性是懒惰的一样,工作越少越好,可能的话会逃避工作,对集体(公司,机构,单位或组织等)的目标不关心。
    那时牛人还不如一个服从工作安排的一般人呢。
    一个企业是要每时每刻正常运转的,所以宁原做 Widget Factory
    能做Film Crews只有艺术家,他们全按自己喜好去工作,在企业里,他们是个不稳定的因素!因为他们随时都会发生问题!企业在他们手里会随时停止运行的!
    Film Crews 。这种公司认为人是有相当高的智力和创造力的,是自己可以激发自己的(陈皓注:即使没有外界的压力和处罚的威胁,他们一样会努力工作以期达到目的——人们具有自我调节和自我监督的能力),人们努力工作,并且可以享受工作(人们愿意为集体的目标而努力,在工作上会尽最大的努力,以发挥创造力,才智),就像孩子喜欢玩一样。
    这种人可是万里挑一的!!!!
    成功的软件公司都会趋于采用 Film Crew 的方式,任何其它的东西都会妨碍他们吸引牛人的能力,因为只有吸引了牛人,你才能创造出伟大的软件。 在这种公司里,一个好的程序员的收入会高过BA和PM很多。
    请注意:一个好的程序员的收入会高过BA和PM很多。
    注意:一个好的程序员!!!!
    何谓一个好的程序员???
    要一个好的程序员才可收入高过BA和PM
    注意:是一个好的程序员!!!
    能管理牛人和让牛人发挥相当高的智力和创造力的BA和PM!他们也不是一般的BA和PM了!!!
    亲爱的伙伴们!企业是要正常运转的!!!只要你们热爱工作自己可以激发自己的在Widget Factory也能象在Film Crews一样的!!!
    是Widget Factory还是Film Crews不是由企业或者BA和PM决定的。而是由员工决定的!!!
    你的本性是懒惰的,工作越少越好,可能的话会逃避工作,对集体(公司,机构,单位或组织等)的目标不关心。这样你只能生活在Widget Factory的空间里!!!
    你是有相当高的智力和创造力的,是自己可以激发自己的,努力工作,并且可以享受工作,就像孩子喜欢玩一样。这样你就能生活在Film Crews的空间里了!!!
    亲爱的伙伴们!生活在那一个空间里,是你们自己决定的!!!
    就象命运一样!是掌握在你自己个人手中那样的!
    企业与员工的关系就象父母与子女的关系!这世上只有忤逆子女,那有忤逆父母的???只有反骨子女,那有反骨父母的???
    亲爱的伙伴们!
    如果你们想生活在Film Crews的空间里!
    那就让我们做个有相当高的智力和创造力的,是自己可以激发自己的,努力工作,并且可以享受工作,就像孩子喜欢玩一样的人吧!!!

  29. 嗯,我的上一家公司是美国的互联网企业, 但是更像你说的Widget Factory,过去的几年里, 很多的老PM都走了, 为什么?因为他们基本上是瞎出主意,没有试验就做产品, 自己生活平衡, 把developer赶的像狗一样 — 最后产品上了线效果并不好, 至少不如他们吹嘘的那么好, 在中国这边, 开发者的日子很难过(离岸开发, 交流障碍。。。), PM可挺逍遥, 不停的去催就是了。

  30. Film Crews是技术人员的乌托邦,但是在不完美的现实中,避免不了Widget Factory。
    前两天公司scrum培训,我问trainer,条文,process是agile尽力在解决的问题,为什么似乎现在很多类似scrum的东西正在把agile条文化,宗教化,那哥们说的还是有些道理的:“因为大部分人还不够成熟,包括组织,包括个人”。
    对于软件产品开发,如果组织内有这么成熟的Film Crews团队,是这个组织的幸运。没有,只能通过Widget Factory方式去培养,当然这种方式的最大风险在于Widget Factory中的PM or anyone是否会主动去这么做,很难,无论从实施还是从个人利益方面考虑。

  31. Film Crews对组织成员的素质要求比较高。要在这样开放的框架下去协同工作,要求成员必须高度理解团队的目标和项目的目标,不只要求实现能力,还要求设计能力、出色的沟通能力、自我驱动能力。同时还要求团队一开始就制定有非常好的沟通机制。我觉得优秀的初创团队或许能在初期达到这个境界,但是机构大了以后还是会走层级的模式。

  32. 规模确实成问题。沟通路径挺麻烦的。
    相连方式组织的cache和通用寄存器堆再大也不可能代替内存。

  33. 大公司就是个悲剧。 所以公司变大之后最好要像航空母舰一样,把公司内部的部门拆开发射出去, 变成控股其子公司。母公司和子公司只有资本上的关系, 没有管理上的关系。当然,母公司和各个子公司之间可以根据意愿建立战略合作关系。

  34. 我的一点个人看法:—》Film Crews团队在创业团队或者大公司里面的创新性小团队应该是适用的,但是对于绝大多数“普通”的开发公司/项目来说,不可避免地会走向Widget Factory。
    汽车制造,在最开始时应该算作一种具有创造性的工业艺术吧,但是发展到现在,汽车制造流程的工程性要远远超过其艺术性。现在有种声音,开口必谈敏捷宣称软件工程必死,其实太片面了点。
    这本质上取决于对软件开发的定位:软件开发到底算不算是具有极强创造性的艺术形式!?伟大的软件产品都当然要算作艺术!但更多的软件开发恐怕还是停留在“平庸”的阶段吧,估计软件公司老板心里面还是希望笼络一大片软件艺术家来一起开创新时代的,可是难度忒大点,Widget Factory的可实施性更强一些;

  35. 在研究公司的行为的时候,我总是希望考虑人的因素。人的因素,不仅仅只有懒惰或者自我监督,每在工作的个人总是希望被他人肯定,总是希望通过自己的创造,给团队和公司创建更多的价值,作为价值回报体系,公司的薪资,公司的工作环境,对团队的认同感都是影响个人在这个团队中稳定下来的因素。稳定的团队,目标的一致性是团队制胜的先决条件。

    Film Crews激发了个人的工作积极性,是否能够在以后的工作继续保持这份积极性?Widget Factory强调了资源的程度,忽视了作为创作主体的程序员。

    如果把程序员也看做一种资源,那么这种资源绝对是不可替代的,因为人有存在个体差异,而实际物体的资源是不存在差异性的。

    不管我们怎么变化程序开发,不管怎么提升开发工作和提升程序开发语言,程序员的角色永远是属于不可替代。之所以现在觉得可以替代,是因为大部分公司都是在作为Widget Factory形式存在,观念的一致导致行为的一致。

    至于有些公司宣称是Agile或者Scrum,那只是宣称,我们要看的实际是怎么操作,而不是宣称是什么!

  36. Mic :
    “为什么BA和PM的薪水要比程序员要高?”——不要总是弄的很玄, 其实很简单。大部分程序员只是coding, 并没有创造太大的价值。

    嗬嗬,我可以简单copy一下你的句式和逻辑:不要总是弄的很玄, 其实很简单。大部分PM只是写document, 并没有创造太大的价值;大部分BA只是在闭门造车做所谓的商业分析,丁点儿价值都没有创造,软件公司死就死在PM/BA这些尸位素餐的人们上了。

回复 遇见 取消回复

您的电子邮箱地址不会被公开。 必填项已用*标注