How we built Project Updates

Last week we introduced a new concept to Linear called Project Updates. Project Updates are short status reports that keep everyone in your company informed about the progress and health of your projects. “Projects” was one of the core themes of our 2022 roadmap planning session and we spent a lot of time discussing what features we should work on to meaningfully improve this part of the Linear experience. Project Updates wasn’t part of our initial list of things to build. It slowly emerged as a problem space that we should tackle as we were building other things. Here’s what happened. As we started working on our 2022 initiatives, we realized that some of our coordination and reporting processes needed upgrading. Linear is still a fairly small company, but even with just 22 employees it felt like we needed a more formal process to keep everyone up-to-date on the progress of all the projects that people were working on. Our first solution was a setup of different Slack channels: Each project received a dedicated Slack channel Once a week, the project owner would write a short progress update and post it in the respective Slack channel Every update would then be cross-posted to a global #project-updates channel so that everyone outside the project was also notified of the update It worked. But not well. The writing process felt very manual and required a lot of back and forth. The reading process was even worse with updates getting lost in an endless stream of Slack messages. Most importantly, the updates were completely siloed from where the actual project work was happening. So we asked other companies how they managed project updates. Turns out that their solutions weren’t much better. The exact process differs from company to company, but the first step typically involves a tool to collect updates. Sometimes that tool is a spreadsheet, sometimes it’s a slide deck, sometimes it’s a Notion doc. But in every case the process is manual and requires switching between several different applications. In a second step, a dedicated person has to collect and format all the updates that have been submitted, and finally send them via email to all relevant stakeholders in the company. The process is tedious. People waste a lot of time. Everyone dreads doing it. It felt like we could build something better. On a high level, project updates solve a pretty basic problem. Every company wants to know how their projects are progressing. Is everything still on track? Or is the projected outcome at risk? Nobody wants to be surprised that the project that was supposed to be ready tomorrow is suddenly six months delayed. A large part of the problem with “traditional” project updates is that the writing process is decoupled from where the rest of the work is happening. Productivity and collaboration are treated as two distinct activities. By moving the writing process into Linear, the whole activity becomes a more fluid experience. There is no need for context and application switching. In some of our earliest explorations we tried to build data-based project updates by aggregating issues statistics and calculating velocity. But we quickly realized that project progress is not something that can be predicted based on quantitative data alone. It needs qualitative input from the project team. The best way to answer “How is this project going?” always comes down to a short, plain text update. It is partly a quick summary of the past (“here’s what happened in the last 7 days”) and partly an educated guess about the future (“based on the knowledge I have today, I think this project will finish on time”). A good project update should be brief and to the point. Almost like a tweet. And it should be easy to consume for a reader who might not be familiar with all of the project details. We felt that a visual representation of the current project status would complement the written update nicely. Based on this approach, we built a project updates feature that consists of two simple components: ➀ A health indicator that provides a high-level signal of the current state of the project ➁ A rich text description to provide more in-depth information To get into the habit of posting regularly and on time, we built a reminder feature that notifies project leads when it’s time to write an update. (At Linear, we write project updates every week on Friday.) While the writing and broadcasting experience is critical, it is just one side of the process. Making sure the right people actually read the updates is equally important. Similar to the writing process, we felt that we could deliver a more focused and uncluttered reading experience by showing project updates directly in the spatial context that matters most. That’s why project updates in Linear can not only be read directly on each project page, but also as an aggregated update feed on the project roadmap ➂. For those in the organisation working outside of Linear, project updates can automatically be broadcasted to a select Slack channel. This way we can serve everyone in their native medium instead of forcing people to modify the way they work. Linear is meant to be a tool that streamlines the entire product building process. Its role is to create focus and routine by removing unnecessary barriers. Project updates felt like one of those friction points that we could turn into a more fluid and enjoyable experience. This release is just a very first version of our take on Project Updates. Think of this blog post as a very long and public project update on Project Updates. Everything is on track, but we have a lot more planned for the future. Stay tuned.