Scrum是一种用于开发创新产品和服务的敏捷开发方式,我们首先来看一下敏捷开发过程和特点,并着重介绍Scrum框架的角色、活动和工件等内容,然后介绍团队利用TAPD中的需求管理、缺陷管理、迭代管理等应用功能来帮助团队有效实践Scrum敏捷开发。
何为敏捷开发?
敏捷开发所倡导的是通过若干个短期的迭代周期(也称为冲刺sprint,范围一般是1周- 1个月),按一定的优先级不断增量开发和实现产品功能,每次迭代获得一个可运行的产品增量功能包。
敏捷开发首先需要建立一个按优先级排列的产品列表,其中由产品需求、功能优化或功能缺陷等类型清单项组成,排在前面的是优先级高的项,优先纳入迭代计划进行实现,这些项在纳入迭代计划前进行分解和细化,达到满足开发团队实现的粒度。
越往后排的项优先级越低,这部分需求暂时不会提上开发实现日程,当前阶段可以粗略描述,也不必急于细化,以应对可能的变更。
每次迭代起始阶段,从产品列表中选取一定数量的清单项作为本次迭代需要完成的目标任务,通常是由各方利益相关者讨论决定的,数量的多少视开发团队的情况而定,尽量匹配开发团队的开发节奏。
迭代过程中开发团队每天通过站立会的形式沟通工作进展和面临的问题,在这期间一般不再接受新的产品项或其他开发任务,特殊情况可以接受任务的置换。
在每次迭代结束时,团队一起评审已实现的产品功能等工作项,并根据反馈优化当前的工作和开发方式。在这过程中,需要对产品列表进行持续的维护和梳理,比如插入新的需求、更新现有产品功能描述或移除不需要的工作项,并重新排列其优先级。在每次迭代结束后,开始规划下一次迭代内容,重新开始整个过程。
Scrum框架
Scrum是敏捷开发方式的一种,在其框架中定义了三种角色:
产品负责人:负责敲定开发什么,以什么顺序开发,产品列表的维护主要由其负责维护;
ScrumMaster:帮助团队成员理解并乐于接受Scrum的价值观和原则,指导和协助Scrum框架在组织内的执行和优化;
开发团队:包括了架构师、开发人员、测试人员等传统软件开发角色。开发团队作为一个整体,负责构建可工作的软件产品;
下图说明了Scrum框架中的角色、活动和工件:
-
产品负责人建立产品愿景,并通过梳理形成产品列表;
-
冲刺(迭代)起始时,通过冲刺计划会议圈定本次冲刺包含的开发工作,即冲刺列表。冲刺列表需要得到开发团队的确认;
-
开发团队接受到冲刺列表后,即开启冲刺执行活动,在冲刺过程中每天通过站立会进行计划的检查和调整;
-
冲刺执行结束时,产出一个可交付的产品增量;
-
冲刺结束时,还需要通过冲刺评审和冲刺回顾对构建的产品进行审查和对执行过程进行回顾和优化。
使用TAPD进行Scrum开发实践
TAPD上的应用主要包括需求管理、缺陷管理、迭代管理、故事墙、wiki以及报表等,利用这些TAPD应用功能,可以方便有效地实践Scrum敏捷开发过程。
1. 产品列表
Scrum框架中的产品列表的项在TAPD中主要来自于需求和缺陷两个中的管理内容,每个冲刺清单都从这两部分工作中挑选和分配,其中:
需求清单主要记录产品的功能需求、技术研究、以及非功能性需求等,通过需求分类进行归类管理,还可以通过子需求的方式对粗粒度的需求进行分解和细化,对优先级的设置对需求项进行排序,另外也可以自定义视图来筛选指定范围的需求项,主要界面如下:
缺陷管理主要记录已实现产品功能bug等,通过定义缺陷的录入模板,明确缺陷的记录内容,包括问题描述、排查过程、解决方案等,同样可以定义视图筛选指定条件的缺陷清单等,界面如下:
2. 冲刺计划与执行
在TAPD中通过迭代管理来实现在冲刺的计划和执行,创建迭代时定义本次迭代的目标,并从需求和缺陷两个列表中选取高优先级的项分配到冲刺计划中,每个任务项落实到开发团队中的具体人员。在执行过程中,每个需求任务的状态遵循规划中 →实现中 →已实现/已拒绝流程变动,每个缺陷任务的状态遵循新 →接收处理 →已解决 →已验证 →已关闭流程进行变动,通过对每个任务状态进行更新和跟踪,实现对冲刺计划跟踪与控制。
另外TAPD提供故事墙的形式展示冲刺计划,包括了状态故事墙和资源故事墙,通过资源故事墙可以了解开发团队中每个人的任务情况与进展,每天可以根据此故事墙的展示内容来各自说明负责的工作情况和难点问题。
3. 冲刺回顾和知识沉淀
在冲刺结束阶段,通过冲刺评审和回顾对当前冲刺的成果和过程进行反馈和整理,利用Wiki应用记录冲刺回顾的内容和相关技术知识的整理内容。项目团队所有人都可以访问和更新,并且支持全文搜索,非常方便使用关键字查询。开发团队通过对冲刺的评审,确认产出的成果;通过对冲刺的回顾,找出执行过程的不足并加以优化;通过对业务和技术知识的沉淀,加速相关知识在团队成员之间的流动。
总结
Scrum框架并不定义标准化过程,不能保证团队在依照其步骤一步一步执行后,就一定能在规定时间内产出一个客户满意的产品。相反,每个团队必须结合自身的情况,不断摸索和改进,才能在基于Scrum敏捷框架之上建立一套特有且有效的实践方法,形成自身的Scrum版本。
作者:李灏
往期回顾
嘉为出席GOPS全球运维大会:运维巅峰时代,研运中台或是唯一选择
错误提示:网络连接问题?试试用netstat监控网络连接!
如何纳管与定义多云?
DevOps是如何实现效率的提升?
腾讯PaaS Influxdb节点迁移
原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/191006.html