Even the best developers sometimes find themselves investing time into unplanned work that is not aligned to current team priorities.
- The CEO asks for something urgent.
- A shiny new object becomes a distraction.
- There’s a misunderstanding about priorities.
Sometimes devs are working on the right priority but it looks to teammates and leaders like they’re not:
- Branches/PRs are not linked to the project ticket.
- Project tickets status is not up-to-date.
Unplanned work is the #1 cause of missed deadlines and miscommunications between engineering and business. But not all unplanned work is bad!
Does this story sound familiar? 👇
Developer starts working on a new feature. The new feature relies on an old part of the code base with ugly technical debt. Developer decides to fix tech debt because A) it will make the product better overall, B) it will make building the feature easier and faster and C) it will help the new feature work better for customers.
This is a win, win, win, right? Yes, at LinearB we encourage our developers to exercise this judgement. Except on some teams this decision could create confusion because the work is unplanned and undocumented. If we rely on individuals to manually communicate these changes verbally or in our ticketing system (🤣🤣🤣), we may not find out about them until it’s too late, if at all.
To empower every developer to be a decision maker and ensure all work is correctly attributed to the right project, we built Matchmaker.
Matchmaker starts in LinearB Pulse. Since Pulse correlates your Git activity to your project stories in real-time, it knows when you’re writing code in a branch that is not connected to a project story.
But here, we are interested in the text in the upper right where you are told how many branches are unlinked to project work:
Here, we see that the code base has a total of six branches that aren’t linked to work tickets. If you click on the text, you get taken down lower on the page to look at the specifics about these unlinked branches:
Here you can see the unlinked branches. You can see the branch names, who is working in them, and what the level of effort is on each one.
In one of the branches, highlighted above, we have some code that isn’t linked to a work ticket. The small purple dot indicates that the work was done mid-sprint, but wasn’t reviewed and merged. Not only that, but it’s been waiting a while for that review. If you are a manager, you probably need to look into that and find out what is going on.
If you are a developer, you want to know that what your working on isn’t being properly tracked.
This particular branch is refactoring work — effort that is valuable and needed but that doesn’t tie back to a specific project task.
We aren’t standing pat. Matchmaker is improving in the near future.
Coming soon, we’ll be integrating this feature with Slack Alerts. If a developer creates or commits to a branch that isn’t associated with an issue, a personal alert will be sent to that developer on Slack, immediately making them aware.
In addition, we’ll make it even easier to take action on that alert by allowing you to connect an unmatched branch to the correct project tool ticket, right in Slack.
So, this feature lets you see what is happening and correct it if need be. You can see the extra work that developers are doing outside of the “official” work that they are supposed to be doing. Maybe the work is okay and you can make it official. Maybe it’s not and you need to redirect the developer back to the proper tasks.
There are benefits for the developers as well — perhaps a developer created the branch and didn’t properly name it. She can see that and correct it. She can get noticed for refactoring and reworking code.
Either way, Matchmaker solves a number of problems for you. Shadow Work can derail your project. Being able to see it allows you to do something about it. You can peer into your code base in a new way to ensure that the work that is being done is work that should be getting gone.
How does it work?
Matchmaker is triggered when a branch name doesn’t match your team’s naming convention. Here at LinearB we name our branches with our project tool’s ticket number, like so:
We then include the ticket number “PROJ-3435” in our branch name and LinearB sees that and knows that a properly named branch is associated with that ticket.
It also knows that a Pull Request is associated with a ticket in the same way.
Branches that are worked on that don’t match the naming convention are highlighted by Matchmaker.
Matchmaker is new and powerful. It will save you time and keep things in order by:
- Finding code not attached to a project story
- Visualizing the size and scope of activity
- Helping you match the work to the right project
- Alerting the developer privately in Slack (Coming Soon!)
- Matching the branch to the right story with one click (Coming Soon!)