Scrum敏捷开发
1.scrum是什么?
Scrum 是一种团队管理工作的方式,其将工作分解为较小的工作单元,并在周期性固定的时间段内持续地交付工作单元。
在进行详细解之前,我们需要先了解几个基本术语。
上面描述的周期性固定的时间段,称为迭代(Iteration)或者冲刺(Sprint)。
上面描述的较小的工作单元,称为用户故事(User Story)。
用户故事可以使用特定的格式来描述,其描述了一个对于客户有价值的工作,而且可以在一个迭代周期内完成。
2.Scrum框架结构
Scrum 的框架结构通常由 “3 of 3s” 组成,即 3 种角色,3 种事件,3 种工件。
3 种角色(Roles)
开发团队(Development Team):一个自组织的跨技能的小团队,承担实际开发工作,负责在周期性的迭代中不断的交付有价值的工作。开发团队通过集体共同交付价值,而不是通过个体。
产品负责人(Product Owner):产品负责人是产品最终用户的代表,负责确定产品的方向和愿景,定义产品发布的计划、内容和优先级。Product Owner 要不断的与开发团队沟通,保证团队在做从业务角度来说最正确的事情。
Scrum 教练(Scrum Master):Scrum 定义了一个全新的全职工作角色 Scrum Master。Scrum Master 负责确保团队合理的运作 Scrum,帮助团队移除实施中的障碍。
3 种事件(Events)
迭代计划会议(Sprint Planning Meeting):在每个迭代之初,开发团队和 Product Owner 共同来计划在迭代周期内要完成的工作。Product Owner 负责向团队讲解要完成的工作的内容,开发团队负责对工作进行估计。
每日站立会议(Daily Standup Meeting):每天,开发团队和产品负责人都要进行一个短暂的沟通。在会议期间,每个团队成员都要回答 3 个问题:“我昨天做了什么?”,“我今天准备做什么?”,“我遇到了什么问题?”。
迭代评审会议(Sprint Review Meeting):在迭代周期结束时,开发团队向产品负责人及所有干系人进行演示,并接受反馈。
3 种工件(Artifacts)
产品待办列表(Product Backlog):这是一个 Product Owner 想要交付的产品功能列表。 Product Owner 负责维护该列表,并且列表项按照交付优先级进行排序。
冲刺待办列表(Sprint Backlog):这是一个迭代计划会议的输出,包含开发团队在迭代周期内所要完成的工作列表。
产品增量(Product Increment):每个迭代周期都需要交付高质量的产品增量。产品增量必须满足 Scrum 团队对完成标准(Definition of Done)的定义。
随着时间的推移,Scrum 的 “3 of 3s” 框架也在不断的扩展。比如,很多团队发现在迭代结束时,通过回顾会议可以改进团队以交付更大的价值。所以,现在迭代回顾会议已经成为了框架中第 4 种会议。
迭代回顾会议(Sprint Retrospective Meeting):在迭代周期结束时,Scrum 团队通过会议来对迭代的过程进行总结,以促使团队自我持续改进。
产品待办列表精化会议(Product Backlog Refinement Meeting):通过会议的形式,对 Product Backlog 进行精化,以促进和加深团队对产品的理解。
项目计划会议(Project Planning Meeting):项目启动会议。 产品发布计划会议(Product Release Planning Meeting):制定产品发布的计划。
3.Scrum的优势
Scrum使得我们能够专注于如何在最短的时间内实现最有价值的部分。
Scrum使得我们能够快速的经常的监督实际产品发展的状况。
团队按照商业价值的高低先完成高优先级的产品功能,并自主管理,凝结了团队智慧创造出最好的方法因而提高效率。
每隔一两周或者一个月,我们就可以看到实实在在的可以上线的产品。此时,就可以下一步的决定是继续完善功能实现更多的需求或者直接发布了。
4.Scrum的缺点
不利于产品发展。开发人员满足于开发眼前需求,缺少对产品的整体认识,对产品发展的贡献不足;
不利于开发人员的成长。需求一个接一个的开发,纯粹为开发需求,缺少沉淀和总结,开发人员很累;
缺少团队合作。每个开发人员各自为战,欠缺开发人员之间的沟通。