《笔者带你剖析敏捷开发——Scrum》
前言
敏捷这个话题,已经热门很久了,笔者记得从08年开始就一直在断断续续的接触敏捷,但是究竟什么是敏捷,或许之前笔者自己也没有完全意义上弄清楚,它到底是一种技术?还是一种方法论?并且与传统的瀑布开发模式有什么不同呢?带着这些疑问,笔者陆陆续续、断断续续从不同的研发团队、项目中将这些零碎的信息点加上近段时间扩充的知识点进行了有效且合理的整合,为了更好的在技术团队中使用敏捷,感受敏捷所带来的好处,因此本篇博文就此诞生。
正文
或许经常看笔者博文的同学会觉得奇怪,笔者博文的格式一般都是采用小学生作文形式展开,优美的前言加上严谨的目录编排,为何这篇博文却木有目录?是这样的,毕竟笔者并不是一名专业的敏捷开发专家,因此也只能泛泛而谈,所以定目录会阻碍笔者编写博文的心情,请大家理解。
这样,先从前言的几个疑问开始。简单来说,敏捷它并不是一种技术,仅仅只是一种开发流程,和传统的瀑布模型不同,瀑布模型注重的是以文档为核心,也就是文档驱动,开发人员无论做什么都严格按照文档上规划制定的方案,有条不紊的执行。而敏捷是以人为核心,强调的是人与人之间的沟通(Face to Face)、项目迭代式开发。
其实所谓的迭代式开发指的就是将原本一个较为复杂的任务,根据任务周期划分为多个小任务,直到这个任务足够小,那么再以小周期的形式逐步完成这些小任务,这样每一个周期就是一次任务迭代,每次迭代产出的都是可以进行交付上线的产品。希望大家注意,使用敏捷开发只有一个目的,就是希望能够以一种有效且合理的软件开发流程换取技术团队高效的产出率,否则任何形式的开发流程都无意义。那么合理的运用敏捷,确确实实可以让你的团队充满激情,高效的代码产出率。
笔者本篇博文只会对Scrum进行讲解,不涉及XP。当然实际项目开发过程中,Scrum与XP往往是结合在一起执行的。Scrum开发流程中有3个非常重要的角色,如下所示:
1、产品负责人(Product Owner):明确具体需求,制定上线计划和产出内容,有权力Pass Scrum Team的产出;
2、流程管理员(Scrum Master):推进Scrum开发流程的实施与跟进;
3、开发团队(Scrum Team):在Scrum开发流程下进行具体施工;
下图为Scrum开发流程的详细试图:
图A-1 Scrum开发模型
图A-1中,2-4周指的是一次迭代过程(Sprint),也就是说,Scrum Team要把一次迭代的开发内容以最快的速度进行完成,因此这个过程我们称之为Sprint。那么就近应该如何玩转Scrum开发流程呢?首先Product Owner需要制定一个明确的按优先级顺序进行排列的需求列表,这个过程简称为Product Backlog;然后Scrum Team团队需要根据Product Backlog列表,做一个大致的人力预估和周期预估;紧接着,Scrum Team的技术负责人与Product Owner需要通过一个任务迭代会议( Sprint Planning Meeting)挑选出一个Story作为首次迭代的目标,由于Story还需要进行细化,因此最后会形成一个Sprint Backlog;Scrum Team会负责
Sprint Backlog,然而Scrum Team中的每一个成员会对Sprint Backlog根据需求进行更细粒度的划分,直到这个任务足够小为止,然后每一个任务所耗费的周期应该锁定在1-2天内消化掉,总之整个Sprint Backlog会在2-4周之内结束;Scrum Team在每天实施Sprint Backlog的过程中,每天上班的第一件事情就是进行站会(Daily Scrum Meeting),时间最好控制在5-15分钟,并且Scrum Team中的所有人都要轮流进行发言,阐述昨天做了什么,没完成什么,做完了什么,遇到哪些问题等,如果任务已经完成,则Sprint burn down,在黑板上进行更新;当一次Sprint Backlog完成,就意味着一次任务迭代结束,这时有必要执行一次演示会议,因为Product Owner需要进行验收,并有权利进行Pass。简单来说,这些就是笔者在实际开发过程中接触到的Scrum开发流程。站会形式如下:
图A-2 站会形式
这里说一下,小黑板是执行Scrum的关键,因为小黑板上明确了Scrum Team的进度,因此小黑板也可以称之为任务看版。简单来说,任务看版上可以划分为未完成、进行中、已完成等3钟类型的工作状态,分别用不用颜色的小卡片贴上去(每一个颜色的小卡片代表Scrum Team中的一个成员),并写明具体的任务计划,假设某个任务已经完成,那么就需要将小卡片贴到已经完成的区域中,其实这很清楚的就可以清楚团队中每一个人的工作进度,假设你的某一个任务点在未完成区域停留了多日,那么肯定是其中哪一个环节出现问题了。
图A-3 任务看板
最后再提及一点,在Scrum Team执行Sprint Backlog的过程中任何新增需求都不允许添加进来,Scrum Master需要进行严格把关,不允许开发团队收到骚扰。
相关推荐
**敏捷开发之Scrum扫盲篇** 敏捷开发是一种软件开发的方法论,强调适应性、灵活性和团队合作,以快速响应变化并提供高质量的产品。Scrum是敏捷开发中的一个框架,它以其高效、迭代和增量的特性深受业界欢迎。本文将...
敏捷开发与Scrum:一种高效的项目管理方法论 在当今快速变化的科技环境中,传统的软件开发方法已逐渐显得力不从心。以瀑布模型为代表的线性开发流程,因其过于依赖前期规划和文档,往往导致项目在后期面临大量不可...
Scrum敏捷方法一分钟扫盲 Scrum敏捷方法丨的工作产品 Scrum敏捷方法丨的觇色 猪不鸡的故亊 Scrum过程 读前预习内容 创建和维护产品待开収项(Product Backlog) 迭代计划会 产品负责人准备什么?...
### 敏捷开发方法 SCRUM 实战PPT #### 敏捷开发与SCRUM概览 敏捷开发是一种软件开发的方法论思想,强调快速迭代、适应变化以及用户参与。SCRUM作为敏捷开发的一种具体实践框架,它提供了一套指导原则和实践方法来...
Scrum是一种敏捷软件开发框架,它强调灵活性、协作和快速响应变化的能力。Scrum的核心理念是通过短期迭代(称为Sprints)和跨职能团队的工作来不断交付可用的软件,并在整个过程中密切与利益相关者合作。 **敏捷...
3. **角色定义**:书中详细解释了Scrum中的三种主要角色——产品负责人(Product Owner)、Scrum Master以及开发团队成员(Development Team),并探讨了这些角色如何在游戏开发环境中发挥作用。 4. **调整过程**:为了...
Scrum敏捷开发是一种被广泛应用的项目管理框架,尤其在软件开发领域中,它以其灵活性、高效性和迭代性受到赞誉。Scrum的核心理念是通过短期、可迭代的工作周期,即Sprint,来快速响应变化,持续交付价值。接下来,...
根据提供的文件内容,以下是关于SCRUM(敏捷开发模式)的相关知识点: ### 软件过程 软件过程是指为了构建高质量软件所需完成的任务框架。它包括一系列步骤,如定义任务工作步骤、中间产品、资源、角色、方法、工具...
当前非常流行的开发测试模式:敏捷开发模式Scrum的中文介绍PPT,看过之后应该对Scrum有一个很好的理解了。
系统分析师-敏捷开发方法 本文将论述敏捷开发方法在系统分析师中的应用,通过实践证明,在项目的开发中采用合适的敏捷开发方法可以有效地缩短开发时间,提高产品质量。本文将从以下几个方面论述敏捷开发方法的应用...
它提倡在变化的环境中快速适应,敏捷开发常与Scrum框架一起使用。Scrum是敏捷开发中最流行的实践方式之一,它是一种迭代式增量的软件开发过程,采用时间驱动的Sprint周期来进行管理。 敏捷思想强调涌现式需求,即...
公司内部的,敏捷开发Scrum培训文档,提供给小白看看
Scrum敏捷开发方法是一种以人为核心、迭代和增量式的软件开发框架,旨在提高团队的灵活性、效率和产品质量。Scrum最初是在应对瀑布模型在处理需求变更和团队协作方面的不足时发展起来的。瀑布模型强调严格的阶段顺序...
敏捷软件开发(scrum精髓)敏捷软件开发(scrum精髓)敏捷软件开发(scrum精髓)敏捷软件开发(scrum精髓)敏捷软件开发(scrum精髓)敏捷软件开发(scrum精髓)敏捷软件开发(scrum精髓)敏捷软件开发(scrum精髓)...
Scrum框架是一个灵活且高效的项目管理方法,特别适用于软件开发领域。它强调团队协作、自我组织和持续改进,以快速适应变化和交付高质量的产品。Scrum的核心在于迭代开发,通过一系列精心设计的会议和角色来确保项目...
图文并茂的介绍了敏捷开发及Scrum过程
Scrum是敏捷开发的一种代表性方法,它将敏捷思想应用于软件开发实践中,强调团队自我管理、灵活应对挑战和高度协作。 敏捷开发的出现是为了解决传统软件工程理论中存在的问题。传统软件工程理论使软件开发过程变得...