Scrum敏捷软件开发模型敏捷软件开发模型
下面是我对于 Scrum 的学习、理解及总结,参考了 Scrum 指南和一些书籍,并加入了自己的一些理解,希望对自己有用。
Scrum 是以经验过程控制理论为依据,采用迭代、增量的方法来提高产品开发的可预见性并控制风险。Scrum 的三大支柱支
撑起每个经验过程控制的实现。
第一大支柱是高透明度
高透明度确保管理结果的人看得到那些影响结果的过程方面。这些过程方面不仅要透明,而且那些被观察到的方面也必须被充
分了解。这就是说,当某人检验某个过程并认为完成了某些任务时,这个完成必须等同于他们的完成定义。
第二大支柱是检验
开发过程中的各方面必须做到经常性的检验,以确保及时发现过程中的重大偏差。在确定检验频率时,需要考虑到检验会引起
所有过程发生变化。当规定的检验频率超出了过程检验所能允许的程度,那么就会出现问题。幸运的是,软件开发并不会出现
这种情况。另一个因素就是检验工作成果人员的技能水平和勤勉程度。
第三大支柱是适应
如果检验员经检验发现过程中的一个或多个方面不满足可接受标准,并且最终产品是不合格的,那么检验员就必须对过程或是
材料进行调整。调整工作必须尽快实施以减少进一步的偏差。
Scrum 中有三个进行检验和适应的时刻: 每日例会是用来检验朝向 Sprint 目标的工作进程,调整以优化次日的工作价值。另
外,Sprint 评审和计划会议是用来检验朝向发布目标的工作进程,调整以优化下一个Sprint 的价值。最后,Sprint 回顾会议是
用来评审完成的 Sprint,并确定什么样的调整可以使下一 Sprint 的效率更高、结果更令人满意和更易于工作。
Scrum 团队的目标是提高灵活性和生产能力。
敏捷价值观:
个体与交互 重于 过程和工具
可用的软件 重于 完备的文档
客户协作 重于 合同谈判
响应变化 重于 遵循计划
“敏捷开发”一词源自《敏捷宣言》。
Scrum 角色(Scrum Roles):
流程经理(Scrum Master):ScrumMaster 负责确保 Scrum 团队遵守 Scrum 价值、实践和规则;帮助 Scrum 团队和整个组织
采用 Scrum;通过指导和引导,教授 Scrum 团队更高效工作、生产出高质量的产品;帮助 Scrum 团队理解并采用自组织和跨
职能。
产品负责人(Product Owner):产品负责人是管理产品待办事项列表、确保团队工作价值的唯一责任人。
团队(Scrum Team):开发人员组成的团队负责在每个 Sprint 将产品待办事项列表转化成为潜在可交付的功能增量。
团队的 Team Leader 就是 ScrumMaster。团队的理想规模是7(±2)人。产品负责人和 ScrumMaster 这两个角色不计入成员人
数,除非他们也是“猪”。Scrum 团队成员被称为“猪”。产品负责人是产品待办事项列表的“猪”。团队是 Sprint 任务的“猪”。
ScrumMaster 是 Scrum 过程的“猪”。其他人被称为“鸡”。“鸡”没有权利要求“猪”如何去开展工作。
“鸡”和“猪”的比喻来自于以下的故事:
一只鸡对一头猪说:“我们合伙开家饭店吧!”猪想了想,说:“那我们给这个饭店起什么名字呢?”鸡说:“鸡蛋和火腿!”猪回答
到:“那还是算了吧,你要做的只是下几只鸡蛋,我把命都搭上了!”
时间盒(Time-Box):
发布计划会议(Release Planning Meeting)
目标: 发布计划会议的目的是建立 Scrum 团队与组织内的其他部门能够理解和沟通的计划和目标。
主持人: 产品负责人
参与者: ScrumMaster、团队全体成员