- In this piece, you'll learn
- Your engineering team needs a system to manage projects
- Setting up your engineering team's project management system
- 1. One database for every initiative
- 2. Organize projects & customize how you see them
- 3. Collecting all your tasks for a project in one place
- 4. Work right inside your project management system
- 5. Templates standardize your processes
- 6. Best practices from the Notion engineering team
The best project management system catches everything — it communicates who's responsible for what, shows where everything stands, and surfaces dependencies and edge cases.
This is especially true for engineering projects, because they directly impact the entire company. It's essential to have a proven, scalable system to execute these nuanced, complex initiatives. And as your team grows, when engineers are focused on their individual work, they'll also need full knowledge of assignments, timelines, development stages, and scope.
Here, we'll walk you through building a project management and roadmapping system tailored specifically for engineers (we use one like it at Notion). As we've seen across dozens of engineering teams, it'll help you track projects, ensure everyone's on the same page, and provide company-wide visibility into your work.
In this piece, you'll learn
To create a database for project management and roadmapping that's efficient and transparent.
To organize that database with tags and views so you can quickly find what you need.
Best practices from the Notion engineering team for effective project tracking.
Soon, you'll be able to create a roadmap for your engineering projects that looks like this:
Your engineering team needs a system to manage projects
Not only do engineering projects impact the whole company — more importantly, they impact users. Your team is operating in a high-stakes environment. If deadlines slip or buggy products launch, there are major implications internally and externally.
In Notion, your team's project management and roadmapping system can:
Track the status of every project — bugs, tasks, sprints and large projects can be easily moved from one stage to the next with complete visibility.
Organize all the relevant materials for that project in one place — all code snippets, notes, images, or prototypes associated with a project are kept in a single place so your team can easily access them.
Be viewed multiple ways to surface important information — slice a roadmap many different ways to show only what you want to see, like which projects an engineer is assigned, or all the bug fixes scheduled to ship this week.
How does this help your team?
Ship fast, ship quality, save time — speed is a competitive advantage, so you need a system that'll allow you to maintain speed (and your quality bar) instead of worrying about the logistics of project management.
Extend your team's capabilities — creating a scalable process allows your team to work on more projects with broader impact. And with a customizable roadmap, you can match the workflow to your specific team's needs.
Transparency, both on your team and company-wide — a shared roadmap gives your engineers visibility into what everyone is working on, and the entire company can see the status of projects that relate to their work.
Setting up your engineering team's project management system
Your roadmapping and project management system is a way to see large-scale projects and all the small tasks and materials associated with those projects. Here's how you can create it, with recommendations for engineers to get the most out of it.
1. One database for every initiative
In Notion, you can make a few different types of databases: tables, lists, boards, calendars, etc. Here, we'll be using a board — a collection of individual project pages that you can move from one stage of the process to the next.
/to show the full menu of options for what you can do in a Notion page. This is called the "slash command."
To make a board, type
Board - Full pagefrom the menu. This will create a new page that's just your board.
You'll see we've started you off with some columns. You can customize these to match your team's workflow. Click on each to change the title, and go to the right and hit
+ Add a groupto create a new column.
You'll also see we've started you off with a few blank pages. These will be your projects. Click one, and you'll see properties associated with it at the top.
Grab one of the cards and move it along the process. See how good that feels?
This board acts as both your roadmap and project management system. You can have everything related to a project within each page, while also tracking its progress. This helps save engineers time bouncing between apps that simply point you to the work — Notion keeps it all in one place.
2. Organize projects & customize how you see them
Before helping you organize your projects, we wanted to touch on a system that's been super beneficial for our engineering team.
We organize our projects in epics, tasks, sprints, and bugs.
⛰️ Epics are large, overarching initiatives.
🔨 Tasks are actions that make up epics.
🏃 Sprints are time-specific pushes to complete a set of tasks.
🐞 Bugs are specific types of tasks to fix things.
These will become tags that connect everything your engineering team is working on. For example, if an epic is improving mobile startup time, in that page, you can see all the tasks associated with it, like rebuilding the share sheet on iOS and Android. This keeps everything related to a specific project in one place so you don't miss anything. More on this below.
But first, here's some tips for how to set up your project management and roadmapping system.
Add properties to your pages — inside your board's pages, you'll see properties. These are attributes you assign to each page, like the date it was created, the PM, or the type of project. Click on a property and select
Property Typeto see options for properties. Use a
Selectproperty and name it "Type" to create tags for "Epic," "Sprint," "Tasks" and "Bugs." Use a
Personproperty to tag the engineers on the project. Use a
Dateproperty to select the ship date. Use a
Multi-selectproperty to tag different sprints these tasks will fall into.
Show properties in the board view — this will help you get a bird's eye view of everything in your board from metadata. Near the top right of your board, select
Properties. This will bring up all the properties you've put in your cards. Toggle each one you want to display in the board view. You can even grab the
⋮⋮icon to re-order how they're shown on the cards.
Change the grouping of your board — on the upper right of your board, you'll see a
Group bybutton. With it, you can change the columns on your board to any of the
Personproperties you've added to cards. For example, you can group by engineers to see who is working on what. You can group by sprint to see the tasks in each sprint. You can group by priority to see what project you should tackle next.
Add views — with Notion, you have the ability to display one set of information in many different ways. Maybe you want a calendar of when epics will ship or a table of all the bugs your team is working on. To do this, hit the
+ Add a viewnext to the title of your table, select the type of database you want, and hit
Create. You can then apply different filters and sorts to customize further. Let's say you want a table of your highest-priority bugs. Create a table view, then select
+ Add a filter. You can now choose the type property as bug, and only bugs will show up in the table. To sort, select
+ Add a sort, then select the priority and make is ascending.
Notion makes it easy to customize how you see your entire collection of projects. Whether it's information for a certain project or a calendar of your largest initiatives, Notion puts the power in your hands. This unlocks both granular and high-level tracking of your projects where you can get a complete download of everything at a glance.
Properties and views for engineers
Everything you need to know about advanced database filters in this👇 4-minute video
3. Collecting all your tasks for a project in one place
Relation property, you can show every task related to a project in that project's card.
Let's say you're adding in-line emojis to your product. You'd create an epic for that project. Then, you'd create a number of tasks needed to complete that project — like emoji autocomplete and emoji tooltips. Inside the card for the in-line emoji epic, you'll see every task, so your team can stay organized and efficient.
Here's how to set it up.
Create an epic — this should be a big project you're working on, like "In-line emojis."
Create an epic
Relationproperty — in that card, select
+ Add a propertyand choose
Relation(don't forget to name it "Epic"). A list of all your databases will appear. Search for the database you're currently in. After selecting it, you'll be given two options for the type of relation you want to create. Choose
Create a new property. This makes your relation sync both ways, so that you can assign a task to an epic, or assign an epic to a task.
Create a task
Relationproperty — following the same steps above, create another relation property, connect it to the same database and call it "Tasks."
Connect a task to an epic — now you're ready to create a task. Using our example above, create a card for "Emoji tooltips." Using the "Epic" property, select your "In-line emojis" epic.
Open the card to see all the tasks — in your "In-like emojis" epic card, you should see all the tasks that have been assigned to it. You can add as many tasks as necessary to get the job done.
Relation properties unite all your work. So if you have a big, complicated project that requires many tasks and engineers responsible for them, you'll be able to collect and organize them all in a single place for greater efficiency.
4. Work right inside your project management system
You now have the framework for your project management and roadmapping system. Each one of the pages in this board will also house all the elements of each epic, task or bug.
Instead of bouncing between software, your engineers can work, give feedback and connect all their tools in one place using Notion.
Customize every page — different projects require different documentation, each arranged so they're easy to navigate. Notion gives you just enough structure so that you can organize information however best fits the task at hand. Create headers inside of pages by typing
/heading. Then, make columns by grabbing the
⋮⋮icon and dragging and header all the way to the right. Using the
⋮⋮icon, drag-and-drop text, images, videos and more under those headers for a neat and tidy page that's easy to digest.
Embeds just for engineers — engineers use a unique set of tools to get their work done. Notion brings all of them together. Type
/codeto include a code snippet right in your page, like when you're launching new mobile and tablet controls and want to see if the code looks right to your team. Or you can share a GitHub gist by typing
/gist. You can even include an
/videoto show those new controls in action right in the page.
Watch our 3-minute video that teaches you everything you need to know about code blocks here 👇
Pages inside pages — You can keep all documentation related to a project neatly inside it. Just add them as sub-pages with
/page. Add infinite layers of pages to capture all the information you need to complete anything, and give yourself and your team clear pathways to find everything in your sidebar by opening the toggles.
Feedback in real time — use the
@symbol to mention one of your teammates to get feedback on a project. A fellow engineer can make some notes in your code. A designer can provide comments on a Figma file you've embedded of the new dropdown menu. Normally, designers and engineers would be siloed in their own tools. Instead, Notion connects cross-functional teams for tight feedback loops.
Decisions made with full context — inside pages, you can have a running thought process for every aspect of a project. Include notes about why a task got de-prioritized or why your team changed the code guidelines on mobile. You can even include test results inside these pages to put some data muscle behind your decision-making framework. Notion gives you full clarity of what happened and what needs to happen next.
When project work and project management happen in the same place, you don't need to worry about anything slipping between the cracks — you have one system, so no cracks exist.
Everything you need to know about comments and discussions in 4 minutes.
5. Templates standardize your processes
In your project management system, you can create templates unique to each problem an engineer will tackle.
Templates help engineers approach problems the same way every time. This leads to a consistent problem-solving approach that saves time and builds strong institutional knowledge. For example, in a bug report, you'll have headings prompting your engineers to get screenshots and replicate the bug — this helps surface what information you'll need to find an answer faster.
To add a template to your board, click the down arrow next to the blue
New button on the right side of your database and select
+ New template. A blank page pops us where you can create the template once and use it over and over again.
Here are a few ideas for templates your engineering team can use
6. Best practices from the Notion engineering team
When asked about our engineering team's project management and roadmapping system, engineer Sarah Lim says, "A good task management system adapts to a team's knowledge and processes."
She continues, "Relations allow us to associate heterogeneous entities. A set of tasks can be related to a project, which in turn relates to meeting notes and design documents. The result is a system that captures what's happening and how all of the constituent pieces fit together."
Here are a few tips we've learned for managing our engineering project management system:
Create a linked version of your database for engineering sub-teams — if you have sub-teams, it's a great idea to create a database view that's only their tasks and projects. Inside your engineering wiki, each team can have their own page, like one for your infrastructure and platform teams. At the top of the page can be a version of the project management and roadmap system that's filtered just to show the infrastructure team's epics. This helps encourage focus without losing transparency for what the eng team at large is working on.
Link your meeting notes to your project management system — just like tasks are linked to epics, you can also link all meeting notes to your epics. Create another
Relationproperty and link it to a meeting notes database. That way, you can have every discussion about a project cataloged along with its tasks. This type of asynchronous communication helps foster transparency and keep everyone in the loop, even engineers who weren't in the room during the meeting.
Assign a clear owner for every epic and task — make two
Personproperties in your epics and tasks, one for the project owner and another for the team responsible for executing it. By having a clear owner, anyone who has a question about the project knows who to ask. This makes for clear, streamlined, cross-functional communication.
Something we didn't cover?