User:Toddwill/sandbox1: Difference between revisions
No edit summary |
No edit summary |
||
Line 14: | Line 14: | ||
==Summary== |
==Summary== |
||
'''''Agile Project Management with Scrum |
'''''Agile Project Management with Scrum,''''' by [[Ken Schwaber]], describes the process of managing a [[Scrum (development) | Scrum]] software development project. It uses a mixture of definitions and case studies to educate a would-be [[Scrum (management) |Scrum]] manager ([[aka]] ScrumMaster<FONT SIZE="-1"><SUP>TM</SUP></FONT>) on scrum, the major players in a scrum project and the ScrumMaster's role. The case studies exhibited are both success and failure cases to provide learning capabilities in both directions. |
||
The book presumes very little knowledge of scrum and agile processes. The appendix supplies a variety of background data that might be needed by the novice. |
The book presumes very little knowledge of scrum and agile processes. The appendix supplies a variety of background data that might be needed by the novice. |
||
Line 22: | Line 22: | ||
==Analysis== |
==Analysis== |
||
Schwaber defines the concept of ''[[empirical]] [[process control]]'' and uses this as the foundation for scrum. His |
Schwaber defines the concept of ''[[empirical]] [[process control]]'' and uses this as the foundation for justification of the scrum process. His claim is that in the "real world" of software development most projects that build or improve a product are breaking new ground and cannot use ''defined process control'', as might be used in truly repetitive projects. Empirical process control relies on actual observed data to affect the project and change its execution. The iterative nature of scrum (see Figure 1) provides adjustments to the process every cycle (30 days) allowing it to adapt to the current situation. |
||
[[Image:ScrumFlow.jpg| |
[[Image:ScrumFlow.jpg|thumb|600px|center|Figure 1 Scrum Project Flow]] |
||
As with other [[Agile Project Management (book) | agile]] processes, [[timebox | timeboxing]] is important to minimize many sources of waste: |
As with other [[Agile Project Management (book) | agile]] processes, [[timebox | timeboxing]] is important to minimize many sources of waste: |
||
Line 33: | Line 33: | ||
The heart of scrum is iterative incremental development and delivery. Figure 1 summarizes the flow of a scrum process. |
The heart of scrum is iterative incremental development and delivery. Figure 1 summarizes the flow of a scrum process. |
||
# A |
# A Product Backlog is created. |
||
# An eight hour meeting is held to define the work to be done. The first four hours is for the Product Owner to define the highest priority features and the second four hours is for the Team to commit to a work plan for the Sprint. |
# An eight hour meeting is held to define the work to be done. The first four hours is for the Product Owner to define the highest priority features and the second four hours is for the Team to commit to a work plan for the Sprint. |
||
# All work is done in 30-day increments. Each day there is a Scrum daily meeting (15-minutes) where the following |
# All work is done in 30-day increments. Each day there is a Scrum daily meeting (15-minutes) where the following questions are addressed within the Team: |
||
##What was completed yesterday |
##What was completed yesterday? |
||
##What is planned for today |
##What is planned for today? |
||
##What is in the way of completing the work |
##What is in the way of completing the work? |
||
#At the end of the Sprint there is a four hour meeting with the stakeholders where '''shippable ''' product is demonstrated. |
#At the end of the Sprint there is a four hour meeting with the stakeholders where '''shippable ''' product is demonstrated. |
||
#If the stakeholders want to deploy the product, a deployment sprint is executed. |
#If the stakeholders want to deploy the product, a deployment sprint is executed. |
||
#If more iterations are needed and funded, then the Product |
#If more iterations are needed and funded, then the Product Owner presents the updated Product Backlog and the process starts over. |
||
Scrum projects to not have a manager as with traditional [[Project management | projects]]. Management is done by a group of three set of people — [[#ScrumMaster | ScrumMaster]], [[#Product Owner | |
Scrum projects to not have a manager as with traditional [[Project management | projects]]. Management is done by a group of three set of people — [[#ScrumMaster | ScrumMaster]], [[#Product Owner | Product Owner]] and [[#The_Team | The Team]]. |
||
===ScrumMaster=== |
===ScrumMaster=== |
||
Line 52: | Line 52: | ||
*Teach the concepts of scrum, |
*Teach the concepts of scrum, |
||
*Shield the team from outside disturbances, |
*Shield the team from outside disturbances, |
||
*Remove obstacles |
*Remove obstacles, |
||
*Mold scrum into the company culture |
*Mold scrum into the company culture |
||
The ScrumMaster must be dedicated to the project and continually observe the Team and their progress to determine signs where the scrum rules are not being followed. Through case studies, Schwaber provides examples of common failures of ScrumMasters (including his own) to educate the reader on the process, hence providing a list of what a ScrumMaster is not. |
The ScrumMaster must be dedicated to the project and continually observe the Team and their progress to determine signs where the scrum rules are not being followed. Through case studies, Schwaber provides examples of common failures of ScrumMasters (including his own) to educate the reader on the process, hence providing a list of what a ScrumMaster is not. |
||
A ScrumMaster does not: |
A ScrumMaster does not: |
||
*Assign work to the team |
*Assign work to the team, |
||
*Run the daily scrum |
*Run the daily scrum, |
||
*Manage task done by the Team |
*Manage task done by the Team, |
||
*Change priorities of the Team (inside or outside the Sprint) |
*Change priorities of the Team (inside or outside the Sprint). |
||
===Product Owner=== |
===Product Owner=== |
||
Line 75: | Line 75: | ||
Along with the ScrumMaster, the Team has the greatest change in responsibilities over traditional project management. Tasks that the Team must do that may be new to them are estimations, self-management and self-organization. These tasks, often left to the Project Manager, are daily task for the team using scrum. |
Along with the ScrumMaster, the Team has the greatest change in responsibilities over traditional project management. Tasks that the Team must do that may be new to them are estimations, self-management and self-organization. These tasks, often left to the Project Manager, are daily task for the team using scrum. |
||
In the sprint planning meeting the team |
In the sprint planning meeting, the team is be provided a list of prioritized features that they can work on. They will select the highest priority features that they feel they can build and complete ("complete" means fully tested and functional code that can be shipped to the customer). This will create a list called the Sprint Backlog. This list may change over the course of the sprint adding items that are required to complete the agreed upon list. No new features may be added. Each feature will have a estimate of the hours to complete. Hours-to-complete will be updated daily. |
||
Daily the team will meet for a timeboxed 15-minute meeting and each team member will answer three questions to the rest of the team: |
Daily the team will meet for a timeboxed 15-minute meeting and each team member will answer three questions to the rest of the team: |
||
Line 82: | Line 82: | ||
#What impediments need assistance in being solved? |
#What impediments need assistance in being solved? |
||
Although the questions are directed at the team, the last question needs to be addressed by the ScrumMaster, if for no other reason than to ensure it gets answered in a timely manner. If the issue is external to the group, it is the |
Although the questions are directed at the team, the last question needs to be addressed by the ScrumMaster, if for no other reason than to ensure it gets answered in a timely manner. If the issue is external to the group, it is the ScrumMaster's responsibility to resolve it. |
||
The key functions of the Team are: |
The key functions of the Team are: |
||
Line 93: | Line 93: | ||
===Reporting/Visibility=== |
===Reporting/Visibility=== |
||
Reporting on Scrum projects is inherently different than traditional projects. The primary point is that Scrum projects work on features not tasks. There are basic reports are used and the ScrumMaster can mold them to the organization where they are being deployed. These reports are: |
Reporting on Scrum projects is inherently different than traditional projects. The primary point is that Scrum projects work on features not tasks. There are basic reports that are used and the ScrumMaster can mold them to the organization where they are being deployed. These reports are: |
||
# Product Backlog |
# Product Backlog: What is intended to be in the product. This is a dynamic list so there are subsets of this report: |
||
## Previous Product Backlog |
## Previous Product Backlog: The backlog at the start of the previous sprint |
||
## Current Product Backlog |
## Current Product Backlog: The backlog at the start of the current sprint |
||
## Changes in Product Backlog |
## Changes in Product Backlog: the difference between current and previous backlog |
||
# Sprint Backlog |
# Sprint Backlog: What the team has committed to do in this sprint (updated daily for hours-to-complete) |
||
# Feature |
# Feature Burndown: A report to show features that have been completed. |
||
# Sprint |
# Sprint Review: Although not a report, this demonstration of shippable functionality provides the ''fait accompli'' to show the work is complete. |
||
===Project Planning=== |
===Project Planning=== |
||
Schwaber describes the |
Schwaber describes the tasks required to plan and set expectations of a scrum project. He covers: |
||
*What the funding party should expect |
*What the funding party should expect, |
||
*What progress will be seen in each sprint |
*What progress will be seen in each sprint, |
||
*What the value of Scrum is and why stakeholders can expect |
*What the value of Scrum is and why stakeholders can expect successful delivery, |
||
*What is meant by "Done", since an iterative process implies open ended |
*What is meant by "Done", since an iterative process implies open ended, |
||
*How a collaborative process works |
*How a collaborative process works, |
||
*The meaning of estimates and expectations |
*The meaning of estimates and expectations. |
||
===Scaling Scrum=== |
===Scaling Scrum=== |
||
Line 254: | Line 254: | ||
==External References== |
==External References== |
||
http://www.controlchaos.com/ Schwaber's scrum website |
http://www.controlchaos.com/ Schwaber's scrum website |
||
http://www.scrumalliance.org/ Scrum Alliance (trademark holders of "Certified ScrumMaster" and "ScrumMaster") |
http://www.scrumalliance.org/ Scrum Alliance (trademark holders of "Certified ScrumMaster" and "ScrumMaster") |
||
<!-- |
<!-- |
Revision as of 21:36, 13 July 2006
File:APMScrum(Thumb).jpg | |
Author | Ken Schwaber |
---|---|
Language | English |
Genre | Business, Project Management, Scrum (management) |
Publisher | Microsoft Press |
Publication date | January 2004 |
Publication place | United States |
Media type | Print (Paperback) |
Pages | 163 |
ISBN | ISBN 073561993X Parameter error in {{ISBNT}}: invalid character |
Summary
Agile Project Management with Scrum, by Ken Schwaber, describes the process of managing a Scrum software development project. It uses a mixture of definitions and case studies to educate a would-be Scrum manager (aka ScrumMasterTM) on scrum, the major players in a scrum project and the ScrumMaster's role. The case studies exhibited are both success and failure cases to provide learning capabilities in both directions.
The book presumes very little knowledge of scrum and agile processes. The appendix supplies a variety of background data that might be needed by the novice.
The book is relatively short and easy to read.
Analysis
Schwaber defines the concept of empirical process control and uses this as the foundation for justification of the scrum process. His claim is that in the "real world" of software development most projects that build or improve a product are breaking new ground and cannot use defined process control, as might be used in truly repetitive projects. Empirical process control relies on actual observed data to affect the project and change its execution. The iterative nature of scrum (see Figure 1) provides adjustments to the process every cycle (30 days) allowing it to adapt to the current situation.
As with other agile processes, timeboxing is important to minimize many sources of waste:
- Dwelling on features that are not top priority.
- Minimizing excess documentation.
- Creating deployable product — increasing Return on Investment ( ROI)
- Discussions in large groups where one-on-one interaction is needed.
The heart of scrum is iterative incremental development and delivery. Figure 1 summarizes the flow of a scrum process.
- A Product Backlog is created.
- An eight hour meeting is held to define the work to be done. The first four hours is for the Product Owner to define the highest priority features and the second four hours is for the Team to commit to a work plan for the Sprint.
- All work is done in 30-day increments. Each day there is a Scrum daily meeting (15-minutes) where the following questions are addressed within the Team:
- What was completed yesterday?
- What is planned for today?
- What is in the way of completing the work?
- At the end of the Sprint there is a four hour meeting with the stakeholders where shippable product is demonstrated.
- If the stakeholders want to deploy the product, a deployment sprint is executed.
- If more iterations are needed and funded, then the Product Owner presents the updated Product Backlog and the process starts over.
Scrum projects to not have a manager as with traditional projects. Management is done by a group of three set of people — ScrumMaster, Product Owner and The Team.
ScrumMaster
The ScrumMaster is somewhat analogous to a Project Manager in traditional projects, but Schwaber is quick to note this is only an analogy. There are significant differences. The primary difference and key that makes scrum work is that the ScrumMaster does not manage the team — the team is self-managed. The ScrumMaster provides leadership to the project.
The key functions of the ScrumMaster are:
- Enforce the scrum rules,
- Teach the concepts of scrum,
- Shield the team from outside disturbances,
- Remove obstacles,
- Mold scrum into the company culture
The ScrumMaster must be dedicated to the project and continually observe the Team and their progress to determine signs where the scrum rules are not being followed. Through case studies, Schwaber provides examples of common failures of ScrumMasters (including his own) to educate the reader on the process, hence providing a list of what a ScrumMaster is not. A ScrumMaster does not:
- Assign work to the team,
- Run the daily scrum,
- Manage task done by the Team,
- Change priorities of the Team (inside or outside the Sprint).
Product Owner
The Product Owner (analogous to a Product Manager) manages the product and works with the stakeholders and the end user to define the final product and set priorities for feature development.
The key functions of the Product Owner are:
- Represent all stakeholders,
- Provide funding,
- Define requirements,
- Set priorities,
- Determine return on investment.
The Team
Along with the ScrumMaster, the Team has the greatest change in responsibilities over traditional project management. Tasks that the Team must do that may be new to them are estimations, self-management and self-organization. These tasks, often left to the Project Manager, are daily task for the team using scrum.
In the sprint planning meeting, the team is be provided a list of prioritized features that they can work on. They will select the highest priority features that they feel they can build and complete ("complete" means fully tested and functional code that can be shipped to the customer). This will create a list called the Sprint Backlog. This list may change over the course of the sprint adding items that are required to complete the agreed upon list. No new features may be added. Each feature will have a estimate of the hours to complete. Hours-to-complete will be updated daily.
Daily the team will meet for a timeboxed 15-minute meeting and each team member will answer three questions to the rest of the team:
- What was accomplished since yesterday's meeting?
- What is planned to be done today?
- What impediments need assistance in being solved?
Although the questions are directed at the team, the last question needs to be addressed by the ScrumMaster, if for no other reason than to ensure it gets answered in a timely manner. If the issue is external to the group, it is the ScrumMaster's responsibility to resolve it.
The key functions of the Team are:
- Responsible for building the functionality of the product,
- Self-organized their work to achieve Sprint results,
- Self-managed their tasks,
- Perform cross-functional duties,
- Present shippable product at scrum review,
- Run the daily scrum meeting.
Reporting/Visibility
Reporting on Scrum projects is inherently different than traditional projects. The primary point is that Scrum projects work on features not tasks. There are basic reports that are used and the ScrumMaster can mold them to the organization where they are being deployed. These reports are:
- Product Backlog: What is intended to be in the product. This is a dynamic list so there are subsets of this report:
- Previous Product Backlog: The backlog at the start of the previous sprint
- Current Product Backlog: The backlog at the start of the current sprint
- Changes in Product Backlog: the difference between current and previous backlog
- Sprint Backlog: What the team has committed to do in this sprint (updated daily for hours-to-complete)
- Feature Burndown: A report to show features that have been completed.
- Sprint Review: Although not a report, this demonstration of shippable functionality provides the fait accompli to show the work is complete.
Project Planning
Schwaber describes the tasks required to plan and set expectations of a scrum project. He covers:
- What the funding party should expect,
- What progress will be seen in each sprint,
- What the value of Scrum is and why stakeholders can expect successful delivery,
- What is meant by "Done", since an iterative process implies open ended,
- How a collaborative process works,
- The meaning of estimates and expectations.
Scaling Scrum
When scaling Scrum to larger projects Schwaber provides a few guidelines:
- Attempt to keep the team size to eight.
- Do not engage all the teams until the infrastructure is built. This may require the first few sprints being done by only one or two teams and only non-functional requirements being built.
- Divide the work into teams that logically represent the work and minimize the need for multiple assignments of people.
- Create a daily scrum meeting of representatives of each scrum, held after the daily scrum.
Appendices
The appendix contains invaluable material for someone new to Scrum. The "Rules" enumerates the rules for each major activity in the Project — Sprint Planning Meeting, Daily Scrum Meeting, Sprint, Sprint Review Meeting and Sprint Retrospective Meeting.
Other appendices provide definitions and applicability to scrum in specific project situations.
Complete Table of Contents
- Forward: Mike Cohn
- Forward: Mary Poppendieck
- Acknowledgements
- Introduction
- Backdrop: The Science Of Scrum
- Empirical Process Control
- Complex Software development
- The Skeleton and Heart of Scrum
- Scrum Roles
- Scrum Flow
- Scrum Artifacts
- Product Backlog
- Sprint Backlog
- Increment of Potentially Shippable Product Functionality
- New Management Responsibilities
- The ScrumMaster at MetaEco
- The Situation at MetaEco
- The ScrumMaster in action
- The ScrumMaster's Value
- The Product Owner at MegaEnergy
- The Situation at MegaEnergy
- The Product Owner in action
- The Product Owner's Value
- The Team at Service1st
- The Situation at Service1st
- The Team in action
- The Team's Value
- The ScrumMaster at MetaEco
- The ScrumMaster
- The Untrained ScrumMaster at Trey Research
- What was Wrong
- Lessons Learned
- The Untrained ScrumMaster at Litware
- What was Wrong
- Lessons Learned
- Overzealous at Contoso.com
- Being Right Isn't Everything
- Lessons Learned
- Wolves at MegaFund
- Wolves Strike
- Lessons Learned
- The Untrained ScrumMaster at Trey Research
- Bringing Order to Chaos
- The situation at Service1st
- Application of Scrum
- Lessons Learned
- The situation at Tree Business Publishing
- Application of Scrum
- Lessons Learned
- The situation at Lapsec
- Application of Scrum
- Lessons Learned
- The situation at Service1st
- The Product Owner
- Customer and Team Collaboration
- Getting Service1st Management Back in Action
- Sprint Review Meeting
- Lessons Learned
- Fixing the Problem of XFlow at MegaFund
- Addressing the Problem
- Lessons Learned
- Company Goals at TechCore
- How Scrum Helped TechCore
- Lessons Learned
- Company Goals at MegaBank Funds Transfer System
- How Scrum helped FTS
- Lessons Learned
- Planning the Scrum Project
- Managing Cash at MegaBank
- The Two-day Sprint Planning
- Lessons Learned
- Certified ScrumMasters Take on Return on Investment (ROI)
- MLBTix
- How the Teams Responded To This Exercise
- Lessons Learned
- Managing Cash at MegaBank
- Project Reporting—Keeping Everything Visible
- New Project Reporting as the MegaEnergy Title Project
- Solving the Problem
- Lessons Learned
- Getting More Information at MegaBank
- Solving the Problem
- Lessons Learned
- Not Everything is Visible at Service1st
- The Reality
- Lessons Learned
- New Project Reporting as the MegaEnergy Title Project
- The Team
- Team Formation at Service 1st
- Learning Who is Boss: The Transition
- Learning to Engineer Better: The Transition
- Learning to Self-Organize: The Transition
- Estimating Workload: The Transition
- Learning to Have Fun While Working: The Transition
- Giving the Team a Chance at WebNewSite
- Background
- Lessons Learned
- Team Formation at Service 1st
- Scaling Projects Using Scrum
- Scaling at MegaFund
- Approach
- Lessons Learned
- Scrum Scaling
- Scaling at Medcinsoft
- Approach
- Bug Fixing
- Lessons Learned
- Scaling at MegaFund
- Appendices
- Rules
- Sprint Planning Meeting
- Daily Scrum Meeting
- Sprint
- Sprint Review Meeting
- Sprint Retrospective Meeting
- Definitions
- Resources
- Fixed-Price, Fixed Date Contracts
- How to Gain Competitive Advantage
- How to Ignore Competitive Advantage
- Capability Maturity Model (CMM)
- CMM at MegaFund
- SEI, CMM, and Scrum
- Index
Other Books
- Agile Project Management (book), Jim Highsmith, Pearson Education/Addison-Wesley, March 2004, 277pp, ISBN 0321219775
External References
http://www.controlchaos.com/ Schwaber's scrum website
http://www.scrumalliance.org/ Scrum Alliance (trademark holders of "Certified ScrumMaster" and "ScrumMaster")