【翻译】敏捷管理过程框架Scrum
文章翻译自Mike Cohn的博客
Scrum是一种敏捷的项目管理方式,通常用于软件开发项目。使用Scrum进行敏捷软件开发通常被视为一种方法论;但与其将Scrum视为方法论,不如将其视为管理过程的框架。
什么是Scrum?
在敏捷Scrum世界中,与其提供关于如何在项目中完成所有事情的完整、详细的描述,还不如将其中的大部分留给Scrum软件开发团队。这是因为团队将最清楚如何解决他们提出的问题。
这就是为什么在Scrum开发中,例如,Sprint计划会议以期望的结果(对下一个冲刺中要开发的一组特征的承诺)来代替,而不是在大多数方法学中提供的一组入口标准、任务定义、验证标准、退出标准(ETVX文章末尾有解释说明)等等。
Scrum依赖于一个自组织、跨职能的团队。scrum团队是自组织的,因为没有一个整体的团队领导来决定哪个人将执行哪个任务或者如何解决一个问题。这些问题是由整个团队决定的。
在Scrum中,团队是跨职能的,这意味着每个人都需要从一个想法到实现一个特性。
在敏捷开发中,Scrum团队由两个特定的角色支持。第一个是ScrumMaster,他可以被认为是团队的教练,帮助团队成员使用Scrum流程在最高级别上执行任务。
产品所有者(product owner,PO)在国内通常叫做产品经理,是Scrum软件开发中的另一个角色,代表业务、客户或用户,并指导团队构建正确的产品。
Scrum开发:涉及到什么?
Scrum模型建议项目通过一系列的sprint进行。根据敏捷方法,sprint的时间限制不超过一个月,通常是两周。
Scrum方法论提倡在sprint开始时召开计划会议,在会议上,团队成员计算出他们可以提交多少用户故事/User Storie,然后创建sprint backlog——sprint期间要执行的任务列表。
在敏捷Scrum冲刺过程中,Scrum团队从idea到编码和测试的功能都是特性/Features的一小部分。最后,这些特性完成了,意味着编码、测试并集成到不断发展的产品或系统中。
在sprint的每一天,所有团队成员都应该参加Scrum的站会,包括ScrumMaster和PO(产品经理)。会议时间限制在15分钟以内。在此期间,团队成员分享他们在前一天所做的工作,并将在这一天工作,并记录和核对过程遇到的问题障碍和风险。Scrum模型将每日站会视为一种同步团队成员sprint工作的方式。
在sprint结束时,团队进行sprint评审,在此期间,团队向PO或希望提供反馈以影响下一次sprint的任何其他干系人演示新功能。Scrum软件开发中的这个反馈循环可能会导致新交付功能的更改,也可能会导致修改或向产品backlog添加项。
Scrum项目管理的另一个活动是在每个sprint结束时的sprint回顾。整个团队都参加了这次会议,包括ScrumMaster和PO。回顾会是一个反思已结束的sprint并确定改进项的机会。
Scrum过程:主要工件
Scrum开发中的主要工件当然是产品本身。Scrum模型期望团队在每个Scrum sprint结束时将产品或系统带到一个潜在的可交付状态。
产品backlog是Scrum的另一个工件。这是要添加到产品中的功能的完整列表。PO优先处理积压工作,这样团队总是首先处理最有价值的特性。
使用Scrum方法创建产品backlog的最流行和最成功的方法是用用户故事填充它,用户故事是从用户或客户的角度描述功能的简短描述。
在Scrum项目管理中,在sprint的第一天和计划会议期间,团队成员创建sprint backlog。sprint backlog可以看作是团队的sprint待办事项列表,而产品backlog则是要构建的特性列表(以用户故事的形式编写)。
sprint backlog是团队需要执行的任务列表,显示在sprint期间交付的功能。
Scrum敏捷方法产生的其他工件是sprint burndown图表和release burndown图表。Burndown图表即燃尽图显示了sprint或release中剩余的工作量,是Scrum软件开发中的一个有效工具,用于确定sprint或release是否按计划在预期日期完成所有计划工作。
敏捷Scrum项目:主要角色
即使你是Scrum新手,你也可能听说过ScrumMaster这个角色。ScrumMaster是团队的教练,帮助Scrum实践者达到最高的绩效水平。
在Scrum过程中,ScrumMaster在许多方面与传统的项目经理不同,包括这个角色不向团队提供日常指导,也不向个人分配任务。
一个好的ScrumMaster可以保护团队不受外界干扰,让团队成员在冲刺过程中疯狂地专注于他们选择的目标。
当ScrumMaster专注于帮助团队尽其所能做到最好时,PO会努力引导团队达到正确的目标。PO通过创建一个令人信服的产品远景,然后通过产品backlog将该远景传达给团队来实现这一点。
PO(产品经理)负责对Scrum开发期间的待办列表的优先级进行排序,以保证系统的构成,被其用户、开发团队如期望的被了解。
上面一句话原文是这样的,感觉比较难翻译。The product owner is responsible for prioritizing the backlog during Scrum development, to ensure it’s up to par as more is learned about the system being built, its users, the team and so on.
我请教几位敏捷大神,给出的翻译如下,贴出来供大家参考。
在Scrum开发里,PO负责待办列表的优先级排序,以建立对系统,用户群体以及团队等问题的共识基础。
Scrum项目管理的第三个也是最后一个角色是Scrum团队本身。虽然在Scrum中,个人可能以不同的职称加入团队,但这些职称并不重要。Scrum方法论指出,每个人都尽其所能地为完成每个sprint的工作做出贡献。
这并不意味着测试人员将被期望重新构建系统;在采用敏捷Scrum模型之前,个人将把大部分(有时是全部)时间花在他们工作的任何规程上。但是,在Scrum中,人们希望个人能够超越他们喜欢的学科,只要这样做是为了团队的利益。
在敏捷方法论中,考虑这三个角色相互关联的一种方式是作为一辆赛车。
Scrum团队就是汽车本身,随时准备沿着它所指的任何方向前进。PO是司机,确保汽车总是朝着正确的方向行驶。ScrumMaster是主要的机械师,它能使汽车保持良好的调教和最佳性能。
ETVX补充说明
ETVX(Entry / Task / Verification / eXit)模式。
IBM公司于80年代提出一个结构化的描述架构-ETVX ( Entry / Task / Verification / eXit )模式来叙述整个软体发展的生命周期模式与每个阶段相对应的作业活动,让研读的人员能够非常清楚整个专案的软体发展架构。
ETVX模式可以说是以质量为基础的角度来建立流程和活动的模式,它将PDCA循环的思路直接融入到了软件项目计划和软件开发生命周期模型中。在CMMI的标准体系的建立中,针对高端流程图到各个PA域,都可以借鉴ETVX模式的方法来进行各种规程的建立。