This scrum guide is the best resource I have found to understand the scrum framework and sprints. Highly recommended. This contains a lot of the “why?” and “how?” of scrum.
We will use Jira like always as the ultimate source of truth since it integrates with a lot of our other services (GitLab e.g.). For sprints we will use Trello since it is often used in this way and excels at quick easy updates and kanban columns, etc. Trello is by the same company as Jira (Atlassian) and is often used in concert with Jira. There are built-in ways to integrate Jira and Trello together.
Sprints are often 2 weeks but can be as short as 1 week or even as long as 6 weeks. We will try with 1 week sprints for now.
Ideally what work we plan to do for a given sprint should be decided before the sprint officially starts and deviations from that should be minimized as much as possible in order to actually take advantage of the benefits of scrum such as minimizing work in progress (WIP), context switching, re-learning, etc. and thereby increasing the flow of working code/features.
Sprints start on Monday at 10:30 where we have a Sprint Plannning meeting and end on the next Monday at 10am where our standup finalizes what cards are officially done or not done.
Daily Scrum/Standup Meeting
Each person updates their Trello cards in sprint
For the standup, update the cards you are working on so they are in the correct column (in progress, testing, blocked, etc.)
Each person gives an update on all the cards you have “in motion” (in progress, testing, blocked)
What did you do yesterday?
What are you going to do today?
Are you blocked on anything? Need help from someone or some thing (dependency on another issue e.g.)?
As a team, move cards in Review to Done
As a team, try to clear any cards in Blocked
Let’s try to keep each person’s updates not much more than a couple minutes long. Mainly just updating the in progress Trello cards and mentioning blockers. And then we can sidebar more in-depth conversations for after the standup. Meeting should be about 15-30 minutes tops.
Weekly Sprint Planning Meeting
Decide what work to do in the next sprint. Decide on Sprint Goal. Decide on what cards we want to commit to get done that Sprint and put them in the Sprint Backlog. Use Product Backlog cards as high-level guidance. Make sure cards are Agile-style increments of work with clear definition of done and a deliverable artifact (Merge, approval, passing tests, etc.)
Review what got done, what went well and what didn’t. What can we adapt for the next sprint?
Trello/KanBan Card/Issue Statuses/Columns
Icebox
Cards we think might not need to be done anymore. Cards we’re not 100% sure should be deleted (there’s a chance they will eventually become relevant again but not for the foreseeable future).
Inbox
Anyone can add what they think needs to be done at some point. Maybe a bug, idea for feature, a derivative/related task that arises out of another card you’re working on etc.
Everyone’s general responsibility as far as speaking up for a feature or bug that might need to be added to the product or sprint backlog.
Doesn’t necessarily need a Jira ticket - if we promote a card from Inbox to Product or Sprint Backlog or In Progress, etc., it needs to have a Jira ticket.
Product Backlog
Product owner(s) responsibility. Maintained by product owner (product owner is the only person modifying this).
What the product needs - features, bugfixes, etc.
Ideally already in the form of focused user stories that are ready to be added to a sprint and worked on, but might need to be more general high-level product goals or epics.
Ordered list, by priority.
What we start to draw from when planning the next sprint.
The most common type of item on a product backlog will be user stories
In simplest terms the product backlog is a to-do list for the team – a list of all of a product’s features in priority order.
Scrum master’s responsibility. Maintained by scrum master (scrum master is the only person modifying this).
Ideally in the form of focused user stories with clear definition of done/acceptance criteria with some kind of deliverable that can represent it’s status (PR, passing tests, document created, someone signing off/approving something).
Scrum master maintains this column, but when the sprint starts, any developer can pull any card from the sprint backlog to start working on.
Cards added to this column should:
be an Agile-style, incremental unit of work with a clear “Defintion of Done”/acceptance criteria.
Have a Jira issue attached to it.
Have a product label attached to it (POSS, MCP, etc.)
In general, shouldn’t be assigned yet so that theoretically anyone can pick up the card and work on it.
Ordered list, by priority
In Progress
Working on today
Blocked
By people, dependencies, or things
E.g., waiting to hear back from something on something or waiting for another card to be done or waiting for access to a repository or hitting a brick wall on a technical problem and need help.
Testing
You think it’s done, the central engineering problem seems to be solved, but you still might need to clean up the code and run or write tests or fix a build problem in the pipeline, etc.
Verifying
with testing or SMEs or stakeholders
Integration
e.g., running integration tests in the pipeline or deploying to a dev/qa/staging environment to check functionality, or fixing a build issue.
Deployment/building, dev/staging environment, etc.
Review
Approval/acceptance/socialize
When you think all of the acceptance criteria is done on a card, the card should go to the review column so it can be socialized/shared and the team owns what counts as done.
Clear procedure for moving to Done
E.g., at daily standup - shared that something is done and team moves it done.
Done (for a given sprint)
Team responsible for what gets put in Done column, but ultimately scrum master’s responsbility to look after and be accountable for what is actually done each sprint.
Definition of Ready & Definition of Done/Acceptance Criteria
Definition of Done
What counts as done for a given card will vary. Below are some examples we should think about for each card.
Unify our development team onto one Jira project - “Revlogical” e.g.
Still use Trello for Sprints and then sync up with Jira at the start and end of a Sprint
Product Owner Role
Decides Product Goal(s)
Decides what goes in to Product Backlog and its order/priority
Responsible for product
Helps clarify definition of done/acceptance criteria for cards
Scrum Master Role
Works with Product Owner to decide Sprint Goal and what goes into Sprint Backlog
Decides how to accomplish Sprint Goal and the cards'/issues' priority
Responsible for sprint and what gets done
Helps clarify definition of done/acceptance criteria for cards in sprint
Helps developers clear blockers and handle bottlenecks, complications, logistical issues, minimizing work in progress, etc.
Kind of an air traffic controller type role.
Developer
Works on cards in the sprint
Responsible for cards they pick up - completing the card’s definition of done/acceptance criteria, updating cards' status (In progress, testing, blocked, etc.)