摘要:需求是一个项目的根本,是用户所要求最终要实现的功能,一个偏离需求的项目,即使你做得再完美,也只能是一个失败品!如果你不能很好掌握需求,带来的将是项目开发中无穷无尽的改动。
由于换工作到原因,到现在公司的时候,项目已经启动。但我们手上掌握的需求,却是聊聊无几。除了几个大功能点的概述,其余均空缺,用户的意思是:你们先做,做出来我们再来提建议修改。由于项目组是新成立的,且当时我们人员尚未全部到齐。使得整个项目组缺少一根主心骨,在一切都还不确定的情况下,项目就这样开始草率的动工了。所的需求都是在开发过来,得到一些零星的描述,整个项目也未成从整体上进行设计。至今日,已有3月有余,已经超过了客户商定的日期数日。至昨日起,用户方才开始对整个系统进行全部测试,测试的结果是令我感觉到汗颜和无语,整个结果在意料之中,情理之外。不错,客户对很多功能,流程表示不满意,提出新的功能需求,突然觉得自己好像已经踏进了一个无底洞,没有一份需求的合同,这意味着:客户可以无限制,无条件的让你加功能,无休止的和你纠缠。没办法,为了项目尾款,我们只能硬着头皮上,谁叫顾客上帝列?
因为工作环境的原因,之前公司开发流程之规范,与现在公司的开发流程简直是天壤之边。这是我所史料未及的。带来的教训当然也是很惨痛的,以后相当长的一段时间,都将生活在与客户的纠缠中。
第一:项目开发之前,要尽可能细的挖掘用户的需求,与之确认所有细节问题(用文字和UML来搭配描述),并与客户签订需求合同。如遇后期更改,需双方再次确认,并商议项目资金问题。
第二:项目开发之前,一定要进行详细整体的设计,并需要项目组多次开会讨论设计的合理性和扩展性。切不可临时抱佛脚,做一块设计一块,苟延残喘。
第三:与程序员的沟通问题,确认各自模块的流程时,除UML外,一定要有详细文字性说明。
第四:跟客户的交流,要把握好尺度,不可过于牵就,亦不可过于自我,一方面要细听用户需求,对合理的部分要进行挖掘,细化。对不合理的要求,要给予否定。