开发中的“隐性成本”

软件开发这块的成本,很多时候想想,隐性成本蛮高的。


就个人经历而言,传统企业应用开发相对于所谓的互联网产品(平台、网站)开发要好控制些。

之所以说企业比互联网要相对容易些,是因为企业的需求相对固定且少有一下子大改动的(也可以说是不思进取?^.^),基本上流程固定,只要把大的流程框架做完,其实就是小修小补的二次开发了。相对的,行业经验在这里是很值钱的。

互联网产品的需求则跳跃性更大些,所谓“天马行空”大抵如此。行业经验在很多时候是很有帮助的,但有时候也是块绊脚石。因为经验容易让人思维僵化,而互联网讲究“创新”。


这只是从业务需求层面来说的。说明需求的稳定性对隐性成本的影响是很大的,最悲剧的时候可以大到无法估算。


之所以要从需求开始说起,并非是想抨击需求本身,而是想带出需求提出人和需求决策人这两个重要角色。


需求提出人,在不懂的环境下是由不同的角色担当的。比如:业务操作人员、业务部门管理人员、信息系统规划人、信息系统负责人、开发人员、测试人员乃至……老板!至于具体是谁或者哪些谁,取决于团队角色分工。

基本上,第一手需求多半是一片混乱的,如果技术团队有幸有负责整理、澄清需求的人员,那么还不错,要不然就基本是“浆糊”。

需求无法澄清,很容易埋下雷点。既然是“无法澄清”的需求,那说明团队中没有能同时沟通业务和技术的人员,业务和技术的对接基本就是鸡同鸭讲。


当需求需要决策的时候,决策人员无法理解需求,对于需求只能看到表面的时候,基本上工作延期甚至失败是必然的。


对于一个需求,决策人员看到的是用户提交注册信息完成注册,对他而言这只不过是个花一个小时就搞定的事情。

开发人员这边发现问题是这样的:显示要验证注册信息,接着原来的系统里注册需要给用户初始化积分、信息等数据,根据用户提交的邮箱、手机检查之前是否有其他会员发送过信息,如果发送过了要自动提示好友关联,因为之前的特殊需求所以这些好友关联是自动的而非提示给用户选择的,完了发送验证短信给用户激活。这些东西做完加上测试,起码要花半天甚至一天的时间。

后台的这些判断并没有显示在界面中,所以需求决策人员看到的和开发人员看到的自然是不一样。开发人员很多时候并没有话语权。

于是,隐性成本产生了。半天甚至一天的时间被估算成一小时。


一般这种简单的流程是可以沟通的。但是碰到复杂的,不但是需求提出人和决策人没碰过,连开发人员也是第一次碰到的情况,基本上就容易坑爹了。

至于碰到需要全能型开发人员的老板时,隐性成本更是会直线上升。