Is it worth having an open source side project?

Michał Męciński
codeburst
Published in
7 min readApr 5, 2018

--

Most good developers that I know either are working or have been recently working on some kind of a side project. According to last year’s Stack Overflow survey, about 80% of developers treat coding as a hobby.

It’s no surprise. I started programming about 20 years ago and only for the last 13 years I’ve been doing it professionally. So it was my hobby a long time before it became my job.

The beginnings

When I started programming, I didn’t have access to the Internet, so I could only rely on a few available printed materials and mostly experimentation. I wrote dozens of little programs which were just sandboxes for learning and experimenting with new ideas. These programs were never finished or published, and they are long gone with old floppy disks. But sometimes I think that during that time I learned more than later at the university.

When I finally had an Internet connection, I could learn much faster, and I discovered the world of open source software. I started by publishing some reusable components for the MFC framework. Then around 2005 I published my first open source project. There were no social media, I didn’t participate in any mailing groups or forums, so I just submitted the project to SourceForge and continued working on the next versions.

If I did this today, it would be a complete failure. Thousands of projects are published every day in various places and only a tiny fraction of them become noticed. But 13 years ago the flood of information was much smaller than today. As I improved my projects and worked on them month after month, they slowly got some traction, I started receiving positive feedback from users and even some contributions.

Today’s open source world is dominated by projects backed by sponsors, patrons, and sometimes even large corporations. My projects were never popular enough to turn them into a source of profit. So around 2013 I started questioning the very idea of working on open source projects.

Like most developers at some point in time, I asked myself: why should I work for free? My side projects cost me a lot of effort and often have comparable quality to the projects I do at my job, so why shouldn’t I make any money doing them?

The startup myth

According to the Stack Overflow survey, 25% of developers want to start their own business in the next five years. So the Silicon Valley dream of founding a startup and becoming a millionaire is very tempting. A few years ago I let myself become deluded by that vision too.

The problem is that no amount of technical skills guarantees success in business. It has nothing to do with open source versus commercial projects. If you have great business and marketing skills, you can build a community, attract sponsors and make as much money on an open source project as on anything else; it’s nothing more than just one of the available business models.

I bet that the majority of these 25% would hate doing the everyday marketing work, writing offers, looking for customers. Of course, like everything else, it’s a skill than anyone can learn, but if programming is your hobby and something that gives you a lot of satisfaction, do you really want to trade it for doing all the things necessary to run a business?

Obviously, sooner or later someone will come to you with a great business proposal. They will promise to take care of all the sales and marketing, letting you focus on the latest technology stack. This sounds very tempting, but in most cases it’s just total bullshit. If their idea is really so great and they can take care of all the business side of such project, they can also easily find some freelancers that will implement the MVP for a reasonable price. They don’t have to give you 50% of future profits just because you know React or some other cool technology. If they offer you that, they have absolutely no idea how the IT industry works, so wish them good luck and stay the hell away from them.

I don’t want to discourage anyone by any means. If you want to try your luck as a freelancer, go ahead. If you feel that running a business would be more satisfying than writing code, just do it. But if you think that you will start a business and after a few months of hard work you will have more money than you can spend and enough time to drink martinis on a beach, I have to disappoint you, it doesn’t work like that. You don’t have to believe me, just read the excellent guide to bootstrapping a startup by Clifford Oravec.

A playground for learning

I finally came to the conclusion that working on side projects is a great thing, but doing it for financial reasons is just wrong. The primary motivation should be the desire to improve your technical skills. For example, I work as a senior .NET developer but I use completely unrelated technologies for most of my side projects. At the moment I’m learning Vue.js and I’m working on a new version of my open source project, WebIssues, because it’s an excellent playground to learn writing real world application using this technology. I wrote more about it in my previous article.

Obviously I could just change my job and start working on a commercial Vue.js project instead. However, without prior experience, I would practically become a junior developer again, which I can’t afford. Besides, I think it’s much better to learn something by experimenting, building and tearing down things, without any constraints, expectations and pressure from the team or the client. Being able to have an impact on every little detail also helps me become more creative and expand my design skills in addition to coding skills.

I don’t even know if I will use Vue.js professionally in the nearest future, as I’m quite satisfied with my current job. However, as developers, we always have to improve our skills and learn new things. Technologies eventually become obsolete and we have to be aware of new trends. Of course it doesn’t mean that you must chase the next shiniest thing every month. It’s better to know a few technologies very well than to try to follow the newest trends all the time.

I have no idea if anyone will use the new version of WebIssues, not to mention any commercial potential. At best, it may serve as my portfolio if I ever decide to look for a new job. I simply try not to think about it in terms of profit or popularity. We’re all a bit vain and seeing an upward trend in download statistics is a very nice feeling. But the truth is that the projects from which we learn the most are often the ones that go unnoticed.

The team aspect

Working alone on a side project is great, because it gives you complete freedom. On the other hand, sometimes it may be hard to find motivation. Working on your own on a project that no one but you sees and understands can be very a draining experience. Sometimes it feels almost like you live on another planet. On the other hand, finding teammates who are willing to work for free and who share your vision and goals is very hard.

Even if you’re working on a project on your own, find at least one person that you can talk to about it, show your progress, explain the problems that you faced and the things that you learned. Of course that person should also share your interests. It’s probably not the best idea to pour everything out on your life partner, unless she’s a programmer too 🙂.

The best place to look for such person is most likely your work. I noticed that there is often some sort of taboo at work regarding personal projects. Perhaps people are afraid that if they admit that they work on other things than their job, they would be accused that they are not dedicated enough to their company. But from my experience that’s just hypocrisy, because almost everyone does it. So be the first one to break silence and start talking about it during a lunch break.

If you’re lucky, you can find a whole group of people working on various side projects. Even if these are just one person hobby projects, you can all benefit from meeting from time to time, to talk about what you did and to share your experiences.

Another good idea is to write about everything you do and learn. Whether it’s a personal diary or a blog on Medium, writing down your knowledge will help you organize and consolidate it. It can also help other people who are learning the same thing. The Internet has changed and it’s harder to create something that becomes noticed on a large scale. On the other hand, it’s also much easier to make connections and build a small network around your interests. You never know what impact the things that you do might have, so it’s always worth sharing.

✉️ Subscribe to CodeBurst’s once-weekly Email Blast, 🐦 Follow CodeBurst on Twitter, view 🗺️ The 2018 Web Developer Roadmap, and 🕸️ Learn Full Stack Web Development.

--

--