As simple as possible, and no simpler
"Everything Starts Out Looking Like a Toy" #86
Join smart, curious folks to get the Data Ops 📊 newsletter each week (it’s free!)
Hi, I’m Greg 👋! I publish this newsletter on finding data products and interesting data observations with the goal of finding patterns and future product insights. (Also, it’s fun.) If you need a background on how we got here, check out What is Data Operations?
This week’s toy: a engineer builds a robot that can shoot Nerf darts out of the air. Edition 86 of this newsletter is here - it’s March 28, 2022.
The Big Idea
A short long-form essay about data things
⚙️ As Simple as Possible, and No Simpler
There is a famous quote attributed to Albert Einstein. It goes like this: “Everything Should Be Made as Simple as Possible, But Not Simpler.” People use this quote as proof that certain problems defy simplification, and that when you oversimplify a problem, you get an inferior result.
As you might expect, the actual quote is a bit denser. It has a similar meaning: that there is a limit to simplification.
It can scarcely be denied that the supreme goal of all theory is to make the irreducible basic elements as simple and as few as possible without having to surrender the adequate representation of a single datum of experience.
When building great B2B software, this quote sums up the paradox of balancing “make it easy” vs. “make it powerful” when building a product. Customers want to make it easy. They also want their product to do anything. To a certain extent, this is impossible. The best products make you feel that you can do anything and that it’s effortless. You’ve got to try to meet this expectation.
Mobile Phones and Social Media Changed The Game
One of the reasons for this expectation is that billions of dollars have been spent to attract your attention to your mobile phone. This is now the dominant form of all software, whether we like it or not.
In the olden days, before social media, there was a clear divide between Enterprise/B2B and Consumer software. If we consider a classic view of this difference, it’s like the difference between Credit Check software run on a mainframe in a data center somewhere and a game system used to run consumer games on a television.
You could think of this as the difference between an app run privately in a large Fortune 500 company and a personal app run on a phone and installed from a networked app store.
How do we sum up these differences?
Enterprise software is …
Serious - used to solve important problems
For business use only - not relevant to consumer needs
High powered - able to solve the most challenging problems
On-Premises - securely available only in the “place where we do business”
Complex - if it’s easy, it must not be powerful enough
Consumer software is …
Fun - the problems are transient and frivolous
For personal use only - you wouldn't use games in a business context
Low-powered - games aren’t networked or able to solve “real” problems
Anywhere - available with you wherever you are
Simple - you must be able to get value from this almost immediately
These assumptions worked reasonably well in a world where we did not have the combination of persistent high-speed data combined with portable devices having the equivalent power of a supercomputer in your pocket.
And now, these assumptions are completely out of date. Not only do “consumer applications” do the kind of calculations and simulations we would have expected a few years ago in complex enterprise software, but they also do this within the context of needing to be almost instantly usable. If you’re wondering why you don’t get many dopamine hits using your typical business software, it’s probably because it doesn't do its job as well as Facebook, Twitter, or TikTok.
Applying the conventions of consumer software or casual games or social media to business software will not automatically make those apps easier to use, better, or more successful at achieving the outcomes users want to achieve. Some of these problems aren’t as simple as posting a status, a photo, or sharing an experience with friends. But they do have important clues that have been vetted over hundreds of millions (or billions!) of users, so we should pay attention.
What makes consumer software “consumer-y”
Consumer software is inherently easy to use.
One of the main reasons is the Platform. Whether you’re using an iPhone or an Android phone or tablet, there is a standard UI and vocabulary for taking action that you as a user internalize incredibly quickly.
Apps are squares (but magic ones). When you touch the squares on your phone, they launch individual experiences that customize the look and feel of your device into an incredibly specific set of actions. When you’re done, you close the app and switch to something else.
By creating a grammar for interaction based on the platform itself, both Apple and Google have given their users a toolkit for learning how to do new things. Using the existing tool gives you the grammar to use more apps. In this way, you already know “how to use” a new app, even if you’ve never used it before.
Consumer software has a few key tenets:
It seems familiar (you’ve seen it before)
Even if incredibly complicated things are happening (a Monte Carlo-like simulation of your retirement run 250,000 times in a second), you see a simplified version of the output
Its goal is to let you do something small, succeed, and then give you a dopamine hit for doing that over and over again
Successful software also has a network effect loop where you share something with other people who are using the software and get feedback on what you did
Because consumer software is built for quick hits, frequent usage, and the building of experience over time, it’s naturally top of mind. This is fundamentally different from the way enterprise software was designed.
What makes enterprise software “enterprise-y”?
Enterprise software is inherently complex.
One of the main reasons is that it has no Platform. When you use enterprise software, you are probably using a “best-in-class” piece of software that is intended to solve an incredibly specific problem with a high-value outcome. If this software helps a business make money or keep customers, that business has an incentive to keep training their people to learn that software, even if it’s pretty hard to learn.
In classical terms, you can think of this as a kind of intellectual moat. Smart and dedicated people can learn how to become lawyers, doctors, mechanics, software engineers, and it takes years (or sometimes decades) of specific knowledge to achieve the kind of proficiency.
If you are a skilled practitioner, you learn the very specific platform that is dedicated to your profession, and you become an expert. It’s hard for other people outside the profession to know what you do, and you learn how to do very complex things in your preferred software. You can learn new types of software in this domain, but you probably don’t crossover into other expert domains.
Enterprise software looks like this:
On first seeing it, it’s a kind of magic - amazing things happen and it’s not super clear why they occur.
After a while of building and using these platforms, they don’t seem quite as mystical, and you’re used to seeing a pretty complex and difficult output instead of a simplified view of things.
The goal of these software products is to let you build your own view of the world and customize it to the inner workings of your company. This means by nature it needs to be extremely flexible and abstract. What you’re looking for is a system for building systems.
The network effect you’re looking for inside a company is the symptom of “business metrics going well” and that complex wizardry is the answer.
However, your enterprise software buyers … now spend their entire days working in consumer software. This presents a problem.
The Game Has Changed
Software users - whether they are using consumer or enterprise software, have new expectations. They expect everything they are using to be as easy to use as Facebook.
In a world where these rules now apply, enterprise software product managers need to adapt.
The following things are now true:
Software needs to provide immediate value
Systems need to be easy to use
The problems software is trying to solve can still be quite complex
It’s hard to get people to work together on problems that appear to be in different systems
You could argue that this is nothing new. Great software needs to be intuitive, powerful, and easy to use.
The key insight for building enterprise software today is that it’s no longer sufficient for the vendor to tell you that you must conform only to their model. The place where we are all building software - the Internet - is the platform. This means that the sub-platform we need to build (analogous to the app store for phones), is the data model and design for the way the business does business.
Building a Data Model for Your Business
But wait, you say. I have lots of applications that work to run my business today. They work fine … except when I need them to talk to each other.
This is the core problem of modern enterprise software. We’ve built systems that are mini “walled gardens” of information. They are pretty good at facilitating the day-to-day actions that each department needs to do - in fact, they’re optimized to do so. And they almost always fail at sharing information with other systems because they were not designed to do that.
The platform that we need to build is the ability to easily abstract and facilitate communication between systems so that you always know how to use a new piece of information or process in the context of the business you already know.
What does that look like when it’s built? It’s similar to the mental model you get when you are walking around an office and need to get information about a customer. When you need to know their customer health, you might ask their account manager or customer success rep. When you want to know if they’ve paid recently, you go to accounts payable to ask them that question. If you need to know how they use your product, you ask the product team for usage data. All of this information revolves around the same company - your customer. Yet the data today all exists in different systems.
The Future of Enterprise Software
The number of systems we bolt together to solve problems is not going to decrease in the future. We need to create a system that’s easy to adapt and change depending upon the challenges of the business while maintaining the core idea of the business model.
How must enterprise software change to stay relevant in the future?
It must be easy to use. It’s ok for them to be complex under the surface, but the connection between the thing people want to do and the effort needed to do it must be clear.
It must be powerful. Easy-to-use software that cannot scale to the needs of the business will be eclipsed by capable, professional tools.
It must be modular and composable. Systems that build systems are the name of the game. By proposing and building a platform, you’re limited only by the customer’s imagination.
It must be integrated. Part of that system you build is a system of integration, so that the data model of the business can be shared across systems.
It must not be too easy. This is the tough part. The system needs to be as simple as possible, and no simpler.
What’s the takeaway? There’s a reason we’re addicted to our phones. It’s that they provide us with almost instant information that feels relevant to the problem we feel we are solving. The best enterprise software captures that “easy-to-use” feeling while also building on a secondary platform enabling companies to connect their various systems in a grammar simple enough for novice users to ask and answer important business questions. They make things seem simple without actually oversimplifying the problem at hand.
Links for Reading and Sharing
These are links that caught my 👀
1/ How to Product - Gibson Biddle lays out how to build product strategy in 12 parts. Why should you listen to him? If you’ve had a child’s toy (TLC, Mattel), watched a streaming service (Netflix), or rented a textbook (Chegg), you’ve engaged with his products. This is a master class of learning how to set product strategy.
2/ The Ghost in the Machine - Even though autonomous vehicles of many kinds are coming soon, they need help from human operators to do non standard things. Einride is building a way for remote operators to run trucks for the “last mile” edge cases, and creating a new kind of job in the process.
3/ Don’t average your averages - If you’ve taken a statistics class, you probably have a vague memory of an admonition to avoid “averaging your averages.” The reason has to do with smoothing out your data too much with aggregation, but I haven’t really thought about the effect of these changes until I read this blog post. By showing temperature data over time and discussing ways to display it, Zan Armstrong really makes this concept accessible.
What to do next
Hit reply if you’ve got links to share, data stories, or want to say hello.
I’m grateful you read this far. Thank you. If you found this useful, consider sharing with a friend.
The next big thing always starts out being dismissed as a “toy.” - Chris Dixon