李泽刚刚出任项目经理,聊到叮嘱他一定要尊重客户,充分满足客户需求。项目开始比较顺利,项目也按照计划的轨道正常进行,客户相当满意。但进入后期,客户就开始了频繁的需求变更要求,给项目团队队增加了不少的额外工作。
到后来甚至越过李泽,直接与程序员沟通,程序员本来手头工作就多,加上客户不断的增加的要求,最后直接改程序,却不做任何记录,最终导致很多问题产生,大家都说不清系统被改成什么样了。
这个例子中存在的问题有很多。项目应以需求为核心,一个项目是否能够成功,对需求的准确把握在成功因素中要占上60%的比例。如果需求出现偏差很容易导致项目失败,项目开发过程中能够与客户建立有效快速的沟通渠道,是项目成功的关键。
需求必须获得客户的确认。通过需求调研与分析后获得的用户需求说明书,以及软件需求规格说明书都必须得到客户的签字确认。确认的内容包括项目的目标、范围以及项目需求功能点。
注意维护需求调研记录以及需求跟踪表。由于需求调研人不够专业,而项目经理以及需求分析负责人对这一过程还欠缺足够的重视,同时没有好的工具或流程来监控这一过程,使得需求调研记录没有发挥更大的作用。此外,需求跟踪也非常重要,毕竟,任何项目的需求都不是固定不变的,需求随时会发生变更,而开发人员实现的需求也可能会与客户的要求偏差。
项目组对于需求变更的响应不够及时,这一点项目经理与项目管理小组要担负一定的责任。
如何有效控制需求变更?
1、明确合同约束。
需求变更给软件开发带来的影响有目共睹,在与客户签订合同时,可以增加一些相关条款,如:限定客户提出需求变更的时间,规定何种情况的变更可以接受、拒绝或部分接受,还可以规定发生需求变更时必须执行变更管理流程。不能忽视合同的约束力。
2、建立变更审批流程。
项目中,人们往往不愿意为小的需求变更去执行正规的需求管理过程,认为降低开发效率,浪费时间。正是这种观念才使需求变更变得不可控,最终导致项目的失败。因此,小的需求变更也要经过正规的需求管理流程,否则会积少成多,积重难返。
明确需求变更审批环节、审批人员、审批事项、审批流程。凡未履行审批程序的变更,一律是无效变更不予受理。
3、分级管理变更。
项目开发中“客户永远是对的”和“客户是上帝”并不完全正确,因为客户所要求的可能并不能实现,而且任何新需求的变更和增加除了影响项目的正常进行以外,还影响到客户的成本投入收益。
当客户坚持变更新需求时,可以建议客户将新需求按重要和紧迫程度划分档次,作为需求变更评估的一项依据。向客户正式提交一份需求变更计划,注明变更引起的时间、成本、工期代价和增加工作量等。
4、安排专职人员负责变更管理。
如果没有专职人员,项目中其他人员可能因为工作原因不能随时与客户沟通。因此,需要安排一名专职的需求变更人员,负责与客户及时交流,跟踪和汇报需求变更完成进度和情况。同时,可以成立项目变更控制小组,负责裁定接受哪些变更,小组由项目所涉及的多方人员共同组成,应该包括客户方和开发方的决策人员在内。
5、告诉客户变更的代价。
要让客户认识到变更都是有代价的,例如:进度延迟、费用增加、效率下降等问题。一般来说,如果客户认为该变更是必须的,就会接受这些后果。通过与客户协商,这样开发团队即使没有回报,也不会招致公司和客户双方的埋怨。