When I have to write a new Refactoring article, I often think at traits that the best teams I know have in common, and try to explain them.
Some of these traits are easy to spot, and we talk about them all the time: ship often, hire well, or talk with customers.
Others though, are sneaky, and less visible from the outside. In this category, one of my favorites is: keeping stakeholders aligned on status.
Stakeholders is kind of corp-speak, so let’s just say that in any project there are people who participate in different ways and capacities, and therefore have different information needs. E.g. a PM needs to know blockers to remove them, customer support needs to know new releases to assist users, an EM may check for technical dependencies between two tasks, and more.
Technically, a project is a singular, shared entity, so this alignment problem doesn’t feel too hard. In reality, it most often is, and engineering leaders (among others) often get caught in convoluted balancing acts to deliver tailored, timely, and correct information to all parties.
The impact of getting this right vs wrong can be immense:
🟢 Good communication — people know where to look for what they need, they trust the data, and take action in a timely manner.
🔴 Bad communication — people don’t trust tools, overly rely on meetings to pass information, and make slow and uninformed calls.
So, over time I stole developed a rich set of strategies for this, with ideas on how to use tools, meetings, and how to serve everyone efficiently.
So here's what we'll cover:
🔀 Understanding stakeholder needs — who you should account for.
🤝 Meetings vs async tools — turning status updates into async workflows.
🛠️ Single tool vs multiple tools — and strategies to make both approaches work.
🎯 How to choose for your team — practical heuristics and steps to make the right call.
Let's dive in!
For this article, I partnered with the guys at Visor, which creates user-friendly reports and roadmaps with Jira data. They work with hundreds of companies on optimizing communication with stakeholders, and their insights have been super useful in shaping this piece.
They also kindly created an exclusive offer for Refactoring readers that gives you many of their pro features for free 👇
As a disclaimer, even though I partnered with them on this, I only wrote my unbiased opinion about the practices and services I covered, Visor included.
🔀 Understanding stakeholder needs
Before we can discuss tools and strategies, we need to understand what stakeholders actually need to know. Such requirements vary significantly across roles, and recognizing these differences is the first step towards alignment.
Let’s look at the five most common stakeholders in any software project:
🎨 Product Managers — need a holistic view of the project, including timelines, progress, and any blockers or risks that might cause delays.
🎖️ Engineering Managers — they have many overlapping needs with PMs (depending on their duties) and may look into more detailed information about capacity and technical dependencies.
🔨 Software Engineers — need granular, task-level information. This includes requirements, acceptance criteria, links to repos, PRs, and more.
💬 Customer Support — needs to stay informed about feature releases, known issues, and the product roadmap to set customer expectations.
👑 Executives — need high-level, impact-oriented info. They're typically interested in overall project health, how it aligns with business priorities, upcoming milestones and potential risks.
To serve each of these needs you have two broad strategies: 1) talk with people, e.g. in meetings or chat, or 2) self-serve through tools and docs.
Both options have merits and drawbacks, so let’s explore them 👇
🤝 Meetings
Meetings are the easy default, and have plenty of qualities: they are easy to setup, they are high-bandwidth, and they help relationships among peers.
They also have drawbacks we all know: they are incredibly draining, ephemeral (information may get lost), challenging in distributed teams, and more.
In my experience, meetings are best spent in situations where there is shared creation or action. They shine when there is creative, quick back-and-forth between participants, converging into an outcome that would be cumbersome to obtain async.
Conversely, unidirectional communication, like status updates, is better served by good tooling and docs.
The trick here is that a lot of status updates don’t look like it. They look like complex, involved conversations between multiple parties — but what is actually happening is only a translation act that someone (the source of information) performs in service of other participants.
If you are unsure what your meeting is about, ask yourself: how many times did the meeting lead to an action or an outcome that was different from what would have happened (or you would have decided) without the meeting? If the answer is none or very few, then your meeting is probably a glorified status update.
You can find more ideas about reducing meetings and turning them into async processes in this popular piece 👇
🔨 Tools
For status updates, the #1 alternative to meetings is async exchanges through docs and tools.
Now, in my experience, creating docs and keeping them up to date looks hard, while using tools looks like low-hanging fruit. After all, everything about the project already lives on Linear / Jira / Notion, so why can’t people go straight there to get information? If we all use and access the same source of truth, updates will always be timely, and data will never become stale.
This line of thinking has merits, but is also simplistic.
In fact, most tools are specific: they are thought of for 1) some use cases, and 2) some ideal users. Jira is hard to parse for non-technical users, just like Notion feels cumbersome for tracking coding tasks.
So what do you do? There are two options here, which can work equally well:
Single tool — stick with a single source of truth, prioritizing consistency over UX. E.g. use Notion for everything.
Multiple tools — use specialized solutions for the different use cases, prioritizing UX over consistency. E.g. use Notion for OKRs and Jira for tasks.
I have seen both situations and I don’t think there is a strictly superior one — it depends on many factors, including your team skills, your product, your scale, and more.
So, let’s cover both approaches, together with the best strategies I have seen to make them work.
Let’s start with the single tool approach 👇
🔨 Using a single tool
Working with a single tool minimizes discrepancies in information, latency, and all propagation problems.
So, the #1 problem you need to take care of is providing a good UX to all stakeholders, based on what they need to achieve.
The best teams do this by building on top of the tool. Think custom visualizations, automated workflows, chatOps, and more. You can build this yourself, or use ecosystem tools that help you with it. Some examples are:
Visor + Jira — the Visor example inspired this piece and is particularly relevant. Jira is notoriously obscure for non-technical folks. Visor creates user-friendly views on top of it, delivering exactly what each stakeholder wants to see, while maintaining Jira as the single source of truth for engineers.
Glide + Google Sheets — Glide is a popular no-code tool that builds on top of Google Sheets. It allows teams to build web and mobile internal apps using the spreadsheets as a backend. I even used it to create the Refactoring Library!
Softr + Airtable — for teams that use Airtable, Softr enables them to create apps and portals backed by the Airtable data, simplifying workflows and creating custom visualizations for the different stakeholder groups.
So, a key element for making this strategy successful is choosing the right baseline tool. My advice is to choose the tool that 1) has the best ecosystem and 2) works at the highest level of granularity.
What does high granularity mean? It means the structured data that powers your operations.
For engineering teams it means individual tasks, epics, stories, or however you organize engineering work. A lot of structured data is also usually stored in spreadsheets, especially in non-technical teams, so Google Sheets, Excel, or Airtable can be good picks.
🛠️ Using multiple tools
Using different tools for different jobs is an equally good strategy, but it still poses risks:
Confusion — people may not understand what goes in a tool vs another, or who should use what.
Inconsistency — some information may need to be replicated across tools, with the risk of creating inconsistent / stale data.
Confusion and inconsistency undermine trust in the tools and make people fall back to meetings.
To counter these, here is what you should do:
1) Clarify boundaries 🔀
It should be extremely clear what are the scope and responsibilities of the different tools. This is often harder than it seems, so let’s make an example.
Let’s say your org works with OKRs → Projects → Tasks, and let’s say you use Notion + Linear, which is an extremely common setup.
Technically both Notion and Linear can handle all of this from top to bottom. Still, going 100% with one of them wouldn’t be ideal because (my opinion):
Notion has a way worse UX than Linear for tasks and software work.
Linear is less powerful than Notion for all-things-documentation.
So, to me, a possible setup looks like:
OKRs are stored on Notion
Tasks are stored in Linear
Projects are stored both on Notion and Linear, with links between the two.
With this setup, non-technical stakeholders can find the information they need at the right level of granularity (i.e. not individual tasks) on Notion, and don’t need to use Linear at all, while 2) Engineers can use the best tool for the job.
Now, clear boundaries doesn’t mean no overlap. In fact, some overlap is most often inevitable (i.e. projects), but it is not an issue as long as ownership is clear 👇
2) Clarify ownership 👑
It should be crystal clear who owns and updates the various tools, especially on overlapping parts.
For example you may decide that PMs own the project pages on Notion, while the respective Linear ones are maintained by TLs or EMs. This largely depends on what goes into each page. In this case, Notion pages may focus more on business and product goals and how the project ties to OKRs, while the Linear pages may focus more on technical requirements, design, task dependencies, and all the operational info that engineers need.
3) Use automation 🔌
I have found that by setting good boundaries, the amount of overlap between tools is most often small and can be easily managed manually.
Still, popular tools often play nicely with each other, either directly (e.g. Notion has a Linear integration) or by connecting them through Zapier and the likes. If you are finding yourself with too much manual work to keep things in sync, you should look to automate it.
🎯 How to choose for your team
As I said above, both styles can work equally well, and I am not prescriptive about any of them.
Still, a good litmus test for making your choice is how much action happens on the tools themselves by the various stakeholders.
If your core tool doesn’t fit some use cases, but these are mostly passive or about pure visualization, or small atomic changes, chances are you can go for a single tool + something built on top of it.
If there are deep UX differences that can’t be reconciled, you may need to split.
A lot of course depends on the tools you already use — some of them are more flexible, have a wide ecosystem, and are overall easier to build upon (e.g. Jira), while others are strictly good for one thing and you need to pair them with others (e.g. Todoist, that I personally use for Refactoring, together with Notion).
This should be, however, a participated choice, so here is what I would do:
💬 Talk with people — ask stakeholders what they need and what is missing today. Prototype and make them try the solutions you put in place. Treat them as your customers.
🖥️ Use tools inside meetings — before you remove meetings and human interaction, prototype the usage of tools inside the meetings themselves. Is the information clear? Is anything missing? Make people comfortable with the workflow by going through it together.
🐾 Do baby steps — take your time and test one use case at a time. Only move on when everyone is happy about the process.
✨ Try Visor
Finally, if you use Jira, I encourage you to try Visor. I tried it myself, met with their team, and I love what they do.
I have a conflicting relationship with Jira: I love how flexible and powerful it is, but that also makes it intimidating and hard to approach for anyone that is not an engineer.
Visor has plenty of great visualizations, like gantts and spreadsheet-like views, and it also has bi-directional syncing, so you can change things there and have them synced back automatically.
Visor also kindly created an exclusive offer for Refactoring readers that gives you many of their pro features for free 👇
And that’s it for today!
Sincerely 👋
Luca
Great overview of tooling strategies, but I especially like your take on understanding stakeholder needs and meetings.
Your art is always amazing. You should do an article on creating it