需求变更往往会对项目进度产生影响,可能会导致项目进度的重新评估、调整和重新开发已有功能,从而延长交付时间。如果忽视拒绝需求变更,会导致客户的不满和冲突。
因此如何更好地平衡两者间的冲突问题,迫在眉睫。一般来说,主要是从以下5个方面平衡需求变更与项目进度冲突问题。
1、深挖需求 获得真实需求
需求分析常见的误区是只关注客户告知的需求,而忽视了那些客户没有说出来的需求,即隐含的需求,例如环境条件、法规法令、性能要求等等。
挖掘客户的需求是一个主动的活动,不是被动的等待客户告诉你需求,而且客户描述的可能不是正确的需求,所以需要我们拨开迷雾,找出客户真正的需求,这就是挖掘的意思。
常见的挖掘需求的方法有客户问卷调查、原型展示、demo、场景描述、以及项目进行中的产品展示和回顾等等。从需求的种类上讲,有功能需求、性能需求、接口需求。
一个需求是否真实,通常可以通过回答以下4个问题来判断:
用户是谁?需求场景是怎么样的?用户遇到的问题是什么?用户想要解决的实际需求是什么?
以上四个问题对应了用户、场景、挑战和目的,能够回答以上四个问题是判断需求真实性的前提,即如果无法表述前面的问题就可以判定这不是一个真实需求。通过深入挖掘客户真实需求,从而进一步减少后期可能的需求变更。
另外我们可以使用开发工具,快速提高需求分析质量和效率。如CoCode开发云使用GPT技术,通过需求条目化和自动分解子需求功能,将用户需求一键自动生成标准用户故事,并自动导入需求。
而平台的需求分析工具,使用AI,通过需求测试和一致性检测,能够在几分钟内快速分析用户需求缺陷,如歧义、重复、遗漏、不一致和复杂性等问题,精准锁定需求缺陷,从而更高效地修改缺陷,提高用户需求质量。
2、构建规范有效的需求变更流程
首先需要提前建立需求基线,这是需求变更的依据,制定简单、有效的需求变更控制流程。在前期与用户签订合同时,可以增加一些相关条款,如限定用户提出需求变更的时间,规定何种情况的变更可以接受、拒绝接受或部分接受,还可以规定发生需求变更时必须执行变更控制流程,变更流程需形成文档。
成立项目变更委员会(CCB)或职能相关的类似组织,负责裁定接受哪些变更。一般变更委员会是由用户方和开发方的决策人员组成。 需求变更一定要先申请再评估,最后经过与变更大小相当级别的评审确认。并组织团队讨论和评估新增需求对项目的影响和风险,评估需求引起的工作量。如果新需求属于项目范围蔓延,需要商务拟定合约和修改价格。
针对需求更变,需要及时建立统一的反馈渠道。需明确各方对变更需求的了解和要求,减少各方的沟通成本,降低需求变更对工作的影响。
3、优先级管理
针对需求变更,我们需要深入了解和沟通项目各利益相关者,包括项目发起人、团队成员、客户、供应商、社会群体等,真正了解他们的需求、目标和利益关系。可以参考利益相关方的优先级来确定需求优先级,对于那些对项目成功至关重要的利益相关方,可以将他们的需求放在更高的优先级上。
另一方面也可以秉承需求紧跟核心业务指标,按照一定的规则和方法进行优先级的划分。常见评判需求优先级规则有:四象限法则、KANO模型、二八原则、产品生命周期法、ROI评估法。如重要紧急的需求,其对项目影响较大,我们需第一时间进行处理,并设为较高的优先级别。
4、敏捷开发方法
敏捷开发强调迭代和增量的开发方式,通过将开发工作划分为多个迭代周期,并在每个周期交付一个可用的增量版本,团队可以更好地应对需求变更。在每个迭代结束时,团队与客户进行反馈和确认,以便及时调整和改进需求。
敏捷开发方法强调团队的协作和灵活性,团队成员应密切合作,及时交流和共享信息。当出现需求变更时,团队成员应及时沟通和协调,共同制定适当的应对策略。通过敏捷方法和团队协作,团队可以更好地应对需求变更,并在保持项目进度的同时满足客户的需求。
5、风险管控
在明确需求变更背景、目的后,需与利益相关者和项目团队进行深入沟通,了解需求变更的具体内容,明确需求变更对项目的影响范围,并进一步分析需求变更对关键路径、资源调配、其他项目约束条件的影响以及对项目风险的潜在影响。
对于每一个需求变更,都要思考其可能会带来的风险,这可能包括技术风险、组织风险、资源风险、时间风险、安全风险等。而可能导致风险的各种因素可能来自于需求本身的不确定性、团队能力、技术可行性、外部环境等。 我们需根据变更的影响范围和可能的风险因素,对变更的风险进行评估,包括风险的可能性、影响程度和优先级。
需要注意的是,平衡需求变更与项目进度冲突问题是一个动态的过程,需要与团队成员、利益相关者保持及时透明的沟通,以确保团队成员能够灵活应对变更,确保项目进度正常施行;而利益相关者能够理解和接受需求变更,制定出各方合理且认可的解决方案。