This past year I worked on a side project, and for once I saw it through to completion and profit.
While working on this project, I made some good decisions as well as a lot of mistakes! In this post, I'll share with you 5 points that worked for me. Hopefully, they will work for you.
But before we start, let me establish some context:
I began developing a tool to help me memorize the fretboard layout of my guitar (the notes on the fretboard). The project received some attention after I shared it on Reddit. Other guitar players (including bass and ukulele) were interested in such an app. So I quickly made an MVP and shared it with them.
Their feedback was so encouraging that I decided to start working (more seriously) on this project.
I soft-launched the product pretty much a year ago and it generated $1k without any marketing at all, only organic traffic on the App store. Sometimes you just have to publish your work.
Of course, that's not a lot compared to other projects and I need to do some marketing if I want to increase the revenue from the app, but that's another story.
|The tips I will provide below are useful for relatively small projects involving a small team (you). Moreover, nothing beats hard work; if you do not put in the necessary effort, your project will not move forward on its own. However, if you do put the necessary effort, you can use these suggestions as a guide.|
One thing I learned is that there are two things you should do at the very beginning of your project: Write the code and talk to users.
Talking to users early on allows you to get the necessary feedback to test your ideas. Reddit, Pinterest, … are great for that.
Then, once this first step is done, it's critical to keep them engaged because you'll need their continuous input as your side project shifts and ideas evolve into a complete and marketable product. Those early testers can then become beta testers and, eventually, customers/users. So connect with them, ask for their emails, or use any other method to stay in touch.
Also, Another benefit is that seeing that your product is being used might provide you with the additional motivation you need to keep going.
The Definition of Done is an agreed-upon set of items that must be completed before a project or a feature can be considered complete.
It's important to have that so you don't fall victim to perfectionism, which can lead to a loss of motivation and a lot of time wasted on features that may or may not be discarded later. Always try to make it work and give it to users before trying to make it "right and fast".
This goes hand in hand with the first point, so don't be afraid to ship your project early; you can always make adjustments afterward.
This one is straightforward. Having a backlog can help you track your progression and keep track of what needs to be done. This backlog will evolve over time as your project progresses and will help you stay on track with your objectives.
Break every idea into small steps and prioritize them. Then set some comfortable weekly or monthly goals.
Self-discipline and the ability to stay committed are required for a job in software engineering. The same is true for side projects; you cannot rely solely on motivation, because motivation can fluctuate and decrease from time to time. So you must continue working on your project even if you lack the motivation.
Set a time during the day to work on your project and stick to it.
If you feel like you're about to abandon the project, take a short break now and then (maybe a week or so), but don't take a long break because it can kill your project (How many times have you put a project on hold and never touched it again?).
Keep a detailed technical journal for your project. Write problems down and document all the dead-ends that you encounter. This will make context switching a lot less painful and it will give you a better notion of how much work was done compared to lines of code or commit count.
In addition, if you drop the project at some point, it will be easier to pick it up again.
That's it for this post. I hope some of these points will help you in your journey!
If you liked this post, please share it with your friends or colleagues and follow me on twitter at @theAngularGuy.
Have a nice day!