Scrum由Ken Schwaber和 Jeff Sutherland 提出,旨在寻求充分发挥面向对象和构件技术的开发方法,是对迭代式面向对象方法的改进,名称来自英式橄榄球(以英式橄榄球争球队形Scrum为名,在比赛中每个队员都应时刻保持对场上全局的判断,然后通过集体行动,奋力实现同一目标──胜利。) 基本假设是『开发软件就像开发新产品,无法一开始就能定义 Final Product 的规程,过程中需要研发、创意、尝试错误,所以没有一种固定的流程可以保证项目成功』。Scrum 将软件开发团队比拟成橄榄球队,有明确的最高目标,熟悉开发流程中所需具备的最佳典范与技术,具有高度自主权,紧密地沟通合作,以高度弹性解决各种挑战,碓保每天、每个阶段都朝向目标有明确的推进,因此 SCRUM 非常适用于产品开发项目。Scrum提供了一种经验方法,它使得团队成员能够独立地,集中地在创造性的环境下工作。
Scrum认为软件开发过程更多是经验性过程(Empirical Process),而不是确定性过程(Defined Process)。确定性过程是可明确描述的、可预测的过程,因而可重复(Repeatable)执行并能产生预期的结果,并能通过科学理论对其最优化。经验性过程与之相反,应作为一个黑箱(Black box)来处理,通过对黑箱的输入输出不断进行度量,在此基础上,结合经验判断对黑箱进行调控,使其不越出设定的边界,从而产生满意的输出。Scrum方法将传统开发中的分析、设计、实施视为一个黑箱,认为应加强黑箱内部的混沌性,使项目组工作在混沌的边沿,充分发挥人的创造力。
Scrum术语解释
Scrum Master: The person or persons in charge of the tracking and the daily updates for the scrum (Equivalent to a Project Manager) also referred as the Scrum Lord.
Back log: The task to be completed.
Sprint: A 1 to 4 week period in which a set of tasks are committed to and which are finished.
Burn Down: Daily progress for a sprint over the sprint's length.
Scrum角色
Product Owner – 必须是能够代表客户对Backlog里的任务优先级、关于需求疑问有决定权的人。Product Owner要对项目组随时可用,尤其是在Sprint计划会议和Sprint评审会议时。
Challenges of being a product owner:
Resisting the temptation to "manage" the team. The team may not self-organize in the way you would expect it to. This is especially challenging if some team members request your intervention with issues the team should sort out for itself.
Resisting the temptation to add more important work after a Sprint is already in progress.
Being willing to make hard choices during the sprint planning meeting.
Balancing the interests of competing stakeholders.
ScrumMaster - ScrumMaster 是团队和Product Owner的服务者,帮助团队铲除壁垒而取得成功。ScrumMaster以下下面的方式 协助团队和Product Owner:
Remove the barriers between the development and the product owner so that the product owner directly drives development.
Teach the product owner how to maximize return on investment (ROI), and meet his/her objectives through Scrum.
Improve the lives of the development team by facilitating creativity and empowerment.
Improve the productivity of the development team in any way possible.
Improve the engineering practices and tools so that each increment of functionality is potentially shippable.
Keep information about the team's progress up to date and visible to all parties.
Scrum Team – 一个Scrum team最好由至少2个人或不多于7个左右人员组成。对于软件开发项目,敏捷实践鼓励跨功能的小组成员制。每个Scrum team都是跨功能的(通常包括开发人员,文档人员,质量控制人员或用户代表等),以使小组内有充分的交流。
在每一个sprint期间, team 自行管理已达成的sprint 目标. 团队充分自治去选取以什么样的方式更好地达到目的,并为之负责。Scrum倡导整个团队在一个房间内工作 以利于随时沟通
Scrum开发过程:
参见图附件2,
其中最先和最后阶段(计划阶段和结束阶段)由已定义的过程组成,这些过程的输入输出都能很好的加以定义。如何去实施这些过程的知识是很明确的。过程流程是直线的,在计划阶段会有一些迭代。
计划和系统架构阶段(Planning & System Architecture) 将Backlog(急待完成的一系列任务,包括:未细化的产品功能要求、Bugs、缺陷、用户提出的改进、具竞争力的功能及技术升级等)按优先级排序形成Backlog 列表,根据该表和风险评估制订产品交付基线。
建立系统结构(如果是为已有系统做改进,则只作有限分析、调整),将Backlog项分解为一系列问题包(Packets,每个Packet是一组对象或构件的集合) ,依据同样原则相应划分若干个开发小组(SCRUM 小组),分配各小组合适的Backlog项或问题包。建立开发运行环境。
冲刺阶段(Sprints)是一个完全依据经验的过程。冲刺阶段是开发工作的一个迭代循环。经理判定时间、竞争性、质量或功能符合要求后,迭代过程结束并进入结束阶段。该方法也被称为并发工程。开发包含以下活动:
· 与各项目小组开会讨论总结计划。
· 对产品所需遵从的标准进行分发、总结和调整。
· 迭代冲刺,直至产品可被确认为适于发行。
一个冲刺是一系列开发活动的集合,这些开发活动贯穿预定义阶段,通常为一至四个星期。间歇期建立在产品复杂性、风险评估和预计的监管程度上。冲刺的持续时间决定了冲刺的速度和强度。风险评估是持续进行的,并应加入适当的风险控制和响应。每一冲刺由一个或多个项目小组组成来完成以下工作:
· 开发Develop:对为实现待定项所需加入程序包中的变更进行定义,打开程序包,进行域分析,设计,开发,实现,测试,记录变更。开发包含发现、创新和实现的微观过程。
· 封装Wrap:关闭程序包,为变更和这些待定需求如何实现创建一个可执行版本。
· 总结Review: 所有的小组开会介绍各自的工作,总结进度,提出并解决问题和困难,增加新的待定项。在会上总结风险,定义适当的风险应对策略。
· 调整Adjust:将从总结会议中获得的信息合并到相关程序包中,包括不同的观点、体验和新的特性。
结束阶段(Closure) 当产品经理综合时间、竞争性、需求、费用和质量等诸多因素,感到已经适于发布一个新的版本,他们宣布开发"结束"并进入本阶段。本阶段准备对已开发完成的产品进行常规发布。结束阶段的任务包括集成,系统测试,用户文档,培训材料和市场营销材料的准备。
SCRUM过程认为一个产品的开发将一直持续下去,除非经风险评估后认为应停止。产品交付后的巩固活动类似于传统方法中的维护和改进,目的在于整理Sprint期压力下忽略的工作,为下一阶段的开发做准备,以便轻装上阵。
- 大小: 189.4 KB
- 大小: 1.1 MB
分享到:
相关推荐
### Scrum软件开发流程在小型团队中的应用 #### 背景与引入 在IEEE的一篇文章《Scrum软件开发流程在小型团队中的应用》中,作者Linda Rising和Norman S. Janoff针对当前快速变化的电信市场环境,探讨了Scrum敏捷...
- **开发团队 (Development Team)**:负责实际的产品开发工作,成员包括软件开发者、测试人员等。 ##### 1.3 会议 - **Sprint 计划会议 (Sprint Planning)**:在每个 Sprint 开始时举行,团队讨论并计划接下来的...
Whether you’re not sure what scrum is, or you think your scrum process isn’t all that it should be, this book can help. Scrum isn’t magic, but the results it can produce are well worth taking the ...
this highly practical book concentrates solely on how best to apply Scrum in web and mobile development projects. In it, you'll learn: An overview of Scrum fundamentals for web and mobile projects ...
From a leader in the agile process movement, learn best practices for moving agile development with Scrum from the skunk works (small team) to the shop floor (the enterprise). Managers get case ...
to-earth account of how one Swedish company implemented Scrum and XP with a team of approximately 40 people and how they continuously improved their process over a year's time. Under the leadership of...
Its philosophical underpinnings focus on empowering the development team and satisfying customers. Its managerial culture is rooted in helping others achieve their goals. Its technical tools are ...
Scrum的理念基于经验主义过程控制理论(Empirical Process Control Theory),意味着通过检查和调整来管理风险。 #### Scrum与传统瀑布模型的区别 - **传统瀑布模型**的特点在于项目流程按顺序进行,每个阶段必须...
Getting Agile with Scrum Mike Cohn ... Especially useful on projects with lots of technology or requirements uncertainty, Scrum is a proven, scalable agile process for managing software projects.
App Development Recipes for iOS and watchOS explores...Understanding development methodologies such as Agile/Scrum User Experience Development and UI Tools Unit, UI, and Beta Testing Publishing your work
- **Development Team**:由跨职能的开发人员组成,负责执行冲刺计划中的工作,实现产品功能。 **工件(Artifacts)** - **产品待办事项列表(Product Backlog)**:包含所有已知的工作项,按照优先级排序,是团队...
Understanding development methodologies such as Agile/Scrum User Experience Development and UI Tools Unit, UI, and Beta Testing Publishing your work Who this book is for:Developers who need to find ...
Its philosophical underpinnings focus on empowering the development team and satisfying customers. Its managerial culture is rooted in helping others achieve their goals. Its technical tools are ...
- **Empirical Process**:经验性过程,基于经验数据来指导决策。 - **Transparency**:透明性,强调项目信息的公开透明。 - **Inspect and Adapt**:检视与调整,定期评估项目状态并作出相应调整。 - **Sprint Goal...
7. 项目管理:CODE可能使用敏捷开发方法,如Scrum或Kanban,以灵活应对需求变化,确保团队高效协作。 8. 反馈循环:通过用户反馈和性能监控,项目团队可以了解软件在实际使用中的表现,及时修复问题,优化功能。 ...