A lot of projects are software projects. But for a lot of projects, writing software is not the hardest part. These are what I call Conversation-Hard Problems.
Starting an independent software business is Conversation-Hard. Selling an indie video game is Conversation-Hard.
A clue that something is Conversation-Hard is that inexperienced developers succeed at it. This is upsetting to a lot of programmers because they want to believe that what they’re good at is the hardest part.
When you’re starting a business, the key question isn’t “what code am I writing?” it’s “who will pay for what I’m making?”. It’s not “what libraries should I use?” it’s “how will I acquire customers?”
Things that are Conversation-Hard are a dialogue, not a decree. It’s about a context, not a piece of work in a vacuum. Making a video game is in large part about other games. What previous experiences do players bring to the table? What do people already know and what do you have to explain? Can people understand what you’re communicating? Or are you designing in a dialect only you can understand?
In a conversation you can’t leave for 20 minutes, come back, and resume talking like nothing happened. Similarly, you can’t build something under a rock and wonder why no one cares when you show it to them months or years later.
There’s a reason the Turing Test is about whether an AI can hold a convincing dialogue with a human. Conversation is flowing, changing. Art, culture, and business are all a conversation. Are you working on something that’s Conversation-Hard? Or are you fiddling with bits that an AI will out-fiddle you at in a few years?
Try to remember that you’re not building a testament to your cleverness, you’re contributing to a dialogue.