美文网首页
【生产力魔咒】什么是“10倍程序员”

【生产力魔咒】什么是“10倍程序员”

作者: ZekChang | 来源:发表于2016-04-11 12:02 被阅读226次

    1960年由Sackman、Erikson以及Grant三个人完成的。他们研究了工作经验平均在7年的专业程序员,并发现最好和最差的程序员写新代码的时间比为20∶1;调试次数是25∶1;程序大小是5∶1;程序的执行效率是10∶1。他们还发现,程序员的经验和代码质量或效率并没有关系。即便把这些缺陷考虑进来,他们的数据也仍然表明,最好的程序员和最差的程序员之间的差距能达到10倍以上。

    一些有趣(而又细思极恐)的例子或许更能说明“10倍”的意义。

    在20世纪80年代中期,波音公司有个约80个程序员组成的项目组正面临着无法按时完成一项关键任务的风险。这个项目对于波音来说至关重要,所以他们把项目上80个人中的一大半换成了另外1个人,而这位仁兄单枪匹马地完成了所有的编程工作,并按时交付了软件。

    这种差距并不仅限于软件行业。Norm Augustine的一份研究指出,在各行各业中,包括写作、橄榄球、发明、警务工作等,都存在一个情况,那就是行业中位列前20%的顶尖人才的产出占到了该行业总产出的50%,无论这些产出是得分、专利、侦破的案件还是软件 。你可以想想看,这还是有道理的。我们都知道,有的学生就是比其他学生优秀,运动员、艺术家甚至家长也是如此。既然这种差别存在于所有人群中,那么软件开发又怎么会例外呢?

    一个团队生产力的例子就是Lotus 1~2~3第三版和微软Excel 3.0开发团队之间的生产率差距。

    两者都是在1989~1990这个时间段发布的桌面电子表格应用程序。由于很少看到两个公司公布相似项目的数据,所以这种死对头之间的对比就显得尤其有趣了。这两个项目的数据如下:Excel的工作人员总共消耗了50个工年 ,共写了649 000行代码。而Lotus 1~2~3消耗了260个工年,共写了400 000行代码。Excel的团队每个工年的代码产出是13 000行代码。而Lotus的团队每个工年的产出只有1500行代码。两个团队之间的生产力差距超过了8倍,证明团队的生产力也有差距,并且有着更大量级的差距。

    有趣的是,这些量化的结果和局外人对于这些项目的感觉非常贴近。Lotus 123第三版当时是出了名的跳票王,比预期的时间至少晚了两年才发布。而在微软内部,Excel大受赞扬,被誉为是微软最成功的项目之一。对于真实公司的真实项目,这种程度的同类比较恐怕已经是能做到的极致了。

    Lotus和微软都煞费苦心地为各自的项目招募了顶级的人才,所以有理由怀疑团队生产力的差距并不只是由于团队成员的能力差距造成的,还牵扯到了很多组织结构上的因素,比如产品远景是否清楚、客户需求是否明确以及成员之间是否能同心协力,等等。

    组织的因素会影响团队生产力的发挥。杰出的组织中个人能力平庸的团队可以超越平庸组织中个人能力杰出的团队。当然,像杰出的组织+杰出的团队或者平庸的组织+平庸的团队这样的组合也不是没有的。在这种时候,团队生产力(或者叫组织生产力)和个人生产力一样相差10倍也就不足为奇了。

    本文摘自《软件之道:软件开发争议问题剖析》

    相关文章

      网友评论

          本文标题:【生产力魔咒】什么是“10倍程序员”

          本文链接:https://www.haomeiwen.com/subject/nqudfttx.html