什么是Scrum敏捷开发方法?
Scrum是一种广泛使用的敏捷开发方法,旨在提高软件开发和项目管理的效率。Scrum强调迭代、协作、自组织和透明度,使团队能够更好地应对不断变化的需求和复杂性。Scrum方法的核心思想是通过一系列短期周期来交付功能,每个周期通常称为Sprint,以便及早获取用户反馈、适应变化并提供高质量的产品。
Scrum中的角色
Scrum框架中有三个核心角色,每个角色都扮演关键的角色以确保项目的成功和敏捷开发的有效实施。
1、Product Owner 产品负责人,其核心职责有:规划产品的方向和路线图,决定产品要做什么。清晰的将产品的路线图、需求传递给开发团队。确保开发团队按照产品的路线图和需求,交付正确的产品。
2、Scrum Master,Scrum团队的Scrum教练,确保产品经理和团队按照敏捷的原则和实践开展工作。
3、Developers开发团队,核心职责:承诺并完成Sprint的目标。全权负责Sprint目标的实现,包括工作任务的规划、技术方案的确定,确保符合交付质量要求。按照敏捷的原则和实践开展工作。
Scrum的工件
Scrum框架中有三个核心工件,这些工件有助于确保项目的可见性、透明度和有效的协作。这些工件分别是:
1、产品Backlog,产品backlog是一个按照价值排序的需求清单。为了达成产品目标,所有的需求都需要放到产品backlog中进行管理和规划。由产品负责人负责管理和维护。
产品Backlog管理示例:
2、Sprint Backlog,Sprint Backlog是当前Sprint需要完成的产品Backlog条目,以及为了实现这些条目拆解出的任务。这些条目是从产品Backlog中挑选出的优先级最高的条目。
Sprint Backlog管理示例:
3、产品增量,每个Sprint结束时,团队交付一个可用的增量,即已完成的工作成果。这个增量可能是一个功能的一部分,或者是一个完整的功能,具体取决于团队的能力和Sprint目标。这个增量是可部署的,可以交付给用户,或者集成到产品中。
Scrum中的会议
Scrum框架中包含一些关键的会议,以促进团队协作、提高项目的透明度和支持敏捷开发。
1、产品Backlog梳理,对下个Sprint的需求进行需求细节梳理和精化,识别技术风险和依赖,完成估算和优先级排序。
2、Sprint计划会,确定Sprint目标和DoD。确定Sprint Backlog:用户故事、任务拆分。识别Sprint中的问题和风险,确定应对措施。
3、每日站会,这是每日的短会议,通常持续15分钟。回顾昨天团队目标和每个人的任务的完成情况。明确今天的团队目标和每个人的任务。识别障碍和问题。
4、Sprint评审会,向PO和干系人演示已经完成的用户故事,获得干系人的反馈,并确定已经达到可上线标准的用户故事。
5、Sprint回顾会,团队进行Sprint回顾会议,通常持续1到2小时。识别本Sprint的开发过程中存在的工作方式、方法问题,并确定下迭代改进计划。
sprint回顾会管理示例:
Scrum中的需求和迭代开发管理:
在敏捷系统内新建一个Scrum敏捷开发项目,在项目内新建一个产品Backlog看板,填写好看板名称,如下图:
需求看板创建完成后,系统会自动为您创建几个列表,列表一般代表需求的状态。
在Leangoo领歌敏捷看板上,我们可以根据实际场景自定义列表,通常我们会在在产品backlog看板中创建这几个列表:“用户故事池、用户故事-待梳理、用户故事-梳理完成、用户故事-实现中,用户故事-已完成”,通过列表流转,让团队直观的了解需求的优先级和规划安排。然后在每个列表上添加需求卡片,一个需求一张卡片。
下图就是一个产品Backlog示例看板:
上图需求卡片右下角的图标分别代表了这张需求卡片的工作量、对这个需求的一些讨论,以及需求的验收测试要点等。
Leangoo中,验收测试要点是以检查项的方式体现。
打开需求卡片,我们可以添加更多信息,比如:评论,检查项,开始截止时间、标签等,通过标签对卡片进行分类或卡片优先级排序。如下图所示:
在Leangoo中,每个需求卡片的优先级体现有两种方式:
1、由它的位置来决定,每个列表里面的卡片根据位置对卡片进行强制排序,高优先级的卡片放到最上面,低优先级的需求卡片在下面。
2、使用标签,标签可以自由命名,为标签命名后可直接将标签拖拽至卡片上即可一目了然的了解需求优先级。
用户故事添加完成后,团队可以对优先级较高的用户故事进行梳理。可以将完成用户故事需要的任务项添加到卡片内的检查项中,以便后续用户故事规划到Sprint中后,方便拆解成更小的任务卡片。
需求规划至迭代看板进行迭代开发
每个迭代开始前,我们需要将已梳理完成且优先级最高的用户故事规划到迭代看板内,以便准备迭代中需要完成的内容。
点击看板内“Sprint规划”按钮,将计划在“Sprint1”内做的用户故事拖拽到“Sprint1”看板内。
注:规划过的卡片左上角会有蓝色的规划标记。
Sprint规划完成后,点击进入Sprint看板,可以看到上一步已规划的用户故事已分别放置在独立泳道中,泳道可横向对应用户故事和拆分的任务。
Sprint开始后,团队根据这些用户故事相关信息(比如检查项、描述内的信息),将其拆解为更小的任务,然后大家各自领取开发。
通过列表流转,体现任务的进展及完成情况。
Scrum的优势和挑战
Scrum作为一种敏捷开发方法,具有许多优势,但也面临一些挑战。以下是Scrum的主要优势和挑战:
Scrum优势:
-
快速交付价值: Scrum采用迭代开发方法,每个Sprint周期结束时交付一个可用的增量,使团队能够快速交付高质量的产品或功能。
-
灵活性和适应性: Scrum鼓励团队适应变化,使其更容易处理需求变更和不确定性。团队可以在每个Sprint中重新评估和调整项目方向。
-
用户导向: Scrum强调与用户合作,及早获取用户反馈,确保项目按照用户需求进行。这有助于提供更具用户价值的产品。
-
协作和团队合作: Scrum鼓励团队协作和自组织,促进团队合作和跨功能性。这有助于提高团队的效率和创造力。
-
可见性和透明度: Scrum提供了项目的可见性,包括产品需求、Sprint计划、每日Scrum、Sprint评审和Sprint回顾等仪式,以确保项目状态对所有团队成员和利益相关者可见。
-
不断改进: 通过每个Sprint结束后的Sprint回顾,团队有机会识别问题并提出改进建议,以不断改进工作方式。
Scrum的挑战:
-
复杂性管理: Scrum要求团队自主管理和自组织,这可能对某些团队来说具有挑战性,特别是在处理复杂项目时。
-
文化转变: 采用Scrum需要组织进行文化转变,包括领导力、协作和团队合作的改变。这可能需要时间和努力。
-
明确的角色和责任: Scrum中的角色和责任需要明确定义和遵守,否则可能会导致混淆和问题。
-
需求管理: 管理产品需求可以是具有挑战性的,需要产品负责人具备清晰的愿景和优先级排序能力。
-
团队协作: Scrum依赖于紧密的团队协作,如果团队成员之间缺乏协作和沟通,可能会导致项目问题。
总的来说,Scrum是一种强大的敏捷开发方法,具有许多优势,但也需要克服一些挑战。成功实施Scrum需要组织的承诺、文化改变和培训,以确保团队能够充分发挥Scrum方法的潜力。