Developer experience as a competitive advantage
I spent a ton of time looking at different software providers, both as a CTO, and as a nerd “advanced” consumer who builds stuff in my spare time. In the last 10 years, there has been an order of magnitude more products that cater directly to developers, through APIs, SDKs, and tooling. I'm pretty psyched about this trend. As the cost of building software goes down, that drives up the demand for software engineers. That then drives up the demand for even more products built for software engineers. That then drives down the cost of building software even more!
This flywheel seems like an excellent thing for our economy. You don't need to look to far to find a startup built on top of AWS that probably wouldn't have existed 10 years ago because it was too hard/expensive.
Back in the days, a lot less existed, and it was hard to buy software. If you bought it, it was shinkwrapped on-prem software that came with expensive supporting contracts. Maybe you had to go through your company's procurement team and they would come up with a checklist, go to Gartner and look at vendor and all that stuff. Maybe I exaggerate, I don't know — I've suppressed those memories.
These days, some developer in your team often discovers a solution they are struggling with, goes and signs up for a trial, and demonstrates a working prototype of an integration to their team in half an afternoon. This “consumerization” of developer services explains a lot of what's changing. When everything previously went through a procurement team, developers now buy things themselves. This changes the sales process from one typically driven by a commissioned sales force, to one primarily driven by self-service (but often still supported by a sales team for larger contracts).
Crappy tech vendors
Consider a typical API product. Stuff you might have to do to get a prototype integration working:
- Schedule a meeting with a sales person
- Wait x days to get API tokens
- Get a PDF with integration docs
- Deploy a service inside your production environment
- Deal with firewalls, routing, DNS config, and certificates
- Configure your authentication provider to work with it
- Browse through confusing (often auto-generated) API docs that doesn't seem to be written for humans
- Webhooks?
- PGP Keys?
- Environment variables?
- …
This is my terrible mental image of every crappy tech vendor's website. I've spent six years in the mortgage industry, I've seen it all. Just give me an API token and docs!
It often feels ike the developer experience is pretty much an afterthought, and I keep making fun of it. I imagine it's not just me but probably millions of developers spending an inordinate amount wading through confusing API docs. And this stuff is like, seriously hard! Mess it up and you might get slapped with a $80M fine for misconfiguring IAM policies. The cost of poor developer experience is real.
Growth hacking the developer
If you have spent any time in the last 10 years at any moderately successful consumer-facing startup, you have probably been exposed to their growth team. Growth teams iterate the living daylight out of the landing pages, onboarding funnel, account registration flow, remarketing campaigns, cart abandonment emails, and 1,000 other things that drives conversion rates.
Say what you want about it, but the end result is that it's about 100x easier to open a bank account online at an online bank than it used to be, or buy bread, or send flowers to your parents, or whatever you want to do online. The other day, I took my toddlers to the playground and was running around chasing them while ordering gardening equipment on my phone.
Acquisition for a developer-focused business is just like any other online service these days. All the tricks in the playbook apply: SEO, retargeting, content marketing, and much more. It doesn't matter if the end goal of the conversion funnel is buying flowers or hitting the sandbox API with a request. The principles are the same.
The Stack Overflow momentum effect
Writing code is like 30%+ googling error messages and finding posts by other people who already solved the same issue. This suggests that there is a strong virtuous cycle getting momentum online. More users of a software generates more Stack Overflow posts (and Github stars, blog posts, and what not), which then increases the developer experience, which then wins more developers. These dynamics are set up to create winner-takes-all markets.
As it says in the bible, the rich get richer and the poor get poorer. If I was an investor in SaaS products (I am not!), I would ask for the number of Stack Overflow posts as the leading indicator of success. I'm like 75% serious.
You see this a lot in a different form. Companies have developer evangelists, community managers, or whatever they call it. They sponsor hackathons and run meetup groups, and you keep bumping into their colorful t-shirts at conferences.
Self-service and freemium
To increase the conversion rate, free tiers are often available. For instance, AWS has a free EC2 tier that you can sign up for, that lets you run basic things in the cloud. Running a free tier as a loss-leader is a bet that enough of those users will convert in the future.
But done right, it's actually more than that. Free users can trigger some sort of viral growth. They might generate questions and answers on Stack Overflow. They might write stuff on their blogs. They might tell their friends and coworkers — developers are actually far more social than we like to admit!
Open source as a freemium model
Open source often ends up being the best example of a freemium tier (or I guess, alternatively, an acquisition channel). Feel free to run MongoDB or Kafka on your laptop, and build stuff on top of it. Once you get hooked on it, these companies offer super powerful cloud-hosted solution that they make a ton of money on. Confluent (Kafka creator) is a $4.5B business — incredible! 👏
Although I think there's a great window of opportunity to turn open source software into business opportunities right now, I do have some reservations about it in the long run. This might have to be another blog post one day.
Developer experience as a competitive advantage
Wrapping it up, what do I think is going to happen? I don't know, but here's where I would put my money:
- There's going to be a group of companies who understand these trend and go all in on it. I already mentioned Stripe, Twilio, and Netlify as three great examples.
- There's going to be a bunch of dinosaurs that die out. Any direct Stripe competitor that requires you to talk to sales person, or has a super confusing SOAP API, or whatever.
- Some companies will struggle to reorient themselves, and it could go either way. AWS feels like the million ton gorilla here. Some of their services are fantastic, but many are of highly questionable quality. Will they be able to bring that spark of joy to developers or will they get unbundled and outcompeted? Time will tell.
- The market for products for software developers will grow by another 10x, easily
- The quality of those products will be vastly better. It will be easy to get started, and fun to use them.
- What's going to be for sale out there? I think the opportunities are endless, but here are some general categories of things:
- Pretty much everything that isn't core business logic should rationally be pulled out of your codebase and sold back to you at a fraction of the cost.
- Probably anything you can do in the real world. Ship things. Pay people. Sue someone. Get an apartment cleaned.
- Get data on anything. The atmospheric rate of methane in Bangladesh. The current water flow of Missisippi. All the parking tickets for a person.
- Anything you have to set up and run on your own infrastructure (example: Kubernetes)
- Much better closed-source versions of the tools in the previous category (example: Datadog).
- Any special internal infrastructure/tools that so far only Google and the alikes have had.
- The great AWS unbundling: any product that AWS has which is just OK but not great.
- Productivity tools for developers. Tools that let you remove time wasted not solving problems.
If there's any persistent lesson we've learned about the future, it's that it's a lot harder to predict than we think. But I think it's a pretty safe bet that software engineers will have some amazing tools in 2030 that makes today's tool feel antiquated. Looking forward to it!
Tagged with: software