A few months into the COVID-19 pandemic, I realized that I was burned out and had been for quite some time. I was balancing a lot of new tasks on top of my regular work—such as building up community groups at Shopify and learning how to work from home with no office space.
These past few years have been intense, with ongoing crises and change. It’s altered the way many of us work and what we value most. I expected to be able to continue working in the same way I always had, but that wasn’t sustainable. Things needed to change, so I took a month off, and came back with clarity on what boundaries and expectations I need to set to maintain a sustainable work-life balance.
In this Guide, you will learn:
Why I chose to use GitHub Projects in my day-to-day work.
How to get started with Projects for your team’s backlogs and roadmaps.
How to keep your projects up-to-date.
There is no single solution to preventing or recovering from burnout. Ultimately, it’s about balancing your resources, which include time, physical, and emotional energy. Though there’s no product you can buy to “cure” burnout, I’ve found GitHub Projects immensely helpful in managing resources and building a more sustainable work-life balance with my team.
When I returned to work, I made a list of what I felt I needed to bring work-life into balance. I found these three things are what people need to do their best work:
Build clarity into your role priorities so you can determine what you’re expected to focus on and when you need to pivot.
Focus on what is most important and delegate or defer what isn’t.
Build agency by focusing your energies into areas where you have influence, instead of wasting them where you do not.
While I worked on these points for my own recovery, I shared these insights with the teams and communities I work with to help anyone experiencing a similar challenge. As a program manager, I approached this by implementing these goals into my teams’ task management practices using GitHub Projects. As most of the teams already use GitHub in their day-to-day, it was the logical choice: Putting task management in the same tool as other work would prevent context switching and help us to find the focus we sought.
What is GitHub Projects?
GitHub Projects is a great way to track and create groupings and views of issues and pull requests. It offers several ways to organize content, such as via a table (spreadsheet) view or a board (kanban) view, and allows you to add project-specific details to issues and pull requests through different field types, such as progress and priority.
Example: This GIF shows a personal backlog featuring a board (kanban) view, table (spreadsheet) view, and a roadmap (timeline) view.
A question I often field from people with a non-coding-background is, “Do I need to know how to ‘code’ to use GitHub Projects?” The short answer is no. You can write in plain text if you don’t need extra formatting, otherwise the editor allows you to use Markdown for formatting.
Some related concepts and GitHub features that are useful to understand include organizations and repositories, as you can connect projects to both. Put simply, organizations are shared accounts where businesses and open-source projects can collaborate across many projects at once, while a repository is a collection of a project's files and each file’s revision history. And once you’re comfortable with Projects and want to take it to the next level, I’d recommend learning about GitHub Actions, which allow you to automate, customize, and execute workflows right in your repositories.
How to get started on a new project
Recall the three key words from the goals I established at the beginning of my recovery: clarity, focus, and agency. As a program manager, lead, or individual contributor, you should work to provide these for your initiatives, your team(s), and your teammates, as they are often needed for us to do our best work.
For example, at the start of an initiative, we usually have a bunch of questions spinning around in our heads. Our quest for clarity begins here, and the uncertainty can be uncomfortable. We want to know where to go to see what to work on as soon as possible.
Then, throughout the initiative, we want the focus that allows us to prioritize for the long term. And we want the agency to choose what to work on. We want to feel like the work that we do is connected to a greater purpose. How can we work together and stay aligned while retaining the freedom of individuality? How do we even get started?
Here are three steps to begin:
Build your collection of tools
Decide on your project format
Ask questions to see where clarity is needed
Task management is among the multitude of techniques and tools involved in software development. Building your collection of tools involves determining which ones you’ll use to attain clarity and promote both focus and agency. Use this stage to take inventory of the tools that your team already uses to see which are needed for the task management process, and determine which features are most important for your team.
When I first looked at adopting GitHub Projects, I perused example projects from other teams and noticed a pattern. There were two primary formats: One focused on the roadmap, and the other focused on the backlog. There were also hybrids of the two. With these formats in mind, I created some templates so I could create new projects to have similar structures. And with the recently-added “Make a copy” feature, I’m able to quickly create new projects with the structure I want even faster. To decide which type you want, take inventory of work in progress compared with your roadmap, and determine what stage each of your initiatives is at. Also, explore the teams and their structures to determine what project views are needed for various audiences, such as leadership or contributors. Leaders want visibility on how the project is tracking towards the long term goals; contributors’ first priority is to see what they need to complete next to work towards a long-term goal.
Since I manage many long-term initiatives that involve teams from different parts of Shopify, I tend to use a hybrid approach for my GitHub Projects. This provides a better view for all involved into where we’ve been, where we are now, and where we’re headed. To get more clarity on what kind of project you need, ask yourself: Is the lens you’re building focused on an initiative with a set period of time or does it need to live on indefinitely?
If you don’t think a hybrid approach will work for you, you can choose from one of the other two: team backlog or feature roadmap.
Example: This image shows the first step after creating a project. You have the option to choose project templates at this stage.
For a backlog project, you’ll need to answer some questions:
Triaging: How do issues and pull requests get added to the board? How often do they get added and by who?
Goals: What are the cycle goals? Are there any that need to be added or updated on the board?
Priority: What are the top priorities for this week? Are there any changes in priority? What factors do you need to consider to calculate priority?
Assignment: Which items are assigned or need to be assigned?
Progress: What is the progress or status of the priority items?
Example: This GIF shows a personal backlog featuring a board (kanban) view and table (spreadsheet) view.
For a roadmap project, you’ll need to consider:
Timing: When is the initiative kicking off? Are we on track to move to the next stage? If not, what do we need to do to get there? When do we expect to achieve our definitions of “done?"
Priority: What factors are you using to prioritize items? Is it based on their reach, impact, confidence, effort (RICE method)?
Audiences: Who comprises our stakeholder and end-user audiences? What do they each care about most? When should we loop them in?
Status: Is the project on track or at risk?
Hierarchy: Do you need to split work into multiple issues or task lists? Do you have multiple releases? Do any of the issues depend on one another?
Example: This image shows a program checklist template featuring a table (spreadsheet) view of draft issues, grouped by the phases of a program.
GitHub Projects offers the ability to have various views within one project, allowing for the hybrid approach I described above. For example, you can save filtered views for roadmap pieces and filtered views for team backlogs in the same project. From there, you can also subdivide items in a project to further organize the content.
Example: This image shows the project board for Polaris, Shopify’s open source design system. Polaris helps us evolve the merchant experience with our community of developers. We love contributions in any form, such as Discussions, Issues, and Pull Requests.
Keeping your projects up to date
Once you’ve set up the project, there are a few things to consider to ensure it remains a source of truth. Revisit your collection of tools and examine who or what adds issues to your projects and when. For Black Friday and Cyber Monday (BFCM) planning, I use custom tooling to bulk-create issues for many repositories. Eventually, I would like to automatically add these to a project. For bug reports, people outside the team often create the issues, so I use labels to help add and find them. When creating new issues in the project, I start with draft issues. Once you have these details, then you can create rituals, set rules of engagement for your project, and implement automation to further reduce mental load.
Example: This is a diagram showing which user groups are creating issues for a specific project. User groups include ones created by a bulk issue tool, tech support, and a team member. After an issue is created for this project, the project manager ensures that it’s the right project and fills out any additional project details needed.
Rituals to consider include:
Creating a rotation of people responsible for grooming the backlog each week.
Weekly stand-ups to stay aligned on work in progress and priorities.
Cycle and mid-cycle reviews (most of my teams use a 6-week cycle) to stay aligned on short-term goals.
Bi-weekly demos to validate progress.
Quarterly all-hands meetings to celebrate goals achieved and share predictions on upcoming achievements.
Rules of engagement to consider include:
Take initiative. If you see something outdated on the project, update it so the project remains a source of truth.
Share updates early and often. This will increase peoples’ confidence that the project is a timely source of truth.
Some context > no context. If you don’t have all the details yet, share what you have and state what details still need to be defined.
Assume positive intent when sharing or receiving feedback. If the feedback is about how the team is approaching the project, see what adjustments can be made for the good of the project’s goals.
Once rituals are chosen and adopted, there may be additional automation opportunities, such as:
Using GitHub Actions to add items on the project.
Integrating with Slack to provide commands to quickly add new Issues to the project.
Creating automatic calendar or Slack alerts when the deadline is past.
Looking back, I’ve come a long way since the start of my burnout recovery. I’ve gotten the focus, clarity, and sense of agency I needed to build a more sustainable work-life balance. I take mental health days when I need to and encourage others to do the same. I’m excited about the work I do at Shopify. I’ve even become someone people go to when they need help figuring out GitHub Projects.
I hope my story inspires you to reach out for support when you need it and to create an environment that encourages a sustainable workload for others. I also hope you get the chance to try out all the new features that Projects has to offer! I’d recommend reading this article to explore how people with different roles may approach GitHub Projects as well as my GitHub Universe talk to explore a few project demos. You can also copy one of my Project templates to get started. To stay up to date on the newest features, I’d recommend the changelog. Make sure to bookmark GitHub Projects’ general documentation as well.
If you have some cool uses of GitHub Projects, I would love to see them! Tag me in an issue or discussion @lisa-vanderschuit.