`
alanwu
  • 浏览: 200752 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

zzScrum (development)

阅读更多

 

http://en.wikipedia.org/wiki/Scrum_(development)

Scrum (development)

From Wikipedia, the free encyclopedia

Jump to: navigation, search
Software development process
Activities and steps
Requirements | Architecture | Design | Implementation | Testing | Deployment
Models
Agile | Cleanroom | Iterative | RAD | RUP | Spiral | Waterfall | XP | Scrum
Supporting disciplines
Configuration management | Documentation | Software quality assurance (SQA) | Project management | User experience design


Scrum is a project management method for agile software development.

The approach was first described by Hirotaka Takeuchi and Ikujiro Nonaka in The New New Product Development Game (Harvard Business Review, Jan-Feb 1986). They noted that projects using small, cross-functional teams historically produce the best results, and referred to this as the "rugby approach". In 1991, DeGrace and Stahl, in Wicked Problems, Righteous Solutions[1] referred to this approach as Scrum, a rugby term mentioned in the article by Takeuchi and Nonaka. Ken Schwaber used an approach that led to Scrum at his company, Advanced Development Methods, in the early 1990s. At the same time, Jeff Sutherland developed a similar approach at Easel Corporation and was the first to call it Scrum[2]. Sutherland and Schwaber jointly presented a paper describing Scrum at OOPSLA '96 in Austin, its first public appearance. Schwaber and Sutherland collaborated during the following years to merge the above writings, their experiences, and industry best practices into what is now known as Scrum. Schwaber teamed up with Mike Beedle in 2001 to write up the method in the book Agile Software Development with SCRUM.

Although Scrum was intended to be for management of software development projects, it can be used in running software maintenance teams, or as a program management approach: Scrum of Scrums.

Contents

[hide]
//

[edit] Characteristics of Scrum

The Scrum process
The Scrum process

Scrum is a process skeleton that includes a set of practices and predefined roles. The main roles in scrum are the ScrumMaster who maintains the processes and works similar to a project manager, the Product Owner who represents the stakeholders and the Team which includes the developers.

During each sprint, a 15-30 day period (length decided by the team), the team creates an increment of shippable software. The set of features that go into each sprint come from the product backlog, which is a prioritized set of high level requirements of work to be done. What backlog items go into the sprint is determined during the sprint planning meeting. During this meeting the Product Owner informs the items in the product backlog that he wants completed. The team then determines how much of this they can commit to complete during the next sprint.[3]

During the sprint, the team completes the fixed set of items called backlog items. During the sprint no one is able to change the backlog, which means that the requirements are frozen for sprint.

[edit] Scrum Roles

Several roles are defined in Scrum; these are divided into two groups; pigs and chickens, based on a joke about a pig and a chicken.[3]

A pig and a chicken are walking down a road. The chicken looks at the pig and says, "Hey, why don't we open a restaurant?" The pig looks back at the chicken and says, "Good idea, what do you want to call it?" The chicken thinks about it and says, "Why don't we call it 'Ham and Eggs'?" "I don't think so," says the pig, "I'd be committed but you'd only be involved."

So the pigs are committed to building software regularly and frequently, while everyone else are chickens that are interested in the project but are really irrelevant because if it fails they're not a pig, that is they weren't the ones that committed to doing it. The needs, desires, ideas and influences of the chicken roles are taken into account, but not in any way letting it affect or distort or get in the way of the actual Scrum project.

[edit] "Pig" Roles

Pigs are the ones committed to the project and the Scrum process; they are the ones with "their bacon on the line".

Product Owner
The Product Owner represents the voice of the customer. They ensure that the Scrum Team works with the right things from a business perspective. The Product Owner writes User Stories, prioritizes them, then places them in the Product Backlog.
ScrumMaster (or Facilitator)
Scrum is facilitated by a ScrumMaster, whose primary job is to remove impediments to the ability of the team to deliver the sprint goal. The ScrumMaster is not the leader of the team (as they are self-organizing) but acts as a buffer between the team and any distracting influences. The ScrumMaster ensures that the Scrum process is used as intended. The ScrumMaster is the enforcer of rules and sprints of practice.
Scrum Team
A small team of 5-9 people with cross-functional skills to do the actual work (designer, developer etc.).

[edit] "Chicken" Roles

Chicken roles are not part of the actual Scrum process, but must be taken into account. An important aspect of Agile approach is the practice of involving users, business and stakeholders into part of the process. It is important for these people to be engaged and provide feedback into the outputs for review and planning of each sprint.

Users
The software is being built for someone! Never forget that software that is not used is like a tree falling in the forest - was it ever written?
Stakeholders
The people that will enable the project, but not directly involved in the process. This includes Executives.
Consulting Experts
These are people who provide expertise that is not required on every sprint. Often these chickens will become a pig as part of the Scrum Team during some sprints.

[edit] The Scrum meeting

Each day during the sprint, a project status meeting is arranged. This is called a scrum. The scrum has specific guidelines:

  • The meeting starts precisely on time with team-decided punishments for tardiness (e.g. money, push-ups, hanging a rubber chicken around your neck)
  • All are welcome, but only "pigs" may speak
  • The meeting is timeboxed at 15 minutes regardless of the team's size
  • All attendees should stand
  • The meeting should happen at the same location and same time every day

During the meeting, each team member answers three questions[3]:

  • What have you done since yesterday?
  • What are you planning to do by tomorrow?
  • Do you have any problems preventing you from accomplishing your goal? (It is the role of the ScrumMaster to remember these impediments.)

After each sprint a brief sprint retrospective is held, at which all team members reflect about the past sprint. The purpose of the retrospective is to make continuous process improvement. This meeting is timeboxed at four hours.

Scrum enables the creation of self-organizing teams by encouraging co-location of all team members, and verbal communication across all team members and disciplines that are involved in the project.

A key principle of Scrum is its recognition that during a project the customers can change their minds about what they want and need (often called requirements churn), and that fundamentally empirical challenges cannot be addressed successfully in a traditional predictive or planned manner. As such, Scrum adopts an empirical approach – accepting that the problem cannot be fully understood or defined, focusing instead on maximizing the team's ability to deliver quickly and respond to emerging requirements.

[edit] Documents

[edit] Product backlog

The product backlog is a high-level document for the entire project. It contains broad descriptions of all required features, wish-list items, etc. It is the "What" that will be built. It is open and editable by anyone. It contains rough estimates, usually in days. This estimate helps the Product Owner to gauge the timeline and, to a limited extent, priority (e.g. if "add spellcheck" feature is estimated at 3 days vs 3 months, that may affect the Product Owner's desire).

[edit] Sprint backlog

The sprint backlog is a greatly detailed document containing information about how the team is going to implement the requirements for the upcoming sprint. Tasks are broken down into hours with no task being more than 16 hours. If a task is greater than 16 hours, it should be broken down further. Tasks on the sprint backlog are never assigned, rather tasks are signed-up for by the team members as they like.

[edit] Burn down

Publicly displayed chart showing effort remaining for the current sprint.

[edit] Adaptive project management

Following are some general practices of Scrum:

  • Customers become a part of the development team. (i.e. the customer must be genuinely interested in the output.)
  • Like all other forms of agile software processes, Scrum has frequent intermediate deliveries with working functionality. This enables the customer to get working software earlier and enables the project to change its requirements according to changing needs.
  • Frequent risk and mitigation plans developed by the development team itself. – Risk Mitigation, Monitoring and Management (risk analysis) at every stage and with genuinity.
  • Transparency in planning and module development – Let everyone know who is accountable for what and by when.
  • Frequent stakeholder meetings to monitor progress – Balanced (Delivery, Customer, Employee, Process) Dashboard updates – Stakeholders' update – You have to have Advance Warning Mechanism, i.e. visibility to potential slippage / deviation ahead of time.
  • No problems are swept under the carpet. No one is penalized for recognizing or describing any unforeseen problem.
  • Workplaces and working hours must be energized. – "Working more hours" does not necessarily mean "producing more output."

[edit] Solo Scrum

Scrum is based on small teams. It enhances communication between team members. Nevertheless, there is a huge amount of software that is developed by solo programmers. A software system being built by a single programmer can still benefit from some of the Scrum principles such as: a product backlog, a sprint backlog, a sprint and a sprint retrospective. Solo Scrum is an adapted version of Scrum for use by solo programmers.

[edit] Scrum terminology

The following terminology is used in Scrum[3]:

  • Burn Down Chart: Daily progress for a sprint over the sprint's length.
  • Product Backlog: A prioritized list of high level requirements.
  • Product Owner: The person responsible for maintaining the Product Backlog by representing the interests of the stakeholders.
  • ScrumMaster: The person responsible for the Scrum process, making sure it is used correctly and maximizes it benefits.
  • Sprint: A time period (usually 2 to 4 weeks) in which development occurs on a set of backlog items that the Team has committed to.
  • Sprint Backlog: A list of tasks to be completed during the sprint.
  • Team: A cross-functional group of people responsible for managing itself to develop the product.

[edit] Sources

[edit] See also

[edit] Other Agile methods

[edit] External links

[edit] References

  1. ^ Peter DeGrace, Leslie Hulet Stahl, Wicked problems, righteous solutions, 1990, ISBN 0-13-590126-X
  2. ^ Jeff Sutherland, AGILE DEVELOPMENT: LESSONS LEARNED FROM THE FIRST SCRUM, 2004 [1]
  3. ^ a b c d Agile Project Management with Scrum, Ken Schwaber, Microsoft Press, January 2004, 163pp, ISBN 0-7356-1993-X

 

分享到:
评论

相关推荐

    Foundations of GTK+ Development

    Foundations of GTK+ Development (PDF 英文版) By Andrew Krause ISBN10: 1-59059-793-1 ISBN13: 978-1-59059-793-4 630 pages Apr 2007 (Apress) GTK+ is one of the most influential graphical toolkits for...

    react下载,包括react.development.js;babel.min.js;react-dom.development.js

    在这个压缩包中,包含的三个关键文件——`react.development.js`, `babel.min.js`, 和 `react-dom.development.js`,都是React生态系统中的重要组成部分。 1. **react.development.js**: 这是React库的开发版本。在...

    iOS Swift Game Development Cookbook

    iOS Swift Game Development Cookbook: Simple Solutions for Game Development Problems. epub

    AURIX Development Studio

    **AURIX Development Studio** 是一款专为飞思卡尔(现为恩智浦半导体)的AURIX微控制器系列设计的集成开发环境(IDE)。这款工具集成了多种功能,包括代码编辑、编译、调试以及项目管理,旨在帮助开发者高效地进行...

    Sintecs IBIS Development Studio Version 1.6.0

    **Sintecs IBIS Development Studio Version 1.6.0** Sintecs IBIS Development Studio 是一款专为电气工程师设计的高级工具,主要用于开发、验证和分析Input/Output Buffer Information Specification(IBIS)模型...

    IAR C-C++ Development Guide for ARM

    IAR C-C++ Development Guide for ARM.7z IAR C-C++ Development Guide for ARM.7z IAR C-C++ Development Guide for ARM.7z IAR C-C++ Development Guide for ARM.7z vIAR C-C++ Development Guide for ARM.7z

    Mastering.Cocos2d.Game.Development.1784396710

    Title: Mastering Cocos2d Game Development Author: Alex Ogorek Length: 298 pages Edition: 1 Language: English Publisher: Packt Publishing Publication Date: 2015-03-20 ISBN-10: 1784396710 ISBN-13: ...

    SFML Game Development 无水印pdf

    SFML Game Development 英文无水印pdf pdf所有页面使用FoxitReader和PDF-XChangeViewer测试都可以打开 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn...

    react-dom.development.js

    听说你在找react-dom.development.js这个文件,在带走它前记得收藏加点赞、听说你在找react-dom.development.js这个文件,在带走它前记得收藏加点赞、听说你在找react-dom.development.js这个文件,在带走它前记得...

    Test-Driven Java Development(PACKT,2015)

    Test-driven development (TDD) is a development approach that relies on a test-first procedure that emphasises writing a test before writing the necessary code, and then refactoring the code to ...

    Continuous Enterprise Development in Java

    Rubinger and Knutsen demonstrate why testing is the very foundation of development—essential for ensuring that code is consumable, complete, and correct. Bootstrap an elementary Java EE project ...

    Unity Game Development Essentials.pdf

    Unity Game Development Essentials.pdfUnity Game Development Essentials.pdfUnity Game Development Essentials.pdf

    英飞凌AURIX Development Studio V1.6.0

    英飞凌AURIX Development Studio,可用于开发英飞凌的TriCore-based AURIX microcontroller family的MCU,该版本下载于英飞凌官方网站https://softwaretools.infineon.com/tools/com.ifx.tb.tool.aurixide,版本为...

    Sensor_Development_Kit

    《Sensor Development Kit在WIN7下的应用详解》 Sensor Development Kit是一款专为开发传感器控制软件而设计的工具包,尤其在Windows 7操作系统环境下,它提供了全面的硬件接口和软件支持,帮助开发者高效地进行...

    Linux Device Drivers Development(pdf+epub+mobi+code_files).zip

    Linux Device Drivers Development(pdf+epub+mobi+code_files).zip Linux Device Drivers Development(pdf+epub+mobi+code_files).zip

    Vision Development Module(视觉开发模块),这个是NI视觉所有的图像处理函数库,包提供在LabVIEW编

    ### Vision Development Module (视觉开发模块) —— NI图像处理函数库 #### 一、概述 Vision Development Module(简称VDM)是由National Instruments(NI)公司提供的一个强大的图像处理软件包,它包含了丰富的...

    Less.Web.Development.Essentials.2nd.Edition

    Title: Less Web Development Essentials, 2nd Edition Author: Bass Jobsen Length: 211 pages Edition: 1 Language: English Publisher: Packt Publishing Publication Date: 2015-04-30 ISBN-10: 178355407X ISBN...

    Rapid Development - Taming Wild Software Schedules - Part1

    The author says that software can be optimized for any of several goals: lowest defect rate, lowest cost, or shortest development, etc... Software Engineering is then about achieving tradeoffs, and ...

Global site tag (gtag.js) - Google Analytics