What is the Hard Part? Four ways things can be complex
One is a dragon
This isn’t the part you wanted to be complicated.
You like problems. Problems are fun. You used to lay in bed and think about untangling complex issues. Why is this job different?
The screen overflows with errors and ideas that don’t line up. It’s the wrong sort of complexity. It’s not fun anymore.
There are four types of business problems. All can mint hugely successful companies (I’ll give examples). Knowing which of the four you want to be a part of lets you narrow in on the kind of work you want to do. And maybe save you a lot of pain.
Technical challenges, domain complexity, (or both and awesomely neither) gate Product implementation. Each of the four areas can produce outstanding and innovative companies. The purple and dragon squares are where you find more duds.
Complicated domains are difficult to comprehend for one reason or another. Things like healthcare and finance have complex compliance requirements. Construction and logistics have dynamic workflows involving many parties.
Often, it’s not hard to build a solution here. It’s making the correct thing that’s hard. And man does it suck it to figure out at the last minute you built the wrong thing.
To avoid that suck these companies require a product and design lead organization. User research is critical to continuously test that an idea is solving a real problem for users. The technology may be simple, but a poorly thought out a workflow or even an API misrepresenting some data can make or break the feature being used at all.
You need industry veterans to handle high domain complexity problems. Someone who can point out landmines before you step on them.
Too much Old Guard can be a bad thing though. Without fresh eyes, you keep the same blind spots as everyone else. This makes disruption more difficult.
My last and current companies, PlanGrid and Flexport, fall into this camp. Hugely complicated domains that required Product, Design, and Engineering working closely to deliver.
Problems that are technically complicated require engineers to sit in a room together to solve underlying issues. What needs to be built is known. How to build it is the problem.
If you imagined an engineer salivating at that last time then you’re on the right track. Companies in this space are Engineering Lead.
Google started in a graduate lab and it was a technical marvel of the time. What they built was easy to explain; a text input box to search the internet. How wasn’t known at the time, by any of the companies trying. Google had to create novel systems like Map Reduce and Google File System for the initial product.
Low domain complexity allows for more competitors. It’s easier for anyone to understand the space and start. So, they do.
Industries here need to differentiate on their approach and moats (TL;DR the thing that makes it hard to compete with you).
Twitter started as a single Ruby on Rails process and made it surprisingly far on only that. The scale of their success forced them to solve more technical problems eventually (this happens to nearly all successful companies!).
There is almost no completion in the microblogging space because Twitter has a network effect moat. There are into to programming courses where you build a simple version of Twitter as an exercise! It’s not hard to create something here. It’s hard to give people a reason to use it.
As companies become successful they only move up and to the right. Nothing gets less complicated. Ever.
You hit the tech limits of growth and are forced to change the design of the product to maintain its current functionality. Or you expand into multiple features/products that have to interact and handle the edge cases of larger customers.
Knowing the types of problems you want to solve lets you focus on the industries or companies that will likely fit. I enjoy understanding complicated domains and quickly on solutions within them. For my last two jobs, I only targeted companies in industries I felt technology had underserved so far.
No matter what type of company you pick, you’ll have to dip a toe in another style (assuming the company lives that long). The change in the type of problem a company solves is a significant contributor to attrition. People who focus on one kind eventually have to change where they work to get back into the space they’re comfortable with.
Once you find the area you enjoy, remember to try out others at some point. Each one has unique problems to solve. Exposing yourself to them will let you understand the growth trade-offs of the things you are making today.