Ultimate Setup Series: Best Practices for Iterations
Welcome to Shortcut! Shortcut is project management without all the management, built by our software team for your software team. We help you plan, collaborate, build, and measure success. Speaking of success, we want to make sure that you’re set up for... wait for it…
Wait for it a little bit more…
Wait one more second...
That’s why we’ve created this Ultimate Setup Series. This is the sixth post in this series. Read the last post here, which is about best practices for backlog management. In this post, we’ll talk about best practices for running sprints in Shortcut using Iterations.
Running sprints sounds exhausting if you’re not cut out for track & field. Luckily, running sprints in software development vis a vis Shortcut is considerably less exhausting. Plus, you still get the release of endorphins, and the dopamine hit that follows with the sense of accomplishment. Either way, your brain’s reward center will thank you.
In Shortcut, an Iteration is a time-boxed period of development for a collection of Stories that can span multiple Epics and Workflows, and can be used to track sprint cycles. If your team is running sprints or some version of them, this path – er… track 🏃- is for you!
We know there are a lot of nuances to how teams run sprints and adhere to agile methodologies and we see this path as a great way for teams inspired by these frameworks to get the most out of Shortcut. Keep going to learn best practices for using, planning, and viewing Iterations and how the Shortcut team does Story pointing.
Planning & Creating Iterations
Setup your Iterations in the planning process. Iteration creation tip: the Iteration is another place to keep the hub concept, where all the key Docs and content related to that Iteration can be found.
Make this space a hub for any important information that the team or the company would want to find when visiting the Iteration.
- Use markdown to create a table.
- Outline things like the Release, Tactic, OKR, and more
- Create a points goal chart to track capacity, points goal, and points delivered
- Copy markdown below to create a table
| No Dev | Capacity | Points Goal|Points Delivered |
| ----------- | ----------- |----------- |----------- || x|xx% | xx |xx |
Attach your Iteration Doc, your planning Doc, and any other Docs that are relevant to the Iteration.
Here are some ways to make Iteration refinement easier in Shortcut.
- Use the Priority Field
- The Priority Field allows for easy filtering. It makes it easy to quickly see what items are the highest priority.
- On an Epic you can use the Field filter to sort by High Priority. On the Stories page you can also use the Priority field to quickly filter for high priority Stories.
Use the Stories page to drag and drop to prioritize Stories.
A Team Roadmap Doc is a great place to outline what Epics to be pulling from. Creating this prioritized shortlist makes it easy to know what the team's focus is and takes the guesswork out of prioritizing.
Pull Stories into an Iteration
When building out your Iterations there are a couple of views that make it easy to add Stories to your Iteration. Try them all and figure out what works best for you.
- Stories page: Sort the Stories page by Workflow, Epic, and State to see the Stories that can be added to the Iteration. Use the bulk edit feature to add in more than one at a time.
- Epics: Go to the Epic the team is working on and sort by State. Then click to open or edit inline to add the Story to the Iteration.
- Stories drawer: On the Iterations page open the Stories drawer and then sort either by Epic or Workflow and drag and drop the Stories into the Iteration.
Now that you have created and refined your Iterations, there are a couple of best practices for viewing your work during standup meetings or anytime you or your team want to see what’s in progress and how it’s going.
Create a Saved Space on the Stories page so you can quickly see the filtered view of the Stories in the current Iteration. To create the Space you can either use the Quick Filter Started Iterations or you can filter specifically to the Iteration you want to see. Once you have the filter view Save and name the Space. You can also Share this Space so everyone in Shortcut can view it. This makes it easy to view the Iterations current work, make updates, assign points, and more. You also have the option to view in Kanban or table view. One common way we use this is to view in table and then sort by owner to see what each person is working on and what still needs to be assigned out.
Iterations Detail Page
Another favorite way to view Iterations and walk through updates in Standups is the Iterations detail page. To view click into an Iteration and then you have the option to Group by whatever is needed. In many cases, Owner is a good grouping so you can view what each person owns and can see details on how it is going. This will also make it clear what Stories haven’t been assigned out and you can click in to update or edit in line.
Iteration planning meeting Doc
The Sprint/Iteration planning template in Shortcut gives you a great template to use for Iteration planning. To use this template, go into Shortcut and Sprint/Iteration planning and start using it for your team!
Here are a couple of key callouts to get the most out of this template.
- Link Iteration and Doc- Shortcut allows you to create an Iteration directly from the Doc or link an existing Iteration in the Doc. You should also link this Doc to the Iteration itself. That way no matter where you are working you have everything you need.
- Celebrate what is accomplished and be reflective- In the Decide on Realistic Goals section have the team commit to what they would like to accomplish. Laying this out allows for celebration and the team to really take the time to reflect on what they are building and accomplishing. One rule we live by is while goal suggestions can be made by the team goals have to be made and accepted by the owner, they aren’t assigned out from the team.
Read More: 10 Ways to Use Shortcut Docs
A Story point is a metric used in agile project management and development to estimate the difficulty of implementing a Story. There are a variety of ways to do point estimation and Shortcut allows you to edit your Estimate Scale to meet your needs.
Shortcut leverages Story points in order to:
- Help us determine a realistic amount of work for each iteration/sprint cycle.
- Ensure that we only work on bodies of development work that are small and well-understood.
At Shortcut, we use Story points to represent complexity (not time). We use a Fibonacci sequence (1, 2, 3, 5, 8, 13…) to assign points to Stories.
Points are the best way to signal that a Story is too big and needs to be broken down. Estimating by hours is less ideal, because an engineer with more experience could take 40 minutes, for instance, while another engineer might take 4 hours. Their estimates will be wildly different. However, the Story’s complexity would still be the same. This is why Shortcut, and many other folks use Story points to represent the complexity of the Story.
Story Point Scoring at Shortcut
- 0 points: We do not use 0 points in our process - even for a task that may not require development time, it will still require someone’s time and energy. So that we can account for all work we’re doing, we assign all stories at least 1 point.
- 1 point: A very straightforward task with NO unknown risks.
Example: Copy change in a place where we’ve changed copy before.
- 2 points: A pretty straightforward task, with a low risk of an unknown or unexpected complexity cropping up.
Example: Creating a new tracking event in our system, which is a task we do consistently.
- 3 points: A mildly complex task and/or some unknowns that may cause an increase in complexity as we build (but we have a pretty solid idea of how we will approach the work).
Example: Returning a new response in a payload for the frontend to consume, in an API we have worked in before.
- 5 points: A more complex task and/or a solid amount of unknowns that will eat up time while the task is worked on.
Example: Building a small feature in a part of the code that we may be unfamiliar with.
- 8 points: A pretty complex task and/or a task that is mostly unknowns.
Example: Building a feature in an area of the code we are unfamiliar with or that may have dependencies with other squads.
*Note that we do not assign more than 8 points to any 1 Story. If a Story is more than 8 points we break it down into smaller parts. In general, we also try to avoid 8-point stories unless the work absolutely cannot be broken down any further or better understood.
Assigning Points to Stories
We use pointing poker (the StoryPlan plugin for Slack) to assign points to Stories during our Refinement process. Every other week, we hold a 1-hour meeting with the entire squad. We go through the Stories, in order of priority (assigned by product) one by one in the following way:
- The stakeholder who wrote the Story gives a brief overview of the Story.
- The squad asks any clarifying questions to help us better understand the work required.
a. If any small adjustments are needed, we make them live on the call.
b. If the squad does not have enough information to know how we will tackle the Story, then we will turn the Story into a spike/research Story. That spike Story will be worked on first, and will result in the creation of a new Story, with better define criteria for how to complete the work.
- Once we have exhausted questions, the team uses StoryPlan to vote on the Story points.
a. If the votes are within 1 step of each other (e.g., if all the votes are between 1 and 2 points) then we select the higher points (so in this case, we would assign the Story 2 points).
b. If the votes are more than 1 step apart (e.g., the votes are split between 1, 2 and 3 points) then those who voted for the high and low scores would make a case for their point assignment. Once the discussion is complete, then we re-point the Story.
We have 2 types of stories that are automatically assigned point values (no voting):
- Bugs: We automatically assign bugs 3 Story points. This is because it is hard to know how complex a bug will be until we actually start to dig into the code. If the bug begins to expand beyond 3 Story points worth of work as someone works on it, then we flag that and re-evaluate.
- Spike/Research Stories: We automatically assign Spike stories 3 Story points. This acts as a timebox for how much time should be spent on the Spike. If more research is required after the 3-point allotment is complete, then we re-evaluated and potentially create another Spike Story to continue research.
Using Points to Plan our Iterations/Sprints
We use Shortcut’s reporting features to determine how many Story points our team completed during our 2-week Iterations. After about 3 iterations, the team found out they were doing around 40 points per Iteration (for a team of 6 developers, with varying levels of experience).
At the start of each Iteration, we measure the team’s capacity for that iteration (remove any out-of-office days, vacation days, etc). We then assign a proportional amount of points to the Iteration based on the team’s capacity. For example, if the squad's capacity is 70% for an Iteration, then we would assign 28 points for that iteration (70% of the 40 total points).
The team will go through the last iteration and move any stories that were incomplete to the upcoming Iteration and assess if any others were complete that were not already marked as Done. Then stories are assigned to the iteration based on points and capacity. Any stories that were not added to the upcoming iteration will be moved to the next and reassessed at the next pointing/iteration planning meeting.
That’s all for Iterations best practices. Happy sprinting 🏃! And more importantly, happy sprinting 🧑💻! Either way, enjoy the wonderful feeling of accomplishing something. And if you’re not already using Shortcut, get your endorphins by starting your free 14-day trial today. Your brain’s reward center will thank you.
For more best practices on getting the most out of Shortcut, visit the Shortcut training hub.