9:00AM would hit. Shit.
I'd sit in my ergonomic chair with my ergonomic keyboard and my ergonomic mouse. All my gadgets perfectly positioned—making sure I was at least physically comfortable for another cluster-fuck of a morning.
Zoom booted up for our daily standup...
Before Linear, the process at our startup was Nickelodeon Slime. Green, murky, questionable. We used Notion at the time.
We had one Kanban board in Notion that housed everything. E-v-e-r-y-thing.
Anytime something came up—a customer ticket or random idea—we'd stick it there. It was a garbage-can of a backlog, and everyday, it would grow a little taller.
So, each morning, we'd hop on Zoom, chit chat, and decide what to work on THAT DAY from the 100+ tickets in Notion. This, not so shockingly, caused issues.
There was no goal, no prioritization, no forethought. The product suffered, the team suffered, and I suffered.
We needed to change our process and right at that time, we found a tool to help us do so--Linear.
We needed to make a change. Luckily, as we started talking about the problems with our process, we heard about a new Project Management tool called Linear. After a few months of iteration, here's what we did:
Step 1: Set the foundation
Step 2: Grooming on Fridays—weekly
Step 3.: Planning & retro on Mondays—weekly
Step 4: Create 2-4 week Gantt chart—update weekly
We needed some foundational concepts that somehow got lost along the way. These were:
Prior to Linear, we had no way of estimating work. We'd look at our giant list in Notion and not know if a card would take an hour or a month. So we started with a pretty simple formula:
This may seem small, but using estimates has been freaking KEY for us. On a high-level, it tells us that each person can do ~20 points of work per week (4 points/person/day x 5 days a week = 20 points). And with that, we can then plan for both the short and longer-term future—allowing us to make goals and know if we hit them.
Important to note, when we first started, it took us a while to accurately estimate a ticket. We've gotten better with trial and error and discussions during our weekly retros.
Lastly, all of this can easily be setup in Linear. Simply go to Settings → Team → General → Estimates sections. Then choose from Linear's pre-populated list of either Exponential, Fibonacci, Linear, and T-shirt size.
We use Exponential and I'd highly recommend it. Some of the others (i.e. T-shirt sizes) I find to be too abstract and confusing.
The next issue was we never knew what and when we were going to work on something. As a remote team, this made things even more difficult—forcing us to have 30 minute to even hour long stand ups DAILY.
Our solution to this was to work on a weekly cycle, Monday through Friday, with no cooldown period. During our Monday planning, we add ~60 points to the cycle (20 points/person x 3 teammates = 60 points). Once the week begins, anyone on the team can take a ticket from the list of To Dos and start.
We chose a weekly cycle because for us, things constantly change and priorities switch quickly. We thought a longer cycle (2+ weeks), would feel too rigid and not give us the flexibility we often need.
Once again, you can easily set this up in Linear. Go to Settings → Team → Cycles. From here, define the day the Cycle starts, how long it lasts, and if you'd like to add a cooldown period.
You can then go back to your Team and view all the past, active, and upcoming Cycles.
Now that we have estimated tickets that live inside of a weekly cycle, the last piece missing was a way to view those tickets and their statuses visually. So Kanban we went.
We tried to keep it simple with all our tickets moving through 4 stages:
Linear gives you a lot of flexibility when it comes to creating workflows. Go to Settings → Team → Workflow. From here, you can add new stages with a type, name, description, and color. Linear also has this beautiful hint of delight where if you add a new stage, the progress icon changes automatically.
Now that we set up the foundational pieces, we need to use them in practice. That's when our Friday grooming sessions come into play.
On Fridays, we have a recurring meeting in the afternoon to either make new tickets or groom the backlog to get ready for our following Cycle. At first, we tried to bunch grooming, planning, and retro all on the same day—this quickly became too long and tiring. By moving grooming to Friday, it lets us get started on Monday quickly.
In terms of how we groom, if there's a new or updated feature, we often have a design ready to build from. In the week prior, we'll have held a few critique sessions, tweaking flows or adding in edge-cases.
To actually turn the designs into Linear issues, we use a handoff tool Contrast (spoiler this is our company). As Jono and Kris look through the designs, they quickly link designs in Contrast to Linear issues. Rather than taking screenshots, copying URLs, and typing in metadata—they simply select a frame, click the "Link" button, and paste that URL into a Linear issue.
After pasting, Contrast automatically adds a pic of the frame, project name, page name, frame name, and a hyperlink back to it in Contrast. Once they've created the link, they can also view the issues directly in Contrast, letting them quickly go back-and-forth between the designs and associated issues.
This process helps us create organized and info-rich issues in Linear—insanely fast.
If you want to create issues without Contrast in Linear, this is also amazing. To create a new ticket—press "C", to change the estimate—hold shift + E, to assign someone—press "A", to add a label—press "L." Everything in Linear can be done using your keyboard—helping you create issues without taking a million years.
Lastly, we use Projects within Linear to help us stay organized and view our progress. When creating issues, we'll add them to the relevant project by pressing shift + P. This becomes incredibly helpful when we're working on multiple projects in the same cycle and want to know the status.
And then there is our Monday Retro and Planning. We've gotten these down to 30-45 minutes, which is truly amazing considering they used to take hours. After catching up about our wild weekends during COVID, we start with the Retro. For this, we split off for 5-10 minutes and individually write down:
Once we've written our lists, I share my screen via Zoom, go to the previous Cycle in Linear, and add an issue from my Templates called "Retro." This template pre-populates the cards title and all the header sections—slick.
During the retro, we talk through what everyone wrote and mark it down in Linear. These sessions have really helped us pinpoint areas in our process that need fixing and give us some time to reflect on any achievements that happened in the previous week.
Once the Retro is done, which usually takes about 15 minutes, we move onto planning. At this point, based on our Friday grooming, this is very quick. We take a look at the tickets—with all the relevant information and estimates in our Backlog and simply add them to the current cycle.
Now, we're ready to start the week.
For a few weeks, the above was what our process looked like. Unfortunately, we were still having issues when it came to decision-making. It's easy to just plop some stuff in your Backlog and start working on it. It's much harder to figure out what is the most important thing you should be working on.
Prior to implementing a high-level Gantt, we really didn't have much of a North Star. We weren't doing a good job thinking ahead, mostly just reacting. Around this time, I listened to a great podcast by the Intercom guys about Inputs, Outputs, and Outcomes. The part that struck me the most was how they thought about "inputs" i.e. the information you take in and use to make decisions. After listening to them I realized we had shit inputs, which were leading to shiit outputs, and thus shiiit outcomes.
So, in order to have better outputs and outcomes, we needed better inputs. That's where the Gantt came in.
What's so beautiful about a Gantt chart is it visually shows what you could be working on weeks in advance. Not only that, it shows the order of those operations and if one activity is blocking another.
An important caveat here is that our Gantt isn't set-it and forget-it. We update it on a weekly basis. If new inputs come in, let's say a customer complaint or a sales opportunity, the Gantt can change. And here's the kicker—all the following weeks in the Gantt change as a result. For instance, if we now deem feature X as P1 and work on it today, then feature Y will be moved further out.
And this is what I love most about having a Gantt chart—it visually displays the ripple effect of any given decision. This, in turn, helps us think more clearly and make better decisions.
Lastly, when it comes to different "departments" working together, a macro-view of the companies activities is amazing. This lets us see if we'd need to start designing a certain feature in advance or if we should get marketing materials ready in preparation for a product launch.
To actually create our Gantt, we use Google Sheets. Each week is divided into 5 small cells, each cell representing 1 day of that week. We have 4 tracks, 2 for engineering, 1 for UX, and 1 for Marketing. You can copy a template of this here.
Within Notion (we still use and love Notion btw), we have a list of inputs called our Input Inbox. This is basically a list of product features, problems users are having, and marketing/distribution ideas. This list purposefully sits there for a while, letting us think about it and tweak it with time. Next to each input item, there is also a rough estimate of how long we think it would take to complete.
**Note how important our experience with estimates are here. We've gotten to the point where we can give a pretty accurate estimate on an incredibly loose idea of a new feature. **
When it's time to add or edit the Gantt, we take a look at our Input Inbox and decide if we need to move more items in. It's often a game of iteration, playing around with where they could fit and the different dependencies they may have.
Now, I know a lot of you may be thinking—"wow a Gantt? Y'all suck and are whack." You're probably right. But for a small team, this last piece in our process has been vital for how we work best. It's helped by:
Putting it all together, the Gantt and corresponding Input Inbox act as our lighthouse. These two items direct what we design, market, and build i.e. our output. To make sense of this all, here's an example flow of building a new Onboard flow.
1. We'll look at the Gantt and the Input Inbox. If any new inputs have come into play, we'll edit the Gantt accordingly. We saw that our Onboard flow has been leaky so we've deemed that as P1.
2. In the design track, we'll add Onboard V.1 for this week. We'll then add Onboard V.1 in the engineering track for the following week.
3. Once the Gantt has been finalized, we'll take that information with us to Grooming. As it visually shows, we'll need to create new onboard designs. To do this, we create a new project in Linear titled Onboard Flow and create the design-related issues in Linear.
4. Once that cycle has completed and the designs are finalized, we'll groom again on Friday. Jono and Kris will create tickets using the Contrast + Linear integration, estimate them, and add them to the Onboard V.1 project.
5. When Monday comes around, we complete our Retro and add the tickets we groomed on Friday to the current Cycle.
6. This loop continues.
All in all, Linear is an amazing tool—but there needs to be ideation and iteration that goes around making that tool work for your team. But I will say, it's been super helpful in providing guardrails and organization around our workflow. It's customizable—but not so much so that it's annoying. It gives you what you need, when you need it, and does so with style and speed. Couldn't recommend a product more.
If you have a similar process or think what we do is stupid—let me know! I'd love to hear it. In the meantime, thanks for following along.
Thanks so much for reading. If you enjoyed this, I'd really appreciate it if you joined our email list. I write a new post like this each week!
Or if you're feeling wild - hop on over to the Twitter thread and smash the love :)