Side projects may be daunting to plan, but fun to code. With a proper planning system, you too, can get rid of the time wasted on confusing the features you need for a side project.
1. Find an idea
This may be the easiest or the hardest step overall, but it is pretty crucial. Don't be so hard on yourself, ESPECIALLY, if you are a beginner in doing side projects. There are thousands of stuff you can find online, you can tweak them up a little bit or not. Side projects come with a creative freedom, use it. But make sure that if you are doing a project that has a tutorial or code already written for, do the project yourself first and add features that are different later on. Once you find your idea, write a short description of what it is and move on to number 2.
2. Know which technology you will use
This is pretty straightforward, and hopefully, you do not need to spend too much time on this. A quick google search and a little bit of research will tell you what technology, programming language or/and frameworks you should use for your project. Define these and don't worry about having to learn all of this for now. Once you found which technology you will use, don't touch that and move to point 3.
3. Write down the features your program needs
I will introduce you to a pretty important concept in product making and business - Minimum Viable Product. This is the minimum features that your app/product needs to do its main job. If it is let's say, Food Recipe app, you need the feature of adding foods to your list. Based on this, make a list of all the features that your app absolutely needs. Do not add fancy stuff now.
4. Research how you will implement those features
Pretty self explanatory, but based on your level of coding experience, can vary in difficulty. This is you, going to google and searching up how you can make the features that you listed before come to life. Following the example above, you would research how you would implement the feature of adding foods to a list based on the technology of your project. You do this for every feature and make notes of it. This doesn't need to be detailed, and you should not write the code for it now.
5. Make a timeline of everything you have to do
Now that you have everything planned out and know how and what you will make, you have to plan the timing of it. This is just you dividing up the tasks to weeks. Ex, week 1 and 2 implement the features and week 3 work on deploying it.
Once the first draft of your side project is ready, continue to add more features. Remember that you only implemented features for MVP. Great products do not stop there. Add bonus features, share your side project, get feedback and improve it more.
Good luck y'all!
Top comments (5)
Hey, thanks for these awesome list!
I find myself overthinking Step 2 way to often π
I just started a side-project some weeks ago. And it's going to be more complex than what I did before. Frontend + Backend, and I don't have much experience with Node.
So I started with Express, Prisma and Postgres.. I found Prisma and Postgres suitable, but wasn't happy about Express. Then I switched to Hapi and that works great.. So I implemented some routes with Hapi. Now, I've checked out NestJS, which seems to be also interesting, but now that I'm kinda locked in with Hapi, I don't want to switch anymore..
Hapi with Hapi π
Hey,
I think it would really help if step 2 and step 3 swap places. That way it is much easier to determine what technology to use, since with features already known a more suitable technology for a job can be found.
Cheers π€
Hi! For more advanced projects, I guess it is better if their places are swapped. This way works for my side projects, but I guess for more advanced side projects where there are many ways features could be implemented, your way works better. Thanks so much for your insight! βΊοΈ
Hey Christian! Thanks for your comment. Weirdly enough, step 2 usually takes very little time for me to do, but maybe that is because I do not try out different side projects often enough to switch up the technology. Totally understand your viewpoint though. My advice would be to just write a pros and cons list and stick to the result throughout the entire thing. That has worked for me before :)
Thanks for the tips! I'll try my best to do more planning and considerations before coding. Because I know, it'll save me time and struggle down the road π