Non-scalable Software

#ai #opinion

I have not treated vibe-coding seriously until this week. I vibe-coded a personal course picker for my upcoming adventure at MIT, in just one afternoon. I got all the features I wanted and nothing I don't want.

I surprised myself so much that I had to document my vibe-coding process in this detailed technical report.

This is my own wake-up call. The bigger paradigm shift is not AI replacing software engineers. Instead, AI can and should eliminate the need to generalize and thus compromise software for a large group of users. In our industry, we have to invest so much resource in understanding and balancing the different needs from our users because we want to achieve the economy of scale by serving as many customers as possible.

Scalability is the name of the game for commercial software.

Engineering, Design, UX Research, and PM all thrive because of the fundamental trade-off between customizability and scalability, and the fundamental disconnect between software makers and software consumers. These disciplines exist specifically to optimize this trade-off. Their role is to understand users' goals and constraints so we can scale our products to serve individuals while incurring as little complexity as possible. In these cases, complexity is the cost while scalability is the reward.

All of these roles emerged from the necessity to bridge the gap between what users actually want and what we can feasibly build and maintain at scale.

What if that equation no longer holds? What if each software user can directly conjure up the tool they need? What if non-scalable software is a feature, not a bug?

I previously wrote how Figma Make could start the revolution of non-scalable software but their business strategy only reflected the entrenched view of further optimizing for scalability. I think there is a scarcity mindset at play.

The scarcity of software has been a fundamental constraint of our industry. We couldn't mass-produce personalized software for every individual's unique needs. We had to settle for one-size-fits-most solutions. But with AI, we are on the cusp of that software abundance.

Granted, I used my software engineering experience to speed up the vibe-coding significantly, but I believe in the near future, everyone can generate software on demand that fits like a glove. If we agree that is the future we want, we should rethink our roles in making that future happen and align AI to help us get there safely and quickly.

And perhaps we can stop obsessing about making software for others. Let's make more software for ourselves.