A human-centered approach to building a next-gen operating system for work (full version)

Karim Butt
13 min readApr 18, 2022

--

Doing our jobs effectively today requires us to have increasingly deeper expertise in a broader set of software tools. Whether you’re an engineer, a product manager, marketer, sales person, customer service rep, designer, or any other role at a company, your job comes with an extensive software “tech stack” that you have to master.

On average, companies now have over 250 apps¹ and this number is growing 17%+ year-over-year in some industries². For employees, this means they have, on average, 40–60 software tools that they must work across.

This is a LOT of software and both companies and employees are feeling the impact of this SaaS sprawl.

So what’s driving the SaaS sprawl?

There are a number of trends that have resulted in this explosion of software tools at companies over the past ten years:

The continued move from on-premise solutions to cloud SaaS software. We’re still very much in the early stages of this shift. We’re seeing massive amounts of investment pouring into SaaS solutions that capture this shift in company spend to the cloud.

The great “unbundling” of software. Companies are building software solutions focusing on niche workflows for specific teams and individuals — often unbundling larger software suites and building better versions of specific components. Additionally, there isn’t only more software being created within existing categories, but also new categories being created. This is nicely depicted in the marketing software landscape:

The increase in breadth and depth across and within categories of marketing software. (Yes, this is just marketing software! Imagine the visual if we were to do this for all company functions). Source: Marketing Technology Landscape Supergraphic (2020)

The rise of the company “prosumer”. Next-gen software companies are focusing heavily on design-first, consumerized products — going bottoms-up on acquisition rather than the long sales cycles of the traditional enterprise sale.

The shift towards remote work. Accelerated by the COVID-19 pandemic, we’ve seen a big shift towards remote, flexible work. Successfully navigating this transition has required companies to fill in collaboration gaps and introduce better software to empower their employees.

Software is eating the world…and operational effectiveness…

All of this software, in many ways, has given us superpowers at work (I can’t imagine work life without tools like Miro and Notion anymore!). However, SaaS sprawl has also come with the cost of difficult data management, cost management, and security and compliance.

More importantly, SaaS sprawl has also created a significant “productivity tax” that decreases company operational effectiveness. As the employee’s software toolbox becomes more crowded, the cognitive burden on the employee increases as they have to:

  • Context switch as they take actions across significantly more systems. Employees constantly have to context switch across a large number of apps because their day-to-day workflows often span multiple software tools. Most of us can probably relate to a tab bar that explodes to look like the one below after just a few hours of work. Most people end up with this not just because of their “deep work” (if you haven’t heard the term, more on this here) their role requires, but also the hundreds of ancillary and administrative tasks they have to do as well. A productivity tax is paid every time they context switch between apps.
Drowning in tabs!
  • Process and respond to data, notifications, and communications scattered across disparate software apps. Employees spend so much of their time in their software tools sifting through a barrage of notifications and missed messages, all to see if anything is relevant. Because the tools are all decentralized, the employee is inundated from all angles with disparate software vying for their time/attention, and this often results in people doing lower priority tasks just to “take care of it now, in case I forget”.
Drowning in notifications!
  • Spend more time searching for data and information across a greater number of systems. The data that employees need as part of their workflows is now spread across a large number of software tools, and cloud-based software has made data discoverability worse. Employees spend a lot of their time navigating these systems to piece together their workflows.
  • Collaborate with their peers and colleagues across many systems. SaaS sprawl has resulted in a world where teams, even within the same departments, build their own custom software “tech stacks”. This results in cross-team collaboration challenges. At my prior company, if anyone wanted to create a bug ticket for engineering, they had to know how to use Jira. For product requests, ProductBoard. For marketing questions, Monday. To request something from customer service, Zendesk. This resulted in a situation where, to collaborate with other teams, you also had to learn to navigate their SaaS “tech stack”, making cross-team collaboration harder.

This SaaS sprawl productivity tax will get worse — less than 10% of the estimated $4 trillion in annual global IT spending has migrated to the cloud so far and the number of apps that employees use is estimated to double by 2025³. Cloud software will be an increasingly important part of our jobs; however, the sea of apps out there to help us stay afloat with our work will likely drown us, unless we fundamentally shift how we engage with our software.

We need to think holistically about the human-to-software user experience…

This software cognitive overload stems from the fact that humans are single threaded beings — we can’t effectively process many things simultaneously (I highly recommend reading the author of Deep Work, Cal Newport’s piece on this here). Unlike computers, which have multi-core processors that can truly do things in parallel, the human brain cannot handle multiple tasks and process multiple things at once (no matter how much some people brag about being amazing multitaskers!). Because context switching is not a seamless process for humans, the more context switching, the higher the productivity tax.

