Why side projects fail

So, my side projects fail! Let me first describe what I would consider a successful side project.

A side project is something:
That is fun to do
To learn from
That reaches an audience beyond its creator and its friends and family

Reaching an audience beyond friends and family make side projects something more than a hobby. Take for instance the photo calendars I make for my relatives every year. I would not consider those side projects, even if it’s fun making them and I learn from it.

Added to that, if a side project earns you decent money, to me that is just work. An early stage startup can be a side project, but as soon as it takes most of your working week, I’d say it’s more than that.

My side projects have always been fun and good learning experiences. At least when I started them. This made me hesitant to call them failures; I don’t regret having spent time on them. But to call them successful, they should have reached a big significant audience. They never did. I used to think that it was just me being lazy and bad at marketing, but I realized that there is more to it.

Failure 0 - Not promoting the project

Let’s not ignore that despite all my other mistakes, I still sucked at promoting my projects. My prioritization application that never got more than 2000 users probably just was lacking that. According to users, I designed and built Prioritizer well enough to be useful. I created a website for it with a blog for SEO. I also put the application on download.com. When I found that only few people were downloading it, I gave up on improving it. A good product sells itself, I told myself. That may be true when Amazon or Google launch something without telling anyone. Except, you know, they have whole departments that make sure that the right people will notice and that it ‘organically’ goes ‘viral’. Private side projects compete for the same kind attention as the new products of multinationals. So yes, promotion is essential for a side project.

Failure 1 - Not publishing intermediate results

Me and a good friend spent many nights for many months, years perhaps, making a comic. A lot of brainstorming, storyboarding, defining our style, sketching, inking. And procrastinating, talking about what Web 2.0 would bring—it was that long ago. One of my favorite side projects! We never finished coloring before we ran out of time and motivation though.

We could have showed the sketches to our friends. We could have published the inked version. But no: we wanted it to be full color, printed. If only I had known the concept of Minimum Viable Product back then!

Failure 2 - Being perfectionist

One evening me and a couple of design friends were discussing how bad some websites were and how little visitors can do about it. We invented the Website Police: a website where people could report bad sites using a quasi serious form. It would have options like “it’s too damn ugly” and “I can’t find the info I need” and a text field for other issues. Upon submission, we’d send copies of the report to the info@ mail address for the website’s domain. We‘d also spam a whole bunch of other predictable email addresses. Our website would show an archive of all the reports.

Building the website with turned out to be quite straightforward, albeit a bit time consuming. Nonetheless it felt like something useful to do in my downtime as a freelancer.

Design-wise it was harder. I believed only a perfect website could do the job of shaming bad websites. Of course it never looked good enough for me to confidently promote it. Looking back, an ironically bad looking, brutalist visual design with simple interactions would have been a enough.

Feel free to steal the Website Police idea by the way. I still think it would be a great way to get attention for good design. As well as a lot of bad leads for your freelance business.

Failure 3 - Partnering with people like yourself

Because my life doesn’t completely follow a listicle outline, this fail is about the same project as the previous project. From the start, I partnered up with another freelance designer. It turned out that our strengths and skills had a lot in common, which felt good and made communication easy. It also made that we ignored and got stuck on the same issues. I’m not saying that it wasn’t useful to be two of us. It would have been better though, if we had had someone else with a different mindset to collaborate with.

Failure 4 - Not writing about it

I connected a CO₂ sensor with an Arduino and an SD card slot. I also wrote a program so I could visualize and track CO₂ levels in my home. Why? CO₂ is not noticeable, but does affect your mood. It makes you feel tired and think less well. Also, I wanted to play around and build electronic circuits.

I managed to get this to work, but never got to sharing my experiences. The code is out there on Github, but I don’t think anyone ever looks at it. This could have been a helpful example for others but never was.

Failure 5 - Not having a plan

This is about a special project: find out what factors in my life cause me to feel good or bad. A sort of quantified self study on qualitative factors. I read some social psychology papers about measuring happiness. Based on real studies, I created a personal questionnaire with about 25 questions. It included stuff like “How well-rested do you feel?” and “How stressed are you?” I answered the questions several times a day at random times using the Reporter app. Yes, it was weird addressing myself like that.

This turned out to be too ambitious as the dataset got so big that I still haven’t analyzed everything. In fact, I didn’t have a plan for the whole thing at all. I wanted to write about it, but as the data are so personal and I never got to interesting conclusions, I didn’t. Statistical analysis is not something I’ve done ever since graduating, so I could have seen coming that it wouldn’t be a easy. Not all was lost though. You’d expect that the reminders for the questions five times a day would be a major distraction, but I enjoyed doing it. It made me more mindful. I also think it made me more aware of stress factors that I could deal with before they got big.

Failure 5 - No time constraints

While living abroad, I used to have a lot of fun blogging for friends and family. Now I write about work stuff I have much higher standards. That causes me to postpone finishing posts, not starting new ones and writing less altogether. This of course leads to less practice and boring texts if ever I post anything at all.

I believe I did my best writing on a guesthouse computer in India with a couple of people behind me waiting for that computer to become available. Done is better than perfect. I should force myself to just finish something within 30 minutes.

Failure 6: Giving up on a tool/programming language/framework

Twice I gave up on a project because by the time I (nearly) had an MVP, the technology I was using was getting outdated. I’m not an engineer and I don’t need to know all the latest JavaScript frameworks and whatnot, But when I spend time learning, I want to be sure I’m not learning things that are irrelevant in a year or two.

That used to be my attitude at least. I now think that these technologies are tools that all have a lot in common. Continuing to build something using a framework that is being abandoned is not a bad thing in itself. If you’d pick any successful product that was started three years ago and had to build it from scratch, you’d probably choose a different tech stack today. Also, many technical challenges are independent from the programming language. So continuing to use a tool that I know would actually let me learn more generalizable things than when having to learn all the concepts of some new tool.

Failure 7 - Ignoring professional experience altogether

A side project is not supposed to be normal work. Still, it is a bit like work: it involves similar activities. So how can a side project still be so much fun that I want to spend my free time on it? I used to think about this all wrong.

Two years ago I came up with the idea of making a big online countdown timer clock for workshops and presentations. I made a JavaScript application that kind of worked. But after the first round of testing, the design turned out to be all wrong. By that time I had invested so much time, that I didn’t feel like pulling apart my messy code and make a new version. It seemed like such a lot of work.

The root cause of this is that to make it not feel like like real work, I threw all my professional experience out of the window. Some basic mistakes I made were:

  • Testing too late: I did show other designers my sketches, but failed to properly test the design before starting development.
  • I didn’t do any project management; didn’t even have a backlog! As a result I only worked on what I thought was most urgent, like nice transitions between portrait and landscape orientation.
  • I was sloppy with version control
  • I had no continuous deployment or even any deployment setup.

That sounds pretty much like working for the worst boss I’ve ever had. It had to be fun, right?

In the end it was tedious work to fix my own mess, not having fun and not learning anything anymore. I never shipped it. A complete failure!

Back to the question: how can a side project be fun? Instead of treating it like not work, I now see it like work under ideal circumstances. Where I can pick the tools, tasks and people however I like, following my own preferred processes. Meticulously. This way I can spend the occasional half hour that I have productively, because my files are nearly organized and repetitive tasks are auto mixed in scripts.

The happy end

A few months ago I picked up the countdown timer project again. This time I’m not just hacking it together. I’m following a proper design and development process: I test it with the target group and deploy my in between results regularly. I will write about how it’s progressing in a few months again. In the meanwhile, you can have a look at the big timer and let me know how you would use it.