It Doesn’t Matter If You Finish Your Side Project.
Tags: motivation, career, beginners, sideprojects
Published: 2019-10-04 13:23:11

Right now in tech there's this popular idea that you should ship early and ship often. They talk about a **M**inimum **V**iable **P**roduct (MVP), the absolute smallest thing you can finish to make that money. This makes a *ton* of sense if your goal is to make money. You're looking for market validation/traction and you can only get those things if you release something into the world. If you just work on your idea in isolation, you never get feedback. If you never get feedback, your chances of making something people care about becomes a crapshoot.

I see a lot of people trying to apply startup rules to their side projects. There are [so](https://www.learningsomethingnew.com/how-to-finish-your-side-project) [many](https://blog.hubspot.com/marketing/side-projects) [articles](https://blog.usejournal.com/3-simple-tricks-helped-me-to-finish-my-side-project-1d6ffc50430a) about [finishing](https://code.likeagirl.io/how-to-finish-your-side-project-81d7d93dacea) [side](https://medium.com/typeforms-engineering-blog/how-to-finish-a-side-project-without-it-taking-over-your-life-169a069412d7) [projects](https://doist.com/blog/how-to-keep-side-projects-moving-forward/). A lot of them focus on prioritizing, making sure you’re working on the **M**ost **V**aluable **P**arts (sound familiar?), and releasing it into the world ASAP.

But the MVP of a side project isn’t the same as the MVP for a startup. Cutting features is a useful tool to getting things done in general, but are the goals of a side project the same as a startup?

I've scoured the web, and these are the three biggest reasons people work on side projects:

## Learning

Picking up a specific skill you didn’t have before, like a new programming language or framework or methodology. A lot of times people don't get to grow in the exact manner they want to at their day job. Others are trying to get a job and want to learn with hands on projects.

## Experience

Doing more programming in total (making you more experienced). This rhymes with learning, but is less about specific skills and just exposing yourself to more problems. Every time you get exposed to a new problem, you learn how to solve it. When you have seen a **ton** of problems, you become that person who just *knows* how to solve stuff as they come up. There are [lots of qualities of an experienced dev](https://weeklyproject.club/articles/senior/), but having seen and solved a bunch of problems is a great starting point.

## Fun

Sometimes programming is a fun thing to do! Not for everyone and not all the time, but there are people who just LOVE programming and want to do a lot of it!

There are other reasons, people **do** make projects hoping to make money from it. And a million other reasons. What's important is that *you* know what *your* goals are

>Note: doing side projects are NOT mandatory for being a good developer. If you get home from work at the end of the day and you just want to be **done**, you are not a worse developer because of that.

Back to those three reasons: Learning, Experience, Fun.

## Where in there does 'releasing your project to the world' fit in?

It might go into 'Learning'. You might have a specific goal to learn how to publish stuff for people to use. That's an important part of developing.

It might go into 'Experience'. Just the act of trying to deploy is going to encounter problems, and you'll gain experience in doing that particular thing.

It might fit into 'Fun', if you get a kick out of people using or giving feedback to the thing you made. For me, this is it. I live for feedback and I lose motivation without it.

But what if releasing kills your motivation? Software that is refined and tested and tweaked enough that a regular person can use it take a *lot* of work and a *lot* of time. I've heard from a lot of people that get scared off by this idea. If the only way to have a successful side project is to build a polished product, and you don't know how to do that *or you just don't want to*, why bother? Why start something if you're not willing to finish it?

## You don't need to refine your project so that others can use it like a product.

Focus in on **your** goals. Construct a side project that makes you learn what you want to learn. Get that experience that you want. Have fun! If your goals **are** to build a nice polished product, **do that**. If your goal is to learn how to use a specific language/framework, build a strange useless thing that uses every feature in that framework so you understand it!

If you set those objectives and then hit them, that makes the project a **success**. So many devs talk about having a 'side project graveyard', because those projects never made it all the way to product. A lot of these feelings come from not having any closure to a project. At some point you just stop working on it.

If you want that feeling of closure, write a retrospective! Taking a little bit of time and writing down what you set out to do, how it evolved, and what you learned will tell your brain that the project is **done**. and you can focus on your next goal.

In conclusion, maybe the real side project is the friends we made along the way.

What are you working on right now? What goals have you set for your current project? Let me know!