Scrum 开发过程 是什么

Scrum是一种敏捷开发框架,采用迭代式的增量开发过程。它包含三个角色:Product Owner、Scrum Master 和 Scrum Team。每个迭代周期称为Sprint,长度通常为2-4周。在每个Sprint中,团队会完成一系列按优先级排列的需求,这些需求被称为用户故事。Scrum旨在提高团队效率和产品质量。

原文:http://hi.baidu.com/lopve1314/blog/item/f9e9dacdcc2d0e1800e92857.html

Scrum是一个敏捷开发框架,是一个增量迭代的开发过程.。在这个框架整个开发周期由若干个小的跌代周期,每个小的的跌代周期称为一个Sprint,每个Sprint的长度2到4周。在每个Sprint中,Scrum的开发团队拿到一个排列好优先级的需求列表,我们称它为用户故事或者叫Sprint backlog, 所以我们先开发的是对客户具有较高价值的需求。 在每个迭代结束后,都会开发完成可交付的产品。

一个简单的框架

scrumprocess.png

Scrum由三个角色,三种活动,3种交付物组成:

三个角色:

Product Owner

Scrum Master

Scrum Team

三种活动:

the sprint planning meeting

daily scrum meetings

sprint review meetings

3种产物:

the product backlog

the sprint backlog

a burndown chart

一个经历过时间考验的开发过程

Scrum最早由Jeff Sutherland在1993年提出,Ken Schwaber 在1995年OOPSLA会议上形式化了Scrum开发过程,并向业界公布。

之后,Scrum成为领先的敏捷开发方法之一,目前世界上有超过500家公司在使用Scrum。

 

Scrum的特点:

Scrum是一个敏捷的流程,可用于管控研发工作。 Scrum是现有设计流程的总结。 Scrum以团队为基础,是一种在需求求迅速变化情况下迭代地、增量地开发系统和产品的方法。 Scrum是一个控制由利益和需求冲突导致的混乱的流程。 Scrum是改善交流并最优化合作的方式。 Scrum是一种检测产品开发和生产过程中障碍并将其去除的方式。 Scrum是最大化生产率的一种方法。 Scrum适用于单一的项目到整个组织。Scrum可以控制并组织多件具有相关性的产品开发以及拥有超过千名开发者和执行者的项目实施过程。 Scrum能让每个参与者都对自己所做的工作以及自己做出的贡献感到骄傲,并让他们发挥到最佳水平。





二 Scrum较传统开发模型的优点

Scrum模型的一个显著特点就是响应变化,它能够尽快地响应变化。下面的图片使用传统的软件开发模型(瀑布模型、螺旋模型或迭代模型)。随着系统因素(内部和外部因素)的复杂度增加,项目成功的可能性就迅速降低。
scrum4.gif

下图是Scrum模型和传统模型的对比:
       scrum5.gif

Scrum是一种迭代式增量软件开发过程,通常用于敏捷软件开发。Scrum在英语的意思是橄榄球里的争球。

realscrum.jpg

虽然Scrum是为管理软件开发项目而开发的,它同样可以用于运行软件维护团队,或者作为计划管理方法:Scrum of Scrums.

Scrum的特性

Scrum是一个包括了一系列实践和预定义角色的过程骨架。Scrum中的主要角色包括同项目经理类似的Scrum主管角色负责维护过程和任务,产品负责人代表利益所有者,开发团队包括了所有开发人员。

在每一次冲刺(一个15到30 天周期 ,长度由开发团队决定),开发团队创建可用的(可以随时推出)软件的一个增量。每一个冲刺所要实现的特性来自产品订单(product backlog), 产品订单是按照优先级排列的要完成的工作的概要的需求。那些订单项会被加入一次冲刺由冲刺计划会议决定。 在会议中,产品负责人告诉开发团队他需要完成产品订单中的哪些订单项。开发团队决定在下一次冲刺中他们能够承诺完成多少订单项。在冲刺的过程中,没有人能够变更冲刺订单(sprint backlog),这意味着在一个冲刺中需求是被冻结的。

管理Scrum过程有很多实施方法,从白板上的即时贴到软件包。Scrum最大的好处是它非常容易学习,而且应用Scrum不需要太多的投入。

Scrum过程

FileScrum%20process%20zh.png

Agilo

Agilo是建立在Trac之上的为Scrum量身定制的开发过程管理工具。

Agilo系统中的角色

Scrum定义了许多角色,根据猪和鸡的笑话分为两组,猪和鸡

