实话,我是一个刚刚毕业1年多得软件工程师(希望真的有资格称呼自己这个),谈软件经济学这个话题,纯粹是个人兴趣,也是看书的一个心得报告。
谈经济,首先要明确输入是什么,即参数、思考问题的核心点在那里。软件经济学一般来说有五个参数,分别是规模、过程、人员、环境和质量。这五个点每个都是一门学科,但是这五个点绝对不可以孤立起来谈,这个就是工程的魅力所在,他永远是一个整体,如果切开其中的一段去改进,哪怕投资再大都未必可见其经济效应。最简单的例子,软件项目是典型的规模不经济,那么就是说一个项目不是投资的人越多产出就越高,进度就越快。其带来的经济效应绝对是反作用。
就着规模不经济说,人在软件工程、软件经济学中的地位我个人觉得是最高的,当然前提是流程等等还可以拉。通常,软件公司在项目级别很少评估成本的,问题就在于办公室、场地、电脑等费用都是公司成本平坦的很少降到项目中去核算,当然要是封闭开发就不算了。那么项目中的最主要最大头的一块成本就是人员的工资,自然人越多这块成本就越高了。说实话,一般公司也不是这么考虑的,人才难得吗?钱算个jin阿。
我觉得最不经济的地方在于沟通成本的提高,一个软件公司在成熟,cmm哪怕到了10级沟通成本也不会低的,更何况一般的公司,本来开发就不规范,都说分析设计,其实一编码就开始天马行空了。尤其是到了项目后期,什么问题都来了,项目要延期,人员要跳槽,性能不过关。。。焦头烂额,这时候拼命加人是第一反应,不过这样一来就完了。新来的人两眼一抹黑,啥都不知道,需求看不懂,分析找不到方向,设计不知到如何统一,编码不知道规范,找人问?其他人自己都顾不过来,结果瞎写一气,结果polymophism,都是runtime得。所以人力的核算是项目中的最大问题最大风险。保持人员的稳定性、人员之间的高度磨合是让每个管理者头疼的事情,每个人都有自己思路去处理这个,我个人经过观察,感觉到大部分还是通过私人感情来弥补工作上的事情。谁都想把项目量化,的确很多组织都朝这个方向努力,不过大多数都是从项目本身去做的,因为说都知道人这个资源太复杂了,根本就无法评判,哪怕是心情不好都会让他效率降低,所以紧紧地管理好人太重要了。