When we ask employees to work across 50+ tools for their job (many of those tools on a daily or even hourly basis) and also bombard them with messages and notifications from all of these tools, we are effectively trying to get the human to function more like a computer. We’re ignoring that software operates under different constraints from humans. Software doesn’t break a sweat sending you 100+ notifications or handling tens of thousands of actions per second across thousands of systems (look at tools like Segment or Zapier); humans simply cannot do that.

While a lot of thought and some of the best minds in the world have worked on creating incredible user experiences within each of the software tools, very little thought has been put into the user experience across all of these software applications. We’re not engaging with our software on human terms and we need to construct a user experience that allows us to work across all these tools more sustainably.

Naively repackaging software doesn’t work…

There are two general categories of companies on the market that aim to tackle this user experience issue across tools, but they miss a huge fundamental insight: humans don’t work like computers. You can’t just blindly repackage all of the applications without re-imagining the user experience across their software toolbox.

Category 1: Companies focused on purely repackaging software with no changes to the user experience across applications. Companies like Shift, Sidekick, Wavebox and dozens of similar companies that essentially aim to create a new “browser for SaaS”. All they provide is a (debatably) marginally better UI around browser tabs and tab organization — instead of tabs, you now have branded menu bar items that group apps together.

Pictured is Wavebox. Instead of going to a tab in Chrome to go to your email, you go to an app icon. Instead of opening the Slack app, you click on the app icon for it — is that actually even that different from the dock in MacOS? Simply repackaging just creates a chaotic and cluttered experience. I don’t know about you, but the screenshot here raises my stress levels.

But how do these apps truly tackle the cognitive overload problem? They don’t. We still have to frantically bounce around all the same apps to take actions and, when it comes to notifications, we get bombarded even more because the notifications from all your apps are now directly in front of you at all times. There is no thoughtful user experience across your software toolbox and you’re still ultimately working within the siloes of each tool.

You are confronted with all of your notifications at all times while you are working. I can think of no better way to lose focus in what you’re doing than to have to work in a tool like this.

Category 2: Companies focused on becoming the “central nervous system” of software by developing a user experience that doesn’t account for the differences between humans and computers.

Companies in this category include Slack and Microsoft Teams. They are striving to become the center of a company’s “digital headquarters” by allowing their customers to integrate all of their tools into their platforms — creating a central hub to interact with and get notifications / data from these software tools.

While they do go a step further by constructing a new user experience to interact across a large number of SaaS tools, the promise of these platforms will not be realized for a number of reasons.

These platforms don’t actually create a true human user experience and force us to engage with software in their language. When you want to engage with your software, you have to talk to it in a language that the software will understand — a highly structured and parameterized API request. For example, creating an Asana task using Slack requires remembering the exact slash commands required to execute an action:

This is actually not very different from working with Asana’s API via Postman:

Of course, it’s definitely an improvement (good luck trying to get many non-tech employees to use Postman collections!) but the language we’re speaking is still the language of computers — highly structured and requiring exactly the right path and parameters to be passed in.

Every time I have to run a slash command in Slack it takes me back to the early 90s when I used MS-DOS as a kid- executing actions, opening apps, and fetching info via slash commands. However, as applications became larger and more complex this was clearly not the best interface, and soon more human-focused operating systems (i.e., with better user experiences) hit the market.

MS-DOS was an early command line-based operating system used to manage apps. Slack / Teams are similarly taking the computer-like and highly-structured command approach to manage cloud software applications.

If Slack or Teams are the operating systems “where work happens”, we’re stuck in the MS-DOS era.

Structured commands and parameters are just not how humans think and work. Humans think in terms of what they want to get done - “I want to report a bug” or “I want to request a data report to be developed.” Not protocol://tool/action?params=.

These platforms don’t actually create a true human user experience when our software engages with us. The language differences between humans and computers also create major problems when it comes to software sending information to humans. There’s probably no one out there that has meaningfully integrated most of their company’s SaaS tools into Slack/Teams and there’s a simple reason why — it generates too much noise when it comes to data, alerts and communication. Even as a simple human-to-human communication tool, people feel that Slack/Teams is already too noisy. Most are very apprehensive about creating even more noise by adding more apps and notifications.

Again, the problem here is that there is no accounting for the differences between humans and software. Essentially, when you integrate any system into Teams/Slack that sends notifications, you are seeing the language of software — a huge log stream of events:

What we see when we integrate Sentry or any other tool that sends notifications into Slack is a time-based series of event logs that are essentially all boiled down into some form of text. As a human, this view sucks — I want to see by severity, new issues vs old, and prioritized by number of recurrence…i.e., a synthesized version of this event data dump.

For the human employee, this is too much noise and quickly becomes overwhelming. Now imagine integrating not one, but 50 to 100 apps into Slack. Not only is it impossible for humans to process this volume of information, but it’s not translated into the language humans speak best. As humans, we care less about a time-based stream of events, and more about priority, urgency, the type of data and context — essentially, we need synthesis.

