stevenyao

  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  22 随笔 :: 1 文章 :: 67 评论 :: 0 Trackbacks
经济学上有个著名的理论,比较优势论。

大卫·李嘉图在其代表作《政治经济学及赋税原理》中提出了比较成本贸易理论(后人称为“比较优势贸易理论”)。比较优势理论认为,国际贸易的基础是生产技术的相对差别(而非绝对差别),以及由此产生的相对成本的差别。每个国家都应根据“两利相权取其重,两弊相权取其轻”的原则,集中生产并出口其具有“比较优势”的产品,进口其具有“比较劣势”的产品。比较优势贸易理论在更普遍的基础上解释了贸易产生的基础和贸易利得,大大发展了绝对优势贸易理论。
详见: http://baike.baidu.com/view/277464.htm

在大师的理论模型中,有两个贸易国,只有两种产品,阐述了怎样用比较优势论来进行生产贸易,从而增加两国的福利。

这个理论也可以运用在软件开发中,对于大多数软件公司,都有两种项目,新产品开发,旧产品维护,而开发人员中也大致分为两种,高级工程师,普通工程师。这恰好满足了比较优势论中的理想模型。

我们来做个假设,对于高级工程师来说,每天可以写200行新产品代码,或者修改10个旧产品中的bug,而普通工程师,则每天可以写100行新产品代码,或者修改8个旧产品bug。
那么我们如果采用让所有工程师都参与新产品开发和旧产品维护,而且维持工作量一样一半,那么高级工程师每天 写100行新代码,修改5个旧产品bug,同时普通工程师是 50行代码,4个bug。
那么站在公司整体角度来计算,公司得到了 150行新产品代码,修改了9个旧产品bug。

如果运用比较优势理论,我们发现普通工程师在修改bug方面拥有比较优势,而高级工程师在开发新产品方面有比较优势,于是我们调整分工。
高级工程师每天拿出 80%的精力用于新产品开发,20%的精力维护旧产品,而普通工程师则全力进行旧产品维护。
于是,高级工程师每天 写160行新产品代码,修改2个bug,普通工程师只修改改bug,每天8个。
在公司整体角度计算,每天得到 160行新代码,修改了10个bug,新产品开发和旧产品维护的效率都增加了,但是成本并没有变化,因为工作时间没有增加。

这不过是一个理想的模型,现实中的开发人员的生产率并不是这么容易量化的,但是要承认,一般来说,高级工程师应该在开发新产品方面具有比较优势,而软件新手则在维护方面具有比较优势。
作为软件开发的管理者应该努力去了解并且充分利用不同人员的比较优势,从而提高整体生产率。


posted on 2010-02-03 22:25 姚冬 阅读(1578) 评论(5)  编辑 收藏 引用

评论

# re: 软件工程中的比较优势论--软件开发中的经济学原理 2010-02-04 09:17 chyn
我很怀疑“高级工程师每天拿出 80%的精力用于新产品开发,20%的精力维护旧产品,而普通工程师则全力进行旧产品维护”的实际效果,
我们在开发过程中往往高级工程师充当了导师的角色,
有些bug对于普通工程师可能需要花更多的时间去寻找,
而最终解决又将依赖于高级工程师,
这样的bug越到项目后期越占比重。
普通工程师更应该像一台机器,去实现高级工程师的构架,个人感觉。  回复  更多评论
  

# re: 软件工程中的比较优势论--软件开发中的经济学原理[未登录] 2010-02-04 10:49 hh
@chyn
“有些bug对......,最终解决又将依赖于高级工程师”,呵呵 这样的普通工程师用来做什么? 供着吗?  回复  更多评论
  

# re: 软件工程中的比较优势论--软件开发中的经济学原理 2010-02-04 23:29 孔雀
你这个量化模型真是不可思议啊。
  回复  更多评论
  

# re: 软件工程中的比较优势论--软件开发中的经济学原理 2010-02-05 13:12 凡客诚品
撒旦马上淡淡  回复  更多评论
  

# re: 软件工程中的比较优势论--软件开发中的经济学原理 2010-02-21 00:46 顶啊
根本是要逐级处理,简单的事让菜鸟先搞,搞不定让高手出马,菜鸟要努力,高手要能罩,要能带。
有时候很难绝对的说是改bug比较难还是写新项目比较难。  回复  更多评论
  


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理