俗话说,万事开头难,需求是软件项目的最开始输入,肯定是非常重要的,按道理来说也应该是需要重点关注的。
然而现实情况却恰恰相反:很多项目都不怎么重视需求!
你可以经常看到这样的场景:
需求分析人员和客户沟通了一下,然后把客户的要求简单整理了一下就交给研发了。。。。。。
项目计划比较紧,那么就把需求分析阶段加快一些吧(实际上就是减少投入时间)。。。。。。
产品给了一个简单的需求,为了能够快速交付,没有怎么分析就开始设计编码了。。。。。。
虽然看起来时间是节省了,项目是加快了,然而最终的结果却令人失望:据统计,有将近1/3的项目失败或者陷入困境时因为需求原因导致的!
这个就是所谓的“垃圾进垃圾出(Garbage in, garbage out)”的效果,即:
如果最开始的输入是错误的,后面的过程再怎么优秀,最终都会输出垃圾产品。而且可能是后面越优秀,最终输出越垃圾,就像你朝一个错误的方向跑步,跑得越快离正确的终点越远一样。
举一个虽然恶心但很形象的例子:给你一坨屎,你放到饼干生产线上,最后生产出来的不是饼干,而是像饼干的一坨屎!:)
你可能会说,错了我改还不行么?
当然是可以的,但你要做好心理准备,还有一个更加令人抓狂的事实:修复需求错误的问题的成本非常高昂!
我们假设编码阶段发现和修复一个错误所耗费的人力是1个单位,那么在测试阶段修复需求错误的成本是5~10倍,在维护阶段(产品正式应用后),修复需求错误的成本是20倍,而如果在需求阶段修复需求错误,成本只需要0.1~0.2即可。
也就是说,需求错误的成本存在这样的比例关系:维护阶段修复 = 需求阶段修复 * 200 !
原因显而易见:如果你的需求错了,那么你几乎是要把软件项目重做一遍!
相信经过前面的分析,你对于需求的重要性已经有了充分的认识了。
请时刻牢记:需求很重要!