Scrum项目最佳实践
1.1 Scrum项目实践概述
Scrum适用于敏捷开发模式的研发管理平台,通过短周期持续交付,快速响应需求和市场变化。Scrum迭代流程包括需求规划、迭代计划、迭代开发、敏捷回顾四个阶段。
1.2 需求管理
1.2.1 敏捷需求管理的四个关键词
- Epic(史诗):项目的愿景目标,具有战略价值,通常需要数月完成。
- Feature(功能特性):带来价值的产品功能和特性,具有业务价值,通常需要数周完成。
- Story(用户故事):从用户角度对产品功能的详细描述,具有用户价值,通常需要数天完成,并符合INVEST原则。
- Task(任务):团队成员要完成的具体任务,通常在一天内完成。
Epic-Feature-Story-Task是一种将需求进行结构化管理的方法,使用时从上到下逐层分解,形成自下而上的依赖。
1.2.2 软件项目需求变更频繁时的需求管理
- 问题分析:需求变更频繁的原因包括需求杂乱、优先级调整、需求遗漏等。
- 解决措施:
- 需求结构化管理:使用CodeArts提供的Scrum项目模板,以产品或系统的功能特性为脉络建立需求结构。
- 需求优先级管理:确定优先级模型,排定需求优先级顺序,调整和改进优先级模型。
- 避免重要需求遗漏:事前做好需求结构化管理和优先级管理,事中根据情况处理,事后进行复盘总结。
1.2.3 需求结构化管理
- 目的:在需求较多且存在关联时,进行结构化管理,方便维护和关联。
- 依据:以产品或系统的功能特性为脉络建立需求结构,通过工作项的属性管理版本、客户、模块等信息。
1.2.4 需求优先级管理
- 四步走:确定优先级模型、排定需求优先级顺序、调整需求优先级顺序、改进优先级模型。
- 优先级模型:可以使用成本收益分析、重要/紧急四象限、Kano模型等。
- 优先级顺序:根据优先级模型进行计算和排序。
1.2.5 避免重要需求遗漏
- 思路:分析遗漏原因,采取事前、事中、事后措施。
- 事中处理:根据紧急程度和影响,采取不同措施。
- 事后处理:复盘总结,找到根因,改进流程。
- 事前处理:做好需求结构化管理和优先级管理,以及相关规范宣导和人员培养。
1.3 迭代计划
1.3.1 合理规划Sprint时间盒
- 背景:团队Sprint时间盒为一周,但经常无法完成目标。
- 问题分析:Sprint时间过短,团队成员忙于会议,时间过长则失去短时间盒的优势。
- 解决措施:将Sprint时间盒改为两周,并优化用户故事大小和四大事件效率。
- 时间盒建议:一周到两周适用于新产品研发团队,两周适用于节奏相对稳定的团队,三周到四周适用于节奏稳定的团队。
1.3.2 移动迭代中需求变更后看板中的任务卡片
- 正常情况:使用看板控制WIP数量,拉动式移动任务卡片。
- 需求变更情况:
- 不接受变更:保持团队专注,正常移动卡片。
- 拥抱变更:
- 变更少、影响小的需求:评估工作量,做等价交换,替换低优先级需求。
- 变更多、影响大的需求:停止当前Sprint,重新规划新Sprint。
1.4 迭代开发
1.4.1 管理突发性任务
- 背景:开发团队如何管理突发性工作。
- 问题分析:突发性工作与开发工作混合,或由客户提出并需要优先处理。
- 解决措施:
- 明确需求责任人:产品经理负责理解需求、与团队沟通、做出经济决策。
- 梳理Backlog:高优先级的Backlog放到迭代待办列表中先做。
- 重新定计划:确保开发团队容量适合,合理更新迭代目标。
- 迭代回顾:识别改善点,持续改善。
- 人才培养:向跨职能型团队努力,提升成员T型能力。
1.4.2 解决任务没人领取的问题
- 背景:敏捷开发中开发任务是团队领取的,但可能出现任务没人认领的情况。
- 问题分析:敏捷开发强调自组织,任务没人认领的原因包括难度大、超范围、担心受到指责等。
- 解决方案:
- 开发任务难度大:进行任务分解,使用探针Spike技术,或鼓励结对编程。
- 开发任务超范围:维护成员技术矩阵,定期组织技术分享,采用结对编程。
- 担心受到他人指责:贯彻以团队为整体的思想,强调Scrum的价值观,鼓励成员选择有挑战性的任务。
1.5 敏捷回顾
1.5.1 玩转每日站会
- 背景:企业项目团队每天开站会,但效果不理想。
- 问题分析:团队不清楚站会的核心价值和实践方法。
- 解决措施:
- 理解站会价值:每日站会是团队对每天工作检视和调整,提前进行自组织。
- 明确正确站会:团队成员轮流发言,回答三个问题:昨天做了什么、今天计划做什么、遇到了哪些问题和障碍。
- 最佳实践和关键点:参考“站会18key”,包括人员、过程与方法、工具与设备等方面的关键点。
1.6 成员管理
1.6.1 新人培养和管理
- 背景:项目团队人员变动频繁,新员工需要有效培养和管理。
- 问题分析:新员工加入需要诸多方面的培养,老员工离职导致技术和业务断层,员工内部转岗或转变业务技术方向。
- 解决措施:建立信息管理库,包括团队信息、工作方式、知识管理。
1.6.2 管理项目成员的权限
- 背景:客服管理成员权限分配和添加。
- 解决措施:
- 云服务级权限:通过统一身份认证服务(IAM)设置。
- 项目级权限:通过需求管理服务设置。
- 成员添加和角色分配:在项目管理中设置角色,并将成员添加到项目中并分配角色。
1.7 附录
1.7.1 参考文档
2 看板项目最佳实践
看板协作是一种轻量、灵活和简单的团队协作方法,将项目的需求、缺陷和任务可视,团队通过移动工作卡片的方式更新工作进展。
模拟案例
规划一个周期只有一个月的看板项目,以商城管理为例做需求规划。
操作流程
- 项目经理创建项目。
- 项目经理添加项目成员并分配角色。
- 项目经理创建迭代。
- 项目经理添加并分配工作项。
- 认领人处理工作项。
3 IPD系统设备类项目最佳实践
IPD系统设备类预置了华为集成产品管理开发的最佳实践,针对系统设备类提供结构化研发流程。
3.1 IPD系统设备类项目实践概述
IPD系统设备类项目管理流程包括客户原始需求管理、产品特性树管理、研发需求分解分配、基线、变更、跨项目协作等关键特性。
3.2 如何理解IPD系统设备类的需求模型
RR、FE、IR、SR、AR是需求模型中的工作对象,分别代表不同类型的需求。
3.3 原始需求管理实践
- 介绍:RR客户原始需求来自公司内部和外部的客户诉求,需要承接人分析后作出决定。
- 名词解释:归属内部、提给外部、分解子需求/关联子需求、承接人。
- 模拟案例:某公司计划推出一款智能手表,研发周期较长,研发过程涉及多个部门、多团队的协作。
- 创建原始需求:根据来自公司内、外部客户的原始诉求,按照“归属内部”和“提给外部”进行分类并将其录入创建原始需求。
- 处理原始需求:包括分析、规划、实现、交付、验收、关闭等环节。
- 编辑原始需求详情:
- 关联项:原始需求与各种工作项产生关联关系。
- 评审:原始需求的受控字段需要走评审流程才能修改。
- 工时:记录任何工作项在作业过程中产生的人力投入。
4 缺陷管理最佳实践
缺陷管理是产品生命周期管理中非常关键的一环,华为基于多年沉淀的质量运营管理经验,打造出一套行之有效的缺陷管理优秀实践。
4.1 缺陷管理介绍
缺陷管理严格把控缺陷提出、分析、修复、测试、验收、关闭的完整流程,提供跨项目的缺陷作业跟踪追溯能力,实时识别产品缺陷风险。
4.2 模拟案例
某公司计划推出一款智能手表,研发周期较长,研发过程涉及多个部门、多团队的协作,如何保证缺陷在多个组织间的流转、最终达到有效闭环。
- 创建缺陷:缺陷被检测到之后,首先要做的就是将其录入缺陷管理系统。
- 分析缺陷:责任人查看缺陷信息,并根据缺陷所处的环境、故障现象等,定位出缺陷根因。
- 确认缺陷:分析环节退回的缺陷,将进入“确认”环节,创建人可以再次编辑缺陷信息,并重新提交。
- 修复缺陷:缺陷流转到修复阶段后,将由责任人进行修复。
- 测试缺陷:缺陷修复后,还需要测试人员进行测试。
- 验收缺陷:测试通过后,如果测试人员和缺陷的创建人不是同一人,则缺陷还需要走回给创建人进行验收。
- 关闭缺陷:验收通过后,缺陷关闭,整个缺陷生命周期到此结束。
- 激活缺陷:有些缺陷可能会重复出现,这时可以再次激活原先已经闭环的缺陷,重启缺陷作业流程。
- 协同下发缺陷:一个缺陷涉及多个部门的情况,可以通过协同下发功能,将同一个缺陷下发给各相关方。
5 HE2E DevOps实践:管理需求
5.1 方案概述
华为端到端(HE2E)DevOps实施框架,是结合了多年研发经验并集合了业界先进的实践所形成的一套可操作可落地的敏捷开发方法论。
5.2 准备工作
以“DevOps全流程示例项目”为例,介绍如何在项目中管理需求。
5.3 管理项目规划
- 管理需求规划:为新需求创建工作项,并将其加入需求规划视图。
- 管理迭代规划:创建迭代,规划迭代,分配Story,分解Story。
- 监控和跟踪项目状态:通过每日站立会议、迭代评审会议、仪表盘跟踪项目进展。
5.4 管理项目配置
- 管理项目通知:配置任务分配通知,确保成员及时处理任务。
- 定制项目工作流程:为Story添加状态,如“验收中”。