Missing abstractions

A brainstorming framework

One of the joys of being an early-stage VC is going through the ideation process with founders. When brainstorming, a framework I've found helpful is to look for missing abstractions — user needs that can be generalized and effectively outsourced to a product.

Useful abstractions have a few qualities:

  1. ubiquitous — apply to a broad range of users
  2. common —  repeatedly appear in a user’s workflow
  3. clean — effortlessly carved out into a standalone solution

Some quick notes on each.

Ubiquitous: It's easy to make the case that you should look for pain points affecting many people. After all, a broad range of users implies a big total addressable market (TAM). A big TAM is necessary for a venture-scale outcome. However, this is the likeliest quality to misread. Not all good ideas start with a large user base. Some of the best ideas create new markets. I prefer to think of a ubiquitous abstraction as one that has the potential to grow both horizontally and vertically into another layer. Horizontal growth expands the user base by addressing adjacent user needs. Vertical growth broadens the user base by creating higher levels of abstraction. Good abstractions are rarely TAM limited.

Common: User needs that occur with a reasonable amount of frequency tend to be a hotbed for frustration. If you have to do something repeatedly, you are much more likely to become frustrated by the rote nature and want to outsource that to a product. Frequency amplifies user pain. Consequently, workflows with much user frustration are fruitful areas to brainstorm missing abstractions. Solving a missing abstraction with repeated user interaction also makes it easier to take on more and more of a user's workflow. Because users are already spending a significant amount of time in your product, they are more likely to adopt additional products that make their lives easier.

Clean: Valuable missing abstractions are clean abstractions. A clean abstraction can be neatly encapsulated into a reusable pattern with a friendly interface. It hides complexity and lets users forget what is under the hood. Looking for places to hide complexity is a fruitful brainstorming technique because complexity, like frequency, breeds frustration.

Finding good missing abstractions is also a test in finding the sweet spot between something core to users' workflow but not too critical. A good missing abstraction delivers value because it is part of a core process. But, it is not vital enough to stop a potential customer from outsourcing it to a new product.