I think economically incentivized software is eating the world, and I wish it wasn't.
For a span of 4 or so months, I went on somewhat of a work life hiatus, blessed with opportunity to explore my passions and find the truest version of myself outside the context of a job. A thought, that for the past 5 or so years, I never considered could be my reality.
During that time, I got the chance to write a lot of software. Software that felt different than most of what I've written since I started programming. Initially, I chalked up the new found joy and love to my suddenly open calendar of possibilities. Nothing but time on my hands to work on all of my passion projects, meant that everything I'm working on must be for a good reason.
What I realized though, was that a large percentage of the software that I've written up until this point has been economically motivated. Economically motivated meaning that the software had to make money. Money, that could come in the immediate moment, or money that might be promised in some future.
I think there's something soul sucking that happens when you add an economic incentive to any creative process. It alters the way that you create, because it changes the kinds of things you want to optimize for. Software, as a result of being an art form is the kind of thing that you can do, for the sake of doing it. Money has this way of turning a craft that is an end in and of itself, into a means to an end, that never actually ends. And because it does this slowly, over a long period of time, it becomes hard to tell when play becomes work. So how do we tease apart the essential qualities of these two ways of creating?
One way, is to think about what kinds of questions you would ask as it relates to the quality and condition of the code. In this most recent iteration of my craft, I often found myself asking whether or not a feature "felt" right, rather than what "metric" or "edge case" it was solving for. I was doing far more "tweaking" than "fixing", often driven by questions that don't have deterministic answers. Instead of asking about a whole bunch of constraints that it needs to abide by, I cared about how I could extend and even complicate the project. Questions around "performance" and "velocity", were replaced with questions about "ideas" and "a vibe".
Another great heuristic for knowing what kind of making you're doing is by the novelty of the thing you're working on. Economically motivated software tends to be boring. It follows a series of steps and paradigms and theories and established patterns. It usually follows from some set of ideas that keep showing up in similar ways, and for all intents and purposes is a "solved" problem.
Uneconomically motivated software is interesting. It has no notion of "right" and "wrong", and is much more about digging in the dark, than it is about following a forgone conclusion. I should clarify that this heuristic is meant to be descriptive, not prescriptive. I spent a ton of time trying to recreate software that already existed with the goal of trying to understand the black box of the algorithms that underpin them. All without ever thinking about a dollar. But I think it is often the case that when I look back on all the opportunities I had to create, more often than not, when money wasn't involved, I was discovering, but when money was involved, I was reinventing.
Software that is not motivated by money in many cases is ingenious and creative. It often blends different things together to make new ideas. Perhaps, one of the reasons that canonical advice for starting a startup is working on personal projects, is not just because you end up making software that people want, but also because the way you're building those projects, is fundamentally different than everyone else who is doing it to make a dollar. And that's exactly the kind of advantage you want as a potential startup founder.
So why aren't we writing more uneconomically motivated software?
My guess is because of capitalism, but that feels too hand wavy for an explanation. It puts too neat of a bow on what is otherwise a really difficult and complex topic to dissect. If I had to summarize in a sentence, I would say that its because we don't value creative diversity.
Whether it's programs, or words in an essay, we value and incentivize output of content, over the diversity of ideas presented in a work. The result is more output, and less depth across the board. Even the mythical 10x engineer is not the one who proposes a new model for how to think about computing, but instead, is the one who fixes more bugs and writes more features in the existing codebase.
I say all of this to say that I think we're better than the future we're headed towards. If we look at the totality of the life experiences that we're going to have, a lot of what we will do is leave remnants of ourselves in the form of our ideas. Those ideas deserve the creative fervor and energy of the uneconomic side of your brain. So while I don't advocate you quit your job to pursue these passion projects, it's important to pause and reflect on the extent to which this balance exists in your life today.
Beyond software, are you someone who creates as equally for yourself as you do for other people, or do you find yourself consumed by the idea of creating within an incentive? What we do with our time is probably the most important decision we consistently make. We should choose to spend it doing the kinds of things that make, for the sake of making.