...
- Brian Lance blance@uci.edu, DUE Data & Development
- Mel Layos mlayos@uci.edu, UC Recruit Application Support
- Erik Kelly erkelly@uci.edu, Academic Web Technologies
- Victor Pham phamvd@uci.edu, Chancellor & Provost IT
What is Scrum?
Scrum is an agile way to manage a project. Instead of planning everything up front, Scrum teams plan and deliver a product iteratively, aiming to avoid rework and focus more effort on what the stakeholders find useful. Scrum iterations are called "sprints" and typically last 2 weeks (some teams standardize on 3 or 4 weeks, and some go for 1-week sprints).
Compared to traditional project management or waterfall, Scrum typically has less documentation, more customer and team collaboration, more frequent releases, and regular events to facilitate team process improvements.
Scrum Roles
Scrum defines a few roles that allow us to know who's doing what:
...
Please see the Scrum Alliance Scrum Guide for more complete information on Scrum and the roles involved.
Sprint Planning
Before the sprint, the team works with a Product Owner to develop the product/project vision statement and begin gathering high-level needs and documenting requirements using cards. Requirements can take form in physical or virtual cards containing some or all of the following information:
...
Committing to deliver a set of cards within a sprint is a team decision: the Product Owner and other non-team members assist by providing information and clarification only. As such, the team collaboratively estimates each card and jointly decides whether it will "fit" within the sprint. Many teams use an agile consensus-based estimation technique called Planning Poker to make these decisions, which facilitates discussion and encourages all voices to be heard.
Daily Standups and the Sprint
Every day the team comes together for a 5-15 minute daily standup. At this meeting the team talks about what they're doing. For small teams, each team member can address what they did yesterday, what they plan on doing today, and identify any impediments that they're facing. Larger teams often find it more helpful to "run the board" and talk about each card in the current sprint, letting each member speak up as necessary. Team members volunteer their assistance in an effort to quickly remove impediments. With only a few weeks to deliver from design to testing, an unresolved impediment can very quickly lead to a missed sprint commitment.
...
The team's shared responsibility for delivering means that everyone helps to make the process better. Automated tools for testing and deployment are often brought in to support frequent releases, both to testing environments and to production.
End of Sprint
At the end of the sprint the team Demos their potentially shippable release. The Product Owner provides suggestions for incorporation into future sprints. Ultimately the Product Owner will accept or reject the release. If accepted, the release is deployed. Early in the project this may mean deploying to a pre-production or test server, but the important part is that it is released. A release demonstrates that there are no loose ends or subsequent tasks needed before the release is usable by users. If the release is rejected by the Product Owner, then the group discusses what changes are necessary in order to launch.
...
The team and the Product Owner then begin again, starting a new sprint by planning what's most important to get done next.
Scrum Artifacts
- Product Backlog: prioritized list of everything that might be needed in the product
- Sprint Backlog: the set of the Product Backlog items selected for a Sprint. Teams use index cards, Trello, or other tools to track progress
- Burn-downs, burn-ups, or cumulative flows: used by some teams to track progress towards the goal
Benefits of Scrum
Each stakeholder often sees a different reason to use Scrum. The following are benefits OIT Scrum teams have observed from using Scrum:
- Customers get:
- Transparency & trust: regularly see evidence of project progress at demos, standups, etc...
- Effectiveness: team focuses on delivering the highest value functionality first
- The Team gets:
- Empowerment: teams decide how to deliver potentially shippable increments, increasing ownership
- Efficiency: teams organize and manage their own work, leading to improvements in efficiency and effectiveness
- Operations gets:
- Collaboration: developers and operations partner to improve reliability, security, and speed
- Speed: Releasing every two weeks (or more frequently) encourages automation, version control, and configuration management
- Leadership gets:
- Customer-focus: teams collaborate with customers and routinely ask for their feedback, leading to improved results
- Innovative: self-organization can promote a more innovative and creative environment
- Staff engagement: team buy-in and shared ownership are essential to employee satisfaction and engagement
- Cross-training: peer reviews, collaborative planning, pairing, etc... spreads knowledge throughout the team, reducing the bus factor
Scrum Resources
Please consider adding resources that have been useful to you in adopting Scrum.
...