Scrum for your lives
Everything is awesome
So many fantastic ideas to build
Sadly, none of them is a time machine
Waterfall
Everything is locked in up-front
Teams spend months designing, architecting, developing
Right before completion, pieces are put together and tested
At the very end, it’s presented to the customer, who of course, loves it and says it’s exactly what they always wanted.
Agile manifesto
Individuals and interactions
Working software
Customer collaboration
Responding to change
processes and tools
comprehensive documentation
contract negotiation
following a plan
over
over
over
over
Scrum
Good for teams working toward milestones and deliverables
Timeframe and effort based
Kanban
Good for teams with small tasks and tight turnaround (Ops, e.g.)
Issue count based
How does SCRUM help?
- Breaking a vision statement into small chunks
- Scope (i.e., Features) is what's flexible
- Testing happens in each cycle, instead of at the end
The goal is not to do as many tasks as possible. The goal is to have as great an impact as possible by doing as few tasks as possible.
- Agile Manifesto Principles
scrum
Roles
Product owner
Responsible for the Product and the Development team
The sole person responsible for managing the Product Backlog
Development Team
Cross-functional, with all of the skills as a team necessary to create each increment
7 (+/-2) people, typically
Scrum Master
Responsible for ensuring process is understood and enacted
Exists to protect the development team and the process
Wait, what aboutme?
Vision
Roadmap
Release
Sprint
Day
yearly or more
biannual
quarterly
bi-weekly to monthly
daily
Five levels of Agile planning
Vision
The broadest picture you can paint of the future.
Further planning will detail the vision & may divert from the vision because the future will bring us a changed perspective.
Roadmap
-
Communicate the whole picture
-
Determine and communicate when releases are needed
-
Determine what functionality is sufficient for each release
-
Focus on business value derived from the releases
Release
Used when there are multiple teams with dependencies.
- Planned around fixed release dates, themes, and feature sets
- Requires prioritized, rough estimated backlog
- Planning by Product Owner and whole dev team
- Works well to link to a minimum viable product* release
Sprint
Creating a “Done”, useable, and releasable increment.
- Based on prioritized backlog & the individual teams' capacity
-
Sprint Goal: objective that will be met, why the team is building this increment
-
Daily Planning is part of the Sprint*
The
Backlog
The backlog
an ordered list of everything that might be needed for the product
Product Owner is solely responsible for it
Dev Team provide rough effort estimates for everything on the backlog
Smaller, broken down issues to work on first, huge generic ones further away
Primary issue type is something called a User Story
(IS EVERYTHING)
User Story
a plain English, first person description of a feature
"As an [Email User], I want to [Archive Messages] so that [my Inbox isn't crowded.]"
User stories continue to get refined into more and more discrete chunks as you get closer to the point when you have to build that feature.
Good USER STORIES require investment
- Independent
- Negotiable
- Valuable
- Estimable
- Small
- Testable
SPACESHIPS!
Estimates!
Humans are terrible estimators
estimate effort
- No assumption of accuracy
- Fewer options, like simple numbers or T-Shirt Sizes
- Easier to compare to stuff you've done before
Instead of estimating hours,
Story Points
1, 2, 3, 5, 8, 13, 20
A really rough numerical scale for estimating effort on User Stories
Numbers get wider apart the more effort something takes to accept that stuff takes longer
Bigger items need to get broken down into smaller chunks
Developers only
Only developers get to estimate how much effort something is.
- If I'm not actually building it, I don't get to tell you it's "so simple, just do it, just do it, it's easy"
- All developers should agree on the estimates
- Effort includes all the steps to reach "done"
- Development
- Local Testing
- Code Review
- Quality Assurance
- User Acceptance Testing
The
sprint
What's in a sprint?
-
Sprint Planning
-
Daily Scrums
-
the development work
-
Sprint Review
-
Sprint Retrospective
Sprint planning
A meeting before each new sprint
What can be delivered this sprint?
Product Owner discusses objective and backlog items that would achieve it
How will we get it done?
Development team forecasts what it can do in the upcoming sprint
Break down stories into sub-tasks of no more than a day or two for the first things you plan to tackle
Daily Scrums
A max 15-minute daily meeting for dev team and Product Owner
Three questions to answer:
- What did I do yesterday?
- What will I do today?
- Do I see any impediment or blocker?
Often followed by more detailed discussions amongst team members to adapt or re-plan
Sprint Review
Informal at the end of the sprint
Includes dev team, product owner, stakeholders
- Explain what has been done and not done
- Demo the work that is done, answer questions
- PO discusses current backlog, perhaps rough projections
- Entire group collaborates on most valuable to do next
Result is a revised backlog to help plan the next sprint
Retrospective
Before next Sprint Planning
Includes dev team, product owner, scrum master
Meant for team to provide self feedback and establish process improvements
so many
Meetings!
It sounds much worse than it is.
Focus is talking with each other during development, not about the number of meetings you have.
Questions?
Agile Overview: Scrum for Your Lives
By Regan Davis
Agile Overview: Scrum for Your Lives
A primer on the main concepts of Scrum and Agile development.
- 833