The individual software tools themselves have done a good job building a synthesized user experience around the data, information, messages and notifications, but only do so within the app silos themselves. With aggregators like Slack/Teams, we end up with a worse synthesis (or none at all) and therefore a worse user experience.

These platforms are opinionated on where the center of work is. Finally, one of the biggest flaws of these platforms is that they are very opinionated about where the center of work is. The reality is that everyone has different centers of work, and need to be met there instead. Slack expects you to live in their tool to do your work — I think most would agree that there’s no chance! “Where work happens” is not in Slack/Teams — let’s be real…it’s just where chit chat happens.

In addition, just switching into one of these “center of work” systems generates cognitive burden in itself — the reality is that it’s just one of many other software tools. These tools don’t meet people where they are but, rather are very opinionated about where they should be.

We need an operating system to help us better engage with our software at work…

We need to re-imagine the user experience that employees have when working across all of their software applications in their jobs. The cognitive burden and productivity tax is only going to get worse as more software enters the workplace. Current solutions aren’t properly set up to tackle the user experience issue across all of these tools.

We need to take a human-centered approach to re-imagining how we engage with our software. We need a next-gen cloud software operating system for work that serves as an engagement and translation layer between us and our software, empowering us all to work more efficiently and effectively.

Guiding principles for a next generation operating system to help us work better across all of our SaaS tools…

The next generation operating system that sits across workplace software is going to be very different from how we think about current operating systems. We’re dealing with the cloud, not applications on a device, which means we have to think very differently around the user experience. I believe that a next-gen operating system will have the following characteristics:

  • It will centralize more of the human-to-software engagement / interaction. It must centralize employees’ workflows to allow them to handle certain tasks or view certain information from a central place. It doesn’t mean that there should be “one tool to rule them all”…this is not where the world is heading. It means that everyday tasks need to create significantly less cognitive burden and context switching for the employee, freeing up their time to focus on what really matters like core, strategic, creative and fulfilling projects.
  • It will meet humans where they are. Forcing employees to leave the place they are working means you’re just one more annoying tool in their already-crowded and noisy toolbox. A next-gen OS for work will reduce the cognitive burden of switching and allow employees to interact with their software where they actually are, which will be different for everyone.
  • It will allow employees to easily integrate all of their tools. What’s the point of an OS where half your apps aren’t supported? This operating system has to support tens of thousands of integrations with software tools. However, no company can reasonably build and maintain such a large library of integrations themselves, so employees and companies need to be empowered to be able to build their own integrations with their tools in a super simple way, without the need for software engineers. They need to be able to plug into their software tool’s APIs without needing to write a single line of code.
  • It will allow employees to engage with their software in a more human-like way. We shouldn’t have to regress to the highly structured and parameterized language of UX optimized for software. A next-gen operating system needs to allow us to have a very human and natural user experience.
  • It will understand that computers communicate very differently from humans. We can’t just take all events, logs, or webhooks from our software and inundate employees with it. While software and computers can work well like this, humans don’t do well with the dozens of Slack #channels full of app event logs. A next-gen work OS needs to be able to better synthesize, aggregate, contextualize, and prioritize messages from all software systems and display them in a way that reduces cognitive load and burden on the employee.
  • It will abstract away the details of software where they don’t matter. The next-gen OS needs to be very smart about abstracting away details of software where the details don’t matter to the employee in order to reduce cognitive burden. Many times at companies, the software doesn’t really matter in the context of the action being taken. Does anyone outside of Finance/HR really care that Expensify is being used for reimbursements? No, they just want to submit an expense and get their money. Does anyone outside of engineering or product management really need to know that Jira is being used to manage bug tickets? No, they just want to have a simple way to report a bug. A next-gen OS will build an abstraction layer in front of software where it makes sense and expose the details where it’s necessary.
  • It will be built for teams… Most of our software today is used for collaboration, and the next-gen OS needs to be built with this in mind. It should go well beyond being a productivity tool for productivity nerds and empower entire teams and companies to work more effectively together.
  • …while recognizing that everyone has their own unique ways of working. Even within a team, everyone is unique and has their own working style and workflows. Tools that are too opinionated about how someone should work often fall by the wayside because of that one thing that didn’t quite exactly fit someone’s working style. A next-gen OS will give individual employees the freedom to customize the system to fit their needs.

I’d love to hear from you…

If this topic is interesting to you and you’re interested in this space, I’d love to hear from you! Shoot me a note at karim.butt@gmail.com and I’d love to chat.

--

--

Karim Butt

Engineering and product leader. Founder of GlossGenius. Write about engineering, tech, productivity, management. Working on something new.