Why you need a side project and how to start it
If you're a developer you MUST have a side project. A side project gives you the chance to build something you're interested in and grow as a developer. It also prepares you for thinking like an entrepreneur since your project will probably need you to find users. Beyond that it has the potential to provide you a new income stream giving you more flexibility in your overall life.
So how do you get started with building a side project if you've never done it before?
I'll go over a few common obstacles developers usually face and how to overcome them:
1. Finding time and energy after working a full-time job
This is an issue we all face. There's only so much time in a day and a limited amount of energy that can be utilized.
Your energy levels generally aren't high enough to write more code after 8 hours of writing code or what ever your full-time job involves.
I faced this problem and here's how I solved it for myself:
I first tracked what times I had the most creative energy through out the day. I found that the first 3–4 hours of my work day were most productive and energetic. After lunch time I was useless unless I had a cup of coffee (or 2). By the time I finished work, I only had the energy to watch Netflix or Youtube like a drone. Something that didn't require interaction from me was all I was capable of doing.
I started experimenting with taking a quick nap right after work instead of droning out. I kept it between 45–60 minutes and noticed I could regain about an hour or two of energy to put towards a task or two.
Hitting the gym or some type of physical activity on a regular basis is also known to increase energy levels. Squeezing in a work out after work might help in recouping some of that mental energy to put towards your project.
Naps worked for me but we're all different so experiment with a variety of things to see what works for you.
If it's a lack of time that's a barrier to building a side project then you may need to find a better way to manage your schedule.
If you can find a gap of 45 minutes a day to start building something, you'll be amazed at how much you can do in a very short period of time. Try scheduling it into your day and make it a daily goal to use that time.
Setting small goals is what worked for me and prevents me from passing off tasks to the next day.
2. Coming up with good ideas:
When it comes to ideas, the key to finding good ones for side projects is to first figure out what matters to you.
Once you have that, find out some pain points you can solve for yourself related to this interest. When you're building something on your own, the most important thing to remember is to scratch your own itch. Build things that you would use yourself. If you think like that, I'm sure you can come up with ideas.
For example: About 7 months ago, I didn't want to spend hours looking for remote developer jobs I qualified for. That led to Remote Hacker which is a tool I built so developers can receive an email with all the remote work that matters to them aggregated from across the web. Not only did this help me, but hundreds of other developers are getting use out of the free service. It also wasn't a massive undertaking as I built an MVP within a couple of weeks and I continue to improve on it when I get time.
I would recommend to start with a small project at first. A small project will be quicker to finish and you'll feel a sense of accomplishment sooner by completing it.
If you're trying to develop something large and elaborate then the immense amount of to-dos may demotivate you. I would aim to build something that you can launch within a month.
3. Planning it out
Once you have an idea, resist the urge to start cowboy coding it without planning. Take some time to plan out exactly what your project will do and who it will do it for.
It helps to first do some research on your audience (the who) and then develop your project features based on those needs.
Make sure to thoroughly research and understand your potential users. If in the end no one is using it, what's the point of making it right? The better you understand them, the higher the likelihood they will use and appreciate it.
Below is a high-level road map I've put together to help provide a sample plan to build your 1-month side project.
A Sample Project Road Map
1 Week for Idea Generation & Planning
Idea Generation~Day 1 - Day 4
- Find an audience, preferably a group you would also consider yourself to be a part of.
- Research the audience and find pain points that exist in their lives.
- Think of simple ideas that can solve a single pain point that this group of people face.
Planning ~Day 4- Day 7
- Once you have your idea, figure out how long you will need to build the project and how you will reach your audience to gain users.
- For the first project, try to aim for 2 weeks of development time and 2 weeks for launching/marketing your project to your users.
- In the next section are some tips for the building and marketing phase of the project.
1-Month for Building & Marketing
Building ~Day 1 - Day 14
- Your goal here is to build an MVP (minimum viable product) which you can provide to users and get feedback. For that reason, don't think too much about following every best development practice in the world. Instead focus on building the project.
- Focus on your killer feature. This is the feature of your project which is solving the pain point for your users. Developing this part will be your main goal during the building phase. This is the entire purpose of your application.
- Next in line is user experience. Keep your audience in mind when developing the user experience. This will vary depending on the project but as a rule of thumb, make everything as simple as possible and use language which is easily readable. A great tool for checking the readability of your copy is <a href=" http://www.hemingwayapp.com ">http://www.hemingwayapp.com/</a>. Aim for a readability score of Grade 6–8.
Marketing ~Day 14 - Day 30
- Your application/project is done, great! Now it's time to get your audience to become users and collect their valuable feedback.
- Write about it. Get on Medium, your own blog or any other channel you've been using to share an article about what you've built and why you built it. Reach out to publications that already have a similar audience and see if they would be willing to share your content on their publication.
- Post your project on places like Product Hunt, Beta List, and Beta Page among others. For a larger list of places to post your new creation, check out this <a href="https://github.com/mmccaff/PlacesToPostYourStartup">Git Repo</a>. When it comes to posting in these places, remember to be strategic about it and come up with a plan of launch. Resist the temptation to just spam all these sites. Be thoughtful about how you post in these places by explaining to that audience why you built what you're posting.
This was just a high level overview of getting something going. Stay tuned for more in-depth stories about executing all facets of building and launching successful side projects!