Scrum is one of many "agile" approaches to complex projects. The basic idea is:
- Team commits to delivering a working product on a particular date (not more than 30 days in the future)
- Team builds the working product
- Team demonstrates the working product on the predetermined date
- Feedback from stakeholders is given to the team during the demonstration
One iteration of the above steps is termed a Sprint. Development of a product is the result of many sprints; however, at the end of each sprint, a working product is demonstrated and inspected.
Complex projects involve lots of uncertainty.
Scrum seeks to manage this uncertainty by focusing on short cycles of activity that result in a shipable product. The product must address a portion of the problem the project is designed to target.
These short cycles help manage uncertainty by:
- Providing a concrete picture of the status of the product, and
- Providing an opportunity to adjust development efforts based on changing market conditions and/or feedback from the demonstration of the working product
Uncertainty is addressed by upholding three tenants:
- Transparency - Significant aspects of the process must be clear to those responsible for the outcome. In addition to honest communication, a common vocabularly must be shared and understood by all participants. For example, a common definition of "done" must be shared by both those accepting the product and those delivering the product.
- Inspection - Participants frequently inspect Scrum artifacts in order to ensure sufficient progress towards the end goal.
- Adaptation - If an inspector identifies a concern, the team should adapt in order to rectify the concern.
Complex projects involve lots of people. Scrum focuses on the organization of the Scrum team and the roles within the Scrum team. Team members serve one or more the following roles:
- Product Owner - determines what needs to be built. [In our case, this will be someone outside the team.]
- Development Team - builds what is needed and demonstrates that it is built.
- Scrum Master/Evangelist - promotes Scrum ideals and ensures the team is productive and constantly improving. [Team members will rotate this role.]
Complex projects involve lots of tangible things. These things include:
- Product backlog - A list of product backlog items (PBIs)1) to be integrated into the working product.
- Sprint backlog - A subset of the product backlog that the team has committed to delivering in the working product by the end of the Sprint, along with a plan (typically in the form of smaller tasks/sub-cases) for how the development team will accomplish this.
- Increment - The work product created during the sprint and demonstrated at the end of the sprint.
Complex projects involve lots of events. Scrum requires a specific set of events and proscribes a finite duration and purpose for each. Each sprint is composed of the following events:
- Planning - Results in a sprint goal and sprint backlog. [5%]
- Daily Scrum - daily meeting to synchronize development activities and plan for the next 24 hours. Focus should be on progress towards the sprint goal. Typically facilitated by the Scrum Evangelist. [no more than 15 minutes]
- Review - Meeting to demonstrate product increment to stakeholders and receive feedback. [3%]
- Retrospective - Scrum team inspects the process used during the sprint and commits to adapt in the next sprint when appropriate. [2%]
Percentages in square brackets are the typical amount of time spent on these events. If you are spending more than this, you may need to reevaluate your process.
Here are a few good descriptions of the scrum framework:
Last modified: Wednesday, 27-Apr-2016 18:20:06 CDT