一天,一头猪和一只鸡在路上散步,鸡看了一下猪说,“嗨,我们合伙开一家餐馆怎么样?”,猪回头看了一下鸡说,“好主意,那你准备给餐馆起
什么名字呢?”,鸡想了想说“餐馆名字叫火腿和鸡蛋怎么样?”,“我不这么认为。”,猪说,“我全身投入,而你只是参与而已。”
  • Product owner。产品负责人代表了客户的意愿。这保证了Scrum团队在做从业务角度来说正确的事情。产品负责人编写 用户故事,排出优先级,并放入产品订单。
  • Scrum master。 Scrum主管促进 Scrum过程,他的主要工作是去除那些影响团队交付冲刺目标的障碍。Scrum主管并非团队的领导(由于他们是自我组织的),而是负责屏蔽外界对开发团队的干扰。Scrum主管确保Scrum过程按照初衷使用。Scrum主管是规则的执行者。
  • Team。负责交付产品的团队。由5至9名具有跨职能技能的人(设计者,开发者等)组成的小团队完成实际的开发工作。
  • 用户。软件是为了某些人而创建!就像“假如森林里有一棵树倒下了,但没有人听到,那么它算发出了声音吗”,“假如软件没有被使用,那么它算是被开发出来了么?”
  • stakeholder。影响项目成功的人,但只直接参与冲刺评审过程。
  • Manager。为产品开发团体架起环境的那个人
Agilo系统中的对象

AgiloObjects.JPG

Agilo系统中的主要流程

AgiloActivity1.JPG AgiloActivity2.JPG AgiloActivity3.JPG

出自维基百科

### Scrum开发流程详解 Scrum 是一种敏捷开发方法,适用于复杂且不断变化的项目环境。以下是对 Scrum 开发流程的详细解析。 #### 1. Scrum 的核心角色 Scrum 框架定义了三个关键角色,这些角色在团队中具有明确的责任和目标: - **产品负责人(Product Owner)**:负责定义产品的功能和优先级,确保团队的工作始终围绕着业务价值展开[^2]。 - **Scrum Master**:作为团队的引导者,Scrum Master 负责移除障碍、促进沟通,并确保团队遵循 Scrum 流程[^1]。 - **开发团队(Development Team)**:由跨职能的专业人员组成,负责交付可工作的软件增量[^3]。 #### 2. Scrum 的主要工件 Scrum 中有三个主要的工件,用于组织和管理开发工作: - **产品待办列表(Product Backlog)**:这是一个动态的、按优先级排序的需求列表,包含所有需要完成的功能和改进。 - **冲刺待办列表(Sprint Backlog)**:从产品待办列表中选择的高优先级任务集合,是当前冲刺的目标[^1]。 - **增量(Increment)**:每次冲刺结束时交付的可用产品版本,必须满足“完成”的定义[^3]。 #### 3. Scrum 的事件 Scrum 定义了五个主要事件,用于协调和审查工作进展: - **冲刺(Sprint)**:一个固定长度的时间框,通常为 2-4 周,团队在此期间完成一组任务并交付一个可用的产品增量。 - **冲刺计划会议(Sprint Planning)**:团队与产品负责人共同确定当前冲刺的目标和任务清单。 - **每日站会(Daily Standup)**:每天举行的短会,团队成员分享进展、讨论障碍,并调整当天的工作计划。 - **冲刺评审会议(Sprint Review)**:在冲刺结束时举行,团队向利益相关者展示成果,并收集反馈以指导后续工作。 - **冲刺回顾会议(Sprint Retrospective)**:团队内部反思冲刺中的成功与不足,并制定改进措施[^1]。 #### 4. Scrum 的实践指南 以下是 Scrum 开发流程的一个典型图解: ```plaintext +-------------------+ | 产品待办列表 | +-------------------+ | v +-------------------+ | 冲刺计划会议 | +-------------------+ | v +-------------------+ | 冲刺待办列表 | +-------------------+ | v +-------------------+ | 每日站会 | +-------------------+ | v +-------------------+ | 开发工作 | +-------------------+ | v +-------------------+ | 冲刺评审会议 | +-------------------+ | v +-------------------+ | 冲刺回顾会议 | +-------------------+ ``` #### 5. Scrum 的优势 Scrum 方法的优势在于其灵活性和适应性。通过迭代开发和持续反馈,团队可以快速响应需求变化并交付高质量的软件。 --- ### 示例代码:Scrum 待办事项管理系统 以下是一个简单的 Python 示例,展示如何管理 Scrum 的待办事项列表: ```python class ProductBacklog: def __init__(self): self.items = [] def add_item(self, item): self.items.append(item) def get_items(self): return self.items class SprintBacklog: def __init__(self): self.tasks = [] def add_task(self, task): self.tasks.append(task) def complete_task(self, task): if task in self.tasks: self.tasks.remove(task) def get_tasks(self): return self.tasks # 示例使用 product_backlog = ProductBacklog() product_backlog.add_item("实现登录功能") product_backlog.add_item("优化数据库查询") sprint_backlog = SprintBacklog() sprint_backlog.add_task("实现登录功能") print("产品待办列表:", product_backlog.get_items()) print("冲刺待办列表:", sprint_backlog.get_tasks()) sprint_backlog.complete_task("实现登录功能") print("完成任务后冲刺待办列表:", sprint_backlog.get_tasks()) ``` ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值