针对Scrum相关内容整理如下:(持续更新补充)
目录
定义
Scrum是迭代式增量软件开发过程,通常用于敏捷软件开发。
角色
Scrum Master (Scrum推动者):
- Scrum教练和团队带头人,确保团队合理的运作Scrum,并帮助团队扫除实施过程中遇到的障碍。
Owner (产品负责人):
- 确定产品的方向和愿景,定义产品发布的内容、优先级及交付时间,为产品投资回报率负责。
Developer (开发者们):
- 由开发者组成,人数5-9人,团队拥有交付可用软件需要的各种技能。
四个会议
Sprint计划会(Sprint Planing)
- 进行需求讲解。
- 挑选PBI(product backlog item),也就是由客户选出重要的PBI。
- 拆解PBI到SBI(sprint backlog item)。
- 讨论每个SBI的工时。
- team挑选本次Sprint任务。
每日站会(Daily Scrum) (询问自己三个问题)
- 从昨天Daily Scrum到这一刻,我完成了什么工作?
- 从这一刻到明天的Daily Scrum,我计划完成什么工作?
- 是否有什么困难阻碍了我的进展?
Sprint评审会(Sprint Review)
- 在 Sprint 结束后,大家一起评审本次 Sprint 的产出。每个人都可以自由发表看法,协助产品负责人对未来工作做出最终决定。并根据实际情况,适度调整产品待办事项列表。
Sprint回顾会(Sprint Retrospective)
- 在一次Sprint结束后,回顾一下团队在流程和沟通等方面的成效。大家一起讨论,哪些完成得好,哪些有待改进?
实施流程
- Step1. 拟定 Vision
- Step2. 维护Backlog
- Step3. 拆分Sprint
- Step4. 运行Sprint Plan
- Step5. 维护Daily Scrum
- Step6. Sprint Review
- Step7. Retrospective
工具
1. 站会
2. 看板
3. 演示
4. 用户故事
- 角色:谁要使用这个功能。
- 活动:需要完成什么样的功能。
- 商业价值:为什么需要这个功能,这个功能带来什么样的价值。
5. 持续集成
通用实践
- 客户成为开发团队中的一部分。
- 和所有其他形式的敏捷软件过程一样,Scrum有频繁的包含可以工作的功能的中间可交付成果。这使得客户可以更早的得到可以工作的软件,同时使得项目可以变更项目需求以适应不断变化的需求。
- 开发团队经常评估风险并制定缓解计划。在每一个阶段根据承诺进行风险缓解,监测和管理。
- 计划和模块开发要保持透明,让每一个人知道谁负责什么,以及什么时候完成。
- 参与者要经常开会以跟踪项目进展 – 平衡的(发布,客户,员工,过程)仪表板更新 – 利益所有者更新。你必须拥有预警机制,例如在可能延期交付时提出警告。
- 不要隐藏问题。认识到或说出任何没有预见到的问题并不会受到惩罚。
- 在工作场所和工作时间内必须全身心投入。– 完成更多的工作并不意味着需要工作更长时间。
敏捷价值观 (更重视左边)
- 个体与互动 -- 流程和工具
- 工作的软件 -- 详尽的文档
- 客户合作 -- 合同谈判
- 响应变化 -- 遵循计划
敏捷原则
- 客户满意
- 简洁
- 面对面沟通
- 持续改善
- 自组织
- 合作
- 交付价值
- 适应变化
- 反思回顾
- 短周期
- 激励信任
- 步调稳定
相关观点
- 敏捷是一种思想,一种态度,倡导简单设计,快速交付,价值导向,响应变化。一种思维方式:由价值观定义,由原则指导,通过许多不同的实践体现。更多的是一种态度而不是一个流程,是一种氛围而不是一种方法。
- 对我们而言,最重要的是通过尽早和不断交付有价值的软件满足客户需要。
- 我们欢迎需求的变化,即使在开发后期。敏捷过程能够驾驭变化,保持客户的竞争优势。
- 经常交付可以工作的软件,从几星期到几个月,时间尺度越短越好。
- 业务人员和开发者应该在整个项目过程中始终朝夕在一起工作。
- 围绕斗志高昂的人进行软件开发,给开发者提供适宜的环境,满足他们的需要,并相信他们能够完成任务。
- 在开发小组中最有效率也最有效果的信息传达方式是面对面的交谈。
- 可以工作的软件是进度的主要度量标准。
- 敏捷过程提倡可持续开发。出资人、开发人员和用户应该总是维持不变的节奏。
- 对卓越技术与良好设计的不断追求将有助于提高敏捷性。
- 简单——尽可能减少工作量的艺术至关重要。
- 最好的架构、需求和设计都源自自我组织的团队。
- 每隔一定时间,团队都要总结如何更有效率,然后相应地调整自己的行为。
- 敏捷就是永远只做对产品和项目有用的事情 。
- 敏捷开发不是一套一成不变的标准化流程,而更多的是一种自适应,自我优化的流程理念,不一样的团队有不一样的流程,所以实施前一定要根据自己团队当前状态做调整。