互联网公司的工程师把产品做出来,和传统的工人把墙砌起来是有差别的。墙砌起来了,很容易检测是否合格,很容易检查工作量,而且工程量是可以叠加的,1个人一天砌10m,那么10个水平差不多的人很可能每天就是100m。但是互联网产品(比如我们现在做一个app),远远比砌墙复杂:

  1. 行政人员很难检查工作量:昨天做了一个商品详情页,今天一个页面没做,但是优化了一个排序算法,你能说这个程序员今天没干活?有很多公司用每天写代码的数量来衡量工作量,更是笑掉大牙:程序员有哪些借口可以让自己写出低质量的代码?
  2. 很难通过限定工作地点来保证工作量:如果我要砌墙,工人不过来,他是不可能有贡献的,但是写程序不一样,在地铁上、在家里、甚至睡觉的时候都有可能产生工作量。因为大脑并为停止思考,有一台电脑就能表达成工作量。躺在床上想出来一个更好的解决方案是有可能的。
  3. 很难通过增加人数来增加工作量:一个好的工程师能抵得上10个差的工程师,乔布斯的这话绝对不是无中生有。人员增多意味着沟通成本增加,比如我们砌墙,摆放超市中的物品等,可能人多力量大。但是软件开发中,人多还可能瞎胡闹。不信,你请10个完全没有编程经验的人加入我们的项目试试,看看能不能把团队拖死?我想,到时候,大家的想法,肯定是,这10个人什么都不做,就是对我们最大的帮助。现在,设想这10个人是初级开发工程师,你认为会好多少?这10个人需要到什么水平,才能达到增加一个人的工作量的效果?