About those unfinished side projects
If you are anything like me, you love to start a lot of side projects. As a software developer, it is easy to start with a lot of different projects. If you know how to program, your options for side projects are infinite. However, if you are even more like me, you left most of those projects on a graveyard. With COVID-19 around, the chance is that you have more time due to less travelling, no social meetings, no sports. More time to finally finish those side projects. Or probably start even more projects. I will discuss some tips that helped me finish some of my side projects.
Defining your goals is an important step. There are many great articles about setting your goals. However, if you are reading this, you probably have no trouble deciding the goals you want to reach. But, this is still an essential step in finishing your side projects. We discuss two pitfalls that can be prevented by setting your goals.
Having a goal for my side project helps me keep on track. Usually, when working on a side project, a lot of ideas or improvements kick in. For example, once, I was working on a simple game. During the work on it, the following thoughts popped up:
- Matchmaking system
- Ranking system
Sometimes it is even worse. All these ideas come up before I have even started. What started as a simple idea grew more complicated each time thinking about it. Suddenly before I even started the project, I was wholly overwhelmed. This swayed me from being super enthusiastic about a new project being so overwhelmed that I never began the project. Having a clear goal can help you stay on track and prevent you from feeling overwhelmed by all ideas for improvement.
One of my early side projects was to learn more about machine learning. The idea was to create a website where users could upload images of their beverage, and the algorithm would detect whether it was beer or wine. The project was fun, and I learned a lot about machine learning trying to make it work. But, unfortunately, the backend with the algorithm was not hosted anywhere and only running on my laptop. The project kept spooking through my mind because the project was not finished. But I already accomplished my goal; learning more about machine learning. I never explicitly stated a purpose for this project, so I did not know. Forthwith, it took me months to get it off my mind and many negative thoughts saying you should finish the project first.
After having defined your goals, it is time to downsize your goals! The author from the book, Finish: Give Yourself the Gift of Done advises cutting your goals in half. I think you might be wondering, is this cheating? This is also what I first thought when I read this advice. But looking at how we suck at estimating how much work something is, this is pretty logical.
_It always takes longer than you expect, even when you take into account Hofstadter’s Law. _
I think every developer underestimates how much work how much a project is multiple times each month. So let’s cut our goal in half before we start. What if you really want to reach the original goal? This was also my first thought. But what is the worst that might happen? You do not have to stop working on your side project after reaching your first goal. And what if you really cannot cut your goal in two? Double the time frame you had initially set for yourself.
Have you ever almost finished a project but never managed to take the last step? For example, I once created a simple web game. However, after finishing the game, I never hosted the game. I was afraid people would not like it. Fearful that there were still bugs. I even thought, what if thousands of people come to play the game? The site would crash. (seriously, if that would happen, I would consider the game a huge success).
This is a strange phenomenon that occurs mainly in creative processes. For example, I have never run 9.99 kilometers just to stop before reaching the 10 kilometers because others were faster. Likewise, I have never quit a workout when there is only one repetition left. But how can we deal with this? A few tips to overcome this:
- Halfway through the project, when your motivation is still high and doubts have not kicked in yet, share your deadline with someone. You can post it online, share it with a friend; you can even leave a comment beneath this post.
- Do not be scared to share your ‘unfinished’ project. You can already share it with family, friends, or colleagues. If you like to share it with strangers, consider a beta release. Having already published a finished version makes it easier to update it with the next version. Furthermore, you are already getting feedback and ideas for improvement.
- Remember that your project does not have to be perfect. This does not mean you should publish an insecure bank application. However, in this case, your UI does not have to be perfect, and it does not matter if you cannot handle millions of transactions simultaneously.
Probably the most important advice I can give you is to make it fun and keep it fun. When things are fun, you will likely have more motivation to keep going and actually finish your work. Subsequently, don’t be afraid to stop a side project when it is no longer fun. It is okay to stop, and there is no need to feel guilty about it in the next three months.
Good luck with your side projects. Set your goal and get going! If you need someone to share your deadline, (un)finished side projects with, feedback. Feel free to leave a comment!