scrum软件过程基础浅析
就软件过程框架本身而言,scrum比较好理解,是一种迭代、循序渐进的开发方法,也明白这个框架充分重视了人作为开发主体的重要作用,即不是以文档驱动,而是故事点(代码任务或者说可演示的功能)驱动开发。但就实际而言,这个框架可能不太适合中国软件开发的“行情”,实际效果有待验证。
scrum简介
Scrum是一个轻量级的敏捷开发框架,是一个增量的、迭代的开发过程。其核心准则就是自我管理和迭代开发,可以最大化生产率。
Scrum特点
- 持续的设计、开发、集成和测试
- 跨职能的团队成员
- Sprint期间不允许需求变更
- 时间盒技术:迭代周期的期限是固定的,不延长迭代的时间
- 严格定义的开发节奏
Scrum好处
Scrum能让每个参与者都对自己所做的工作以及自己做出的贡献感到骄傲,并让他们发挥到最佳水平。
Scrum与XP的关系
Scrum注重的是管理和组织实践,而XP关注的是实际的编程实践,两者相互兼容且相互补充,如结对编程、测试驱动开发、持续集成等XP的最佳实践仍然可以在Scrum中使用。
scrum目标
通过高透明性、检验和适应性来管理复杂性、不可预测性和变化。
scrum框架
p.s. 354很好记
scrum的3个角色
scrum master
做为团队和外部的接口,解决团队开发中的障碍,保证各个角色及职责的良好协作,保证开发过程按计划进行,组织会议,并更新燃尽图
product owner
负责提出和维护产品Backlog
scrum team
SCRUM团队负责在每个Sprint中将产品Backlog中的条目转化成为潜在可交付的功能增量。自组织,跨职能,一般5-9个人
scrum的5个仪式
发布计划会议
只是确立大致交付日期和成本,之后每次迭代开始前均需要依据项目进展情况重新进行调整
确立项目整体发布目标和预期结果
确定产品Backlog条目、重大风险和发布所包含的全部特性和功能
敏捷工作量估算:规模计量单位使用故事点,是一个相对值(区别于传统的人天估算)
- 计算团队速度:一个迭代中团队完成的故事点总数
- 计算迭代周期数:所有故事总的故事点数/团队速度
- 计算项目成本:每个迭代的成本 * 迭代周期数
根据工作量估算确立大致交付日期和费用
Sprint计划会议
确定做什么
介绍最高优先级的产品Backlog条目;选择产品Backlog条目,确定Sprint目标
- 选多少:Sprint计划完成故事点数 = 团队速度 * 120%(120原则)
- 选什么:新用户故事占70%,bugs和技术债务占30%(70/30原则)
确定怎么做
团队成员将产品Backlog分解为多个1天以内可以完成的任务,细分的任务构成Sprint Backlog
每日站会
这个图看起来挺有意思的,精准展现了每日站会,所以贴上。从中也可以看出,敏捷团队的规模只是5-6人左右(还有程序员真的是聪明绝顶(bushi)),中间红衣服的人最有可能是scrum master,纯属猜测。
由scrum master主持,每个开发成员会被问三个问题:
- 昨天做了什么?
- 今天打算做什么?
- 工作中遇到了哪些问题?
前两个问题的目的是维护任务状态,哪些已完成,哪些未完成。但注意,每日站会不是进度汇报,而是Scrum成员互相的承诺;不是系统设计讨论,遇到的问题应会后解决;会议还应注意时间和效率(10-15分钟),确保 “鸡” 的角色不允许在会议上发言过长。
“鸡的角色”,描述得有点形象,有可能暗示只说不做,不了解任务实现难度,滔滔不绝的人。下面的图emmm很直观
Sprint评审会议
- 团队按Sprint Backlog中的条目,为产品负责人或是用户逐个地介绍结果、演示新功能。演示不是验收,目的是收集反馈
- 如果产品负责人或客户想改变功能或对功能有新的想法,则添加新条目到产品Backlog中
- 将还没能解决的问题加入到问题Backlog列表
Sprint回顾会议
通过总结以往的实践经验来提高团队生产力
以头脑风暴的方式Review Sprint过程和结果,发现和列举存在的问题
参会人员投票决定需要在下个Sprint中解决的1-3个问题, 探讨解决方案,确定实践方式
回顾是团队的定期自我审视(p.s. 审视这个词很妙)
scrum的4个工件
产品 Backlog
SprintBacklog
Sprint 燃尽图
发布燃尽图
scrum工作流总结
前期
产品负责人整理业务需求,形成Product Backlog库
执行
- 以Sprint为单位迭代式地完成Sprint Backlog
- 每个Sprint以Sprint Planning开始,通过每日例会跟踪进度和issue
- Sprint结束时进行评审,交付可运行的产品
后期
- 每个Sprint完成后,通过Sprint回顾发现问题和改进点
- 制定下个Sprint要引入的新的实践
- Post title:scrum软件过程基础浅析
- Post author:sixwalter
- Create time:2023-08-05 11:14:26
- Post link:https://coelien.github.io/2023/08/05/projects/general notes/scrum/
- Copyright Notice:All articles in this blog are licensed under BY-NC-SA unless stating additionally.