So much of the tech industry is obsessed with exponential growth. Anything linear is dying, or has been dead for years. But it’s time to stop looking at exponential growth of headline metrics — we need to start thinking combinatorially.
We see exponential growth everywhere in tech. Moore’s Law had transistor density doubling every two years. Available bandwidth is increasing exponentially — perhaps 50% annually. Every digital product needs viral exponential growth — invite two friends who invite two friends and so on until you have seven billion active users. Everything is a hockey stick that you’re praying doesn’t turn into a parabola.
But it turns out that the things that grow exponentially, like MAUs or page views, can un-grow just as exponentially. Optimizing for exponential growth can mean sacrificing stickiness, user engagement, and satisfaction. You’re fighting churn and struggling to support your networks. And worst of all, exponential growth isn’t even the fastest growth there is.
Let’s take a quick look at our old friend linear growth. You know, y = mx. Slowly, over time, you have more of something than you did the day before. Your growth rate is a constant, never accelerating or decelerating. Comforting, familiar — but slow. Here it is:
But then you hear about exponential growth — y = m^x. Suddenly, old dependable y = mx doesn’t seem so great in comparison. Exponential growth is seductive. It’s faster, bolder, and it looks way better on charts.
Just look at that green line. I don’t know what we ever saw in linear growth, to be honest.
But let us consider combinatorial explosion. This is a mathematical effect that occurs when combinations of variables or nodes within a system are each connected to another, or when branching factors are considered in search problems (like when analyzing potential chess positions x moves ahead of the current position). A common numerical example would be y = x! (x factorial).
This is not a very compelling or impressive effect for small numbers (or small time frames, if that’s our x-axis). Let’s compare exponential growth to combinatorial growth.
When x = 5:
- exponential growth: y = 2^x = 2⁵ = 32
- combinatorial growth: y = x! = 1*2*3*4*5 = 120
However, for just slightly larger x, such as x = 10:
- exponential growth: y = 2^x = 2¹⁰ = 1024
- combinatorial growth: y = x! = 1*2*3*4*5*6*7*8*9*10 = 3,628,800
And for x = 20:
- exponential growth: y = 2^x = 2²⁰ = 1,048,576
- combinatorial growth: y = x! = 1*2*3*4*5 = 2,432,902,008,176,640,000
Wow, you may be thinking. A million of something isn’t cool. You know what’s cool? 2 quintillion. Forget exponential growth — combinatorial growth is sexy. I have graphed the effect of combinatorial explosion slightly unscientifically below:
Um. Okay. Maybe it’s more dangerous than sexy. Like, too hot to handle.
Combinatorial explosion is not the kind of growth anything is equipped to handle. If this is searching branches in a chess position, or if it’s any number of issues in artificial intelligence, we’re looking at evaluation times that increase from seconds to millennia as complexity increases.
The reason for the huge disparity between growth rates is clear — instead of the base unit increasing exponentially, the number of possible paths or connections between base units is increasing exponentially. Big difference. That’s why we have developed methodologies like heuristic search to cut search times and better handle combinatorial explosion.
Our individual brains already work combinatorially: “each neuron may be connected to up to 10,000 other neurons, passing signals to each other via as many as 1,000 trillion synaptic connections, equivalent by some estimates to a computer with a 1 trillion bit per second processor.” Adding another 1 billion neurons wouldn’t be considered 1% growth — it’s a huge expansion in the number of possible connections and signals.
When Do Networks Explode?
Okay, so combinatorial growth is awesome, but overwhelming. So let’s say you’re focused on achieving normal hockey-stick, exponential adoption for your product. You definitely won’t see combinatorial explosion in your monthly active users or file uploads. Those kinds of metrics are going to stick to exponential growth — at best.
But what if instead of looking at the number of users, we looked at the efficacy of users on a social network? We can then see how the productive power of a social network can indeed increase combinatorially, and to our great benefit.
Before we do that, let’s look at Facebook, a network that has exhibited strong exponential growth even as it approaches the carrying capacity of the internet. That’s great, really. But if users only connect and converse with their existing real-life friends, no new connections or paths are formed. You may discover a friend of a friend on occasion, and you may add them as a friend but never directly converse. The productive power of the social network, or even your power within it, cannot be said to have increased since no new paths were added and no new communication was made. This is pretty realistic — Facebook as a product doesn’t really encourage you to add strangers as friends or converse with them; it mostly funnels you into a news feed populated with lucrative advertising space.
LinkedIn does a little better — it encourages you to make connections with people you don’t know in real life or to refer your friends to new professional contacts. The focus on professional goals like networking and job-seeking is helpful here. Direct communication is limited though — either you use InMail (a slow, email-like messaging feature) or speak in LinkedIn groups (essentially old-school bulletin boards). In this case your productive power has increased somewhat, and the productive power of the overall network has increased as well with new paths established and additional communications sent. But the means of communication are so bad, your individual network’s power is still limited.
Now look at a chat-based productivity tool like Slack. Within a workplace environment, user growth and carrying capacity are determined by the number of employees in the workplace. We certainly can’t expect exponential growth in active users, and likely not in the total number of interactions. However, because network participants are organized and motivated by intent and the platform is built on real-time messaging, the number of possible connections and the frequency of connections can lead to a strongly productive network that continually generates new concepts, especially when properly managed and nurtured.
There’s a few additional advantages here. The creative power of the group is increased due to flexible group sizes — two users can add any other single user to a chat and have a materially different productive conversation. Also, the users themselves can seek out or break off conversations, thus helping to prune the explosion of new communications. Users determine whether ideas and strategies generated by these connections are likely to be useful to other users and can share as needed across the network.
Imagine if we combined the exponential growth of Slack users and groups with the combinatorial explosion of productive power enabled by individual Slack networks. Suddenly we start to see an entirely new paradigm for social communication that’s focused around productive generation of ideas, content, art and action across networks of engaged users. Different disciplines and expertise interbreed and birth revolutionary concepts. A beneficial combinatorial explosion of productivity and culture ensues! Rejoice!
— — — — — — —
Maybe it’s all a dream. But look, all Facebook’s exponential growth ever got me was a bunch of cats in my news feed. I never see those billions of users. As far as I know, their existence only helps Facebook create a better advertising product.
In my mind, it’s time to stop focusing on the hockey sticks, and keep our eyes on the puck. Social communication needs to move away from the echo chambers of Facebook and back into real-time, diverse networks enabled by modern, powerful, purposeful social tools.
So let’s start collaborating combinatorially. Let’s see what we build.