How I start my side project
Having the idea is the first step of building a software product, but too many ideas will make me stuck between them, choosing which one is better or consider to giving up on something not so “cool”. Actually, after a few days considering, the idea soon become terrible, mediocre, too many challenges or I’m just getting lazy and the idea is forgotten.
I decided to overcome this situation, by grabbing the smallest and most possibility idea, I will talk about the idea itself later, now how can I start this project and avoiding the giving up.
I feel comfortable with the Kanban board like Github issue, it can link to the issues, pull requests and drag-and-drop cards feature but it not free for the private project then I found an alternative solution: Gitlab. Beside of that, I can use other features in Gitlab ecosystem e.g., CI/CD, code review, code repository management…
The hardest part is starting and the evil is in the detail. Luckily the issues management helping the easier to structure the tasks, I realize I can’t do all of them at the same time, I have to prioritize the task. The most important thing is defining how the product work, I put the first task is wireframing the UI with some basic features, explain how it works, even when just me in the project. Other feature will define in Backlog which I can take it to implement later when all the basic features are done.
But it not just defines the requirement and starts coding, I also need the proof of concept, researching clearly solution for the whole product. I need the server to deploy the product, both Google and Amazon have the free tier for 12 months. If my product going to fail, I not losing too much money, but if it going to grow I can easily upgrade my plan.
Focus to the core feature
Ok, it seems that the product will work according to the proof of concept. I start with the core feature first, usually on the backend. I write a small API within a small function that implements one happy case of my business flow, it’s not the time to catch the exception here.
Let apply the LEAN mindset even for the small project. Have the Minimum viable product as soon as possible, take note the TODO and put it to the backlog, in the next iteration I will pick it to implement depend on the priority.
Day after day, my product is gradually taking shape.
I need some help
I see the product is bigger than I imagine, I need someone to join then I look around my connection, choose someone interesting with the product. That important. Otherwise, they won’t go further.
They also have the ability to research, suggest the improvement and implementation, I don’t have much time to training. My project is profitable so that I write down clearly the terms and conditions and simply send an email. This document includes
* My rights and responsibilities
* Him/her rights and responsibilities
* The shares
They just need to reply I agreed to the terms and conditions or discuss until we finalize the document.
Who knows my product will grow and earn the significant income. Even when the project is open source, nonprofitable, just for fun or your showcase the rights and responsibilities still need to be clear at first.
It’s time to launch
The project is basically done, I send it to my friend to test and receive the feedbacks, I want to have a place for anyone can report the bug and turn that to the issue in Gitlab, this also a fun stuff to do.
When I’m ready, I will do marketing for the product, it could write the blog and share to social networks, run the advertisement, or appearing in the media. Whatever I do, that is another part of the project and shouldn’t cover in this post.
If you have many ideas, pick one and implement that until it finishes, small achievement will bring the motivation to do the next thing, don’t give up in the middle of something, it will create the procrastinate and you soon become the loser after each failed project.
Let’s have the habit of success!