On killing projects: or “Sometimes it’s okay to move on…”

About six months ago, I finally landed a new job. The job hunt had been gruelling to say the least, with the lows feeling more desperate and fatiguing than I care to admit. In my unemployed time, I worked on projects a lot and, for the most part, they were immensely fun for me.
I had time…
The catch of all this would be that I had the time to do so.
I had the time to go down a rabbit hole reading about emulators.
I had the time to tunnel on a tangent that would end up being a really poor use of time.
I had the time to play with settings and configurations and all the while chatting on Discord at a leisurely pace.
I had the time to stream my progress and journey on Twitch.
However, when you’re working a full forty hour week, the time suddenly vanishes. I can only imagine how much worse it is for people with children or perhaps elderly parents to care for. To be clear, I have time to work on things, but I finally noticed that it was reduced.
Being responsible takes time
Perhaps I’m doing something in my adult life wrong, but everyday life just takes a lot of time. Among other things, there are various things like:
- Spending time with friends and family.
- Exercising and eating well.
- Chores, shopping, and housework of varying amounts.
- Some modicum of entertainment like reading at bare minimum.
- Travel of all kinds.
Again, I want to be expressly clear: I am not complaining. I am a privileged person with an amazing life; everyday I’m grateful for quality of life that I lead. With that in mind, I don’t think I was being reasonable with myself when I first got back to full-time work.
Time to kill… projects, that is!
After three months of my new job, it was clear… something had to give. I can’t keep juggling two or three projects indefinitely. It’s okay to get distracted sometimes and it’s okay to not feel motivated. You pause, take a deep breath, and then get back to it once you’re ready.
But that was when I noticed a sense of dread arising whenever I’d think about working on certain projects. Most specifically, the game I was developing at the time, “OctoDive”, that had been seriously stalled out since my move to Seattle and my new job. The game had come to me in a burst of inspiration:
“What if I made Downwell, but kind of a chill game? You’re a cute little octopus descending into a chasm and collecting fun treasures!”
I made lots of progress quickly on it, but as it progressed, I kept getting this itching feeling that I was forcing a mediocre prototype to become a full-fledged project. The sunk-cost fallacy began taking over my mind: “I can’t throw it away! I’ve made such great progress on it and people seem to think it’s cute.”
Even more than that, the feeling of judgement for adding yet another thing to the project graveyard kept lurking at the back of my thought process. For what it’s worth, I don’t think there’s a single developer I know that doesn’t have a project graveyard of some kind or size. I would reckon my project graveyard is a pretty average size. That’s what I tell myself at least; it helps me sleep at night.
Ultimately, I had to let OctoDive and my Rust gameboy emulator die. I made two critical mistakes with both of the projects in my opinion, but there was a lot to be learned from both of them.
Critical Mistake #1: Shut yer trap in the early phases!
You see, in the case of both projects, I talked about them a lot when I first started them. Everyone I talked to would hear about them… and I think that’s a really rotten idea, at least for me.
You see, when I know that people know I’m working on a project, it makes it higher pressure, especially once they know about it. I don’t want feedback too early either, because I want my vision to be my own as well.
When I recently started a new video game, I made sure to tell no one aside from my partner. I’ve only recently started opening up about it to close friends on Discord. It’s really only for people I genuinely trust at this point.
Comparison is the thief of joy
This idiom is painfully true; I wish it weren’t but here we are. You look at others and their progress and you compare their work and results to yours. Why do I bring this up? Because of how I felt whenever someone asked about my projects and I didn’t have a really good update. I’d start thinking, “Well, if I were ConcernedApe…” or something like that.
That’s a pointless line of thinking, but it’s harder to shake than I care to admit. Here’s the rub too: you objectively know that you are not the same person as the people you compare yourself to all the time. My life is not John Carmack’s. Hell, it’s not even some random stranger on GitHub’s by any margin. So what are you doing comparing yourself to them?
Critical Mistake #2: Setting the wrong goals
This one is subtle, but I believe it to be crucial now. When I set out to make a Gameboy emulator in Rust, the goal was to make a Gameboy emulator in Rust. Mind-blowing, I know. I’m accepting nominations for the Nobel Peace Prize, by the way. Here’s the problem though… that’s an atrocious goal by any and or all measures.
You see, there’s nothing wrong with reinventing the wheel. It’s rather crucial in my opinion; after all, if you can’t make a wheel on your own, how would you ever improve it or perhaps better integrate it into your other designs. But it’s not a super motivating goal without an addendum:
“I want to make a Gameboy emulator in Rust that allows for save state manipulation.”
“I want to make a Gameboy emulator in Rust in order to learn more about macros and lifetimes and in Rust.”
“I want to make video game that will allow me to learn about making a robust save system.”
Those are better goals. I’m not even sure they’re perfect, but they’re more focused and by that virtue alone they’re better. Because what happens when, forty hours deep, you think, “Why am I doing this? There are already tons of Gameboy emulators out there…” And self doubt creeps in and suddenly you’re thinking, “Yeah, why the heck am I doing this anyway?”
And like a virus, it begins to spread; then before you know it, the project is in your graveyard whether you put it there intentionally or not.
And I repeat… your time is limited
It’s trite, but we only have so many hours on this earth. With so many days, numbered with twenty-four hours, why burn those hours on something that has already run its course for you? I quickly realized that on each of these projects I had won a hard learned lesson or skill.
If a project isn’t serving you, let it go. There’s no shame in sending it to the project graveyard. You can also always resurrect the bodies in the aforementioned graveyard… as unlikely as that is. Typically, dead means dead, even for projects.
That’s all for now, folks…
That’s all the rumination I’ve got. This was a slightly meandering and maybe ineffectual blog post, but I needed it for myself. If you’ve made it this far, enjoy a sneak peak at my upcoming video game. I will not explain what is going on…
