项目管理中如何应对用户频繁的需求变更?
按照用户提出的要求,结合实际,整理了需求文档并达成一致。在半月之后提交了一个版本,并在正式环境中连续测试了几天。在测试的过程中,用户高层领导不停的提出了新点子,新功能。为了切合实际的配合用户,小邹他们也准备好了应对措施。
由于高层领导关注整体,对开发细节不关心,经常要求进度。在开发测试的过程中,小邹他们也不断的发现了相关的bug以及开发设计之初没有考虑过细节问题。领导的不断催促,为了追求进度,开发逻辑和业务逻辑耦合性在后续中并没有按照软件工程学要求进行,导致产品质量有问题。后续还不停的进行更改与修复。
对于该项目,作为项目经理的你,该如何进行应对呢?
对于IT人员,特别是做项目管理的,难免会提出一个问题:客户为什么总是反反复复改需求。在自己的软件项目管理职业过程中,几乎天天面对用户的需求变更,切身感受到,如果不能有效处理这些需求变更,项目计划会一再调整,软件交付日期一再拖延,用户的耐性渐渐消失,研发人员的士气也越来越低落,最后所有的人都在等待一个结果:项目最好马上结束。
对于需求变更应该做到主动管理,具体来说:
1、在项目合同中,成立变更控制委员会(CCB),并规定严格的变更控制流程。一般而言,在合同阶段,客户是很乐意接受这种规范的管理方式的。
2、取得了合同阶段的主动后,在实施阶段的严格执行也很关键。不能因为严格执行变更流程,就影响和客户的关系,这方面就要依靠项目经理和技术经理的的管理和沟通艺术。我们的目的不是让用户不提出变更,而是让用户不轻易,随便的提出变更。
3、对于用户提出的变更,可以看实际情况处理,站在客户立场上为客户考虑,有些需求,是可以引导客户在后期的项目中实现,这样也可以为公司带来好的项目机会。
在不断的学习和实践中,我总结了两点比较有效的方法,在软件研发阶段能够较好地解决这方面的问题。
1、需求分析阶段通过原型明确用户需求
在软件项目的需求分析阶段,有大量需求信息需要收集、筛选、加工,这是需求管理的开始。客户和研发两方面的人员对需求的理解呈现“大体上共识多,细节上差异多”的特点。即使通过反复沟通,最终在时间表限制之内也能拿出一份“用户需求说明书”,但是以实践经验,用户需求的描述永远是“不够清晰”、“不够明确”的。这主要是因为在这个阶段,所谓的产品都在大家的大脑中构思,在此阶段,原型开发是一个较好的辅助手段,它将存在于大家头脑中的虚境实实在在地表达出来,一个界面,几个控件,外观形式固定了,功能描述明确了,这就是研发部门对用户的需求理解。此时与用户再次沟通,用户基本上可以说出来:“这是我想要的”,或者“不,这不是我想要的,我要的是……”。一般情况下,原型之后的需求沟通就实际得多,双方的理解迅速向一个折衷方案靠拢,一个可以指导研发过程的需求说明书正式诞生了。
2、采用严格的需求变更管理流程
一旦需求分析阶段结束,此后如果用户要求有新的需求加入交付的软件系统中,需要走需求变更管理流程。这个流程必须在软件项目成立之初与用户约定好,一般的软件企业内部有需求变更的管理流程,可以向用户解释这种管理的必要性,直至与用户就此问题达成共识为止。不必担心用户不会接受,有过多次成功研发软件项目经验的需求变更管理流程,有着它不容置疑的合理性,这正是软件企业的经验和价值所在,用户最终会理解和同意的。
在此提醒大家,切忌对用户提出的需求拍胸脯,在此之前可以扪心自问:“如果拍了胸脯,以后不能按时完成,我能不能负担全部责任?”这样冷静一下就不会胡乱应承了。有一个比较好的方式减少这样的麻烦,就是在需求分析阶段之后,与用户不要亲密接触,而是按照软件项目的周期,或者双方在初期的约定,定时通报软件研发的进展。如果软件研发采用迭代式开发,就可以在每一期交付产品发布时做这个事情,征询到的用户需求将纳入以后某期的软件版本中。