
Ask HN: How do you stay motivated to work on side projects? - sciguy77
It seems like its really easy to lose steam. How do you keep yourself pushing code when life gets busy or you just get bored?
======
gavanwoolery
I turned my side project into a unicorn job. It only took about 10 years of
hard work...but I did it the hard way.

Find the easiest thing that you are legitimately passionate about. Do not work
on a project because it is in a popular space, because you are looking to make
a quick buck, or any other reason than you are undeniably interested in the
space.

If you are not interested in the project, it will become boring and you will
lose steam. Even if you are interested in it, there will be boring tasks to
tackle. It might be that the only project you are truly interested in tackling
is not an easy one (as is my case). I have a massive graveyard of failed ideas
that halted at some point because I lost interest and/or realized they were
dumb ideas. The only one that has lived is the one I keep coming back to (and
am now working on full time).

These are not factual statements, just a reflection of my experience. Yours
may differ.

~~~
plinkplonk
"I turned my side project into a unicorn job. It only took about 10 years of
hard work...but I did it the hard way."

Sounds fascinating. Could you give more details? What was your sideproject?
What did you do to turn it into a unicorn job? Thanks in advance.

~~~
gavanwoolery
Yes, as user "scroy" points out I am talking about Voxel Quest.

Bits and pieces of my story are scattered around, but here is the full thing
(grab a pillow):

In around 2000-2004, I was working several jobs while attending UCSB, as a
gardener, a lab monitor, and a freelance web designer. I got by working the
first couple years but the last year was hard and I was disqualified from
engineering. I wanted to quit school but my parents pushed me to transfer. In
2004-2006, I worked on my first big game engine while finishing my degree. I
lived the majority of my time in isolation (at a school that was built over a
"haunted" mental hospital of all places; I wish I was making this up:
[http://www.hauntedplaces.org/item/camarillo-state-mental-
hos...](http://www.hauntedplaces.org/item/camarillo-state-mental-hospital-csu-
channel-islands/)). The initial tech demo was well received, but no crowd-
funding or "early access" existed at that point, and I tried to keep the game
going via donations but only got about $200 outside of family (the original
people who donated were given really good rewards from my recent Kickstarter
campaign though).

My parents nudged me to get a paying job (I had been out of college for 6
months at that point), so I worked for a startup in SD called Goowy Media
(funded by Mark Cuban, led by Alex Bard, and acquired by AOL - I was just an
employee though). Startup hours killed any hope of finishing the project but I
kept working on small games and other projects in my spare time. In a way my
many failures turned out to be the perfect storm. For a lot of people, I think
success kills their ambitions - they tend to get into funding other peoples
projects rather than their own. My failures hardened my desire for success,
while helping me hone my skills.

Several years ago, I was working for my twin brother and his partner making
mobile applications (we have both since left the company although I think he
still might consult). The people were all nice but the job was time consuming
and not very interesting for me. In spite of working long hours, I still tried
to do what I could outside of work. My job was often hard, but occasionally
calm, so I had some windows to work on projects. After a few brutal months of
work, I got really desperate. My life was falling apart in almost every
respect - my health was suffering (there were some weeks I worked 100 hours),
my relationship with my girlfriend (now wife) was naturally suffering as well,
I was depressed, I had just finished paying off a large amount of debt so my
financial situation was only just recovering. I started testing the waters for
other jobs (could not find any good fits), and started cold-emailing investors
to pitch bad ideas (no responses of course).

I remember the exact moment I turned my life around. It is kind of
embarrassing to say, but I was looking at myself in the bathroom mirror, and I
looked like hell, and I broke down into tears (I don't often cry, or express
any emotion for that matter - it takes a lot to get anything out of me). I
wanted to blame my situation on anyone but myself, I wanted to feel sorry for
myself, and then I realized that was exactly what was wrong with my life. Who
was going to change my life if not me? F__k it, I thought, I'm reprogramming
my life _now_.

I put in my one month notice to quit, and threw a "Hail Mary" pass to Reddit,
asking for advice about what to do in my situation. To my surprise, a person
from Switzerland looked over my work and offered to invest some money (he was
not an investor, just had some money in savings that he was willing to loan
out). I was going to Germany to meet my (at the time) girlfriend's family, and
made a side trip to Switzerland to meet my investor in what felt like a
clandestine James Bond meeting. I also snuck in a proposal to my wife while in
Switzerland. :)

With my job severance and new investment, I began to bootstrap my game (Voxel
Quest). I worked over a year on it (doubletime), and posted here on HN a few
times. In fact, HN was almost solely responsible for my success up to this
point, as it was one of the few communities that seemed to get what I was
working on. Each time I posted to HN, I would hit the top of the front page,
and investors began to take interest. Right now I pay myself about $15/hour
and have a wife/kid/dogs/car/house to pay for, so choosing to stay private was
not easy. I invested my life in my work, and cashing out felt too much like
giving up on realizing its full potential (or I am just really bad at making
financial decisions, you choose). :) In spite of turning everyone down,
several have offered more than once, so there is comfort in knowing that
additional options exist if needed.

I launched my Kickstarter at perhaps the worst time possible, when projects
are failing left and right, press is refusing to cover many KS projects, and
backers are more skeptical than ever. I was lucky to reach and exceed my goal,
and I am extremely thankful to everyone here for making it happen (over 1/3 of
donations came from here on HN).

Right now I am just working hard, when not procrastinating as with writing
this. I try to update weekly, and each update seems to bring a bit of new
interest and preorders are picking up so I am still optimistic about the way
things are going, even though life is not easy at this point.

A few more tips: Never hide your work. Make everything you do public. I went 6
months between updates, which is an eternity in project time. Strive to update
weekly, no matter how small the amount of work done. It can seem time
consuming but you will get better at it the more you do it.

Publicity will make you accountable for your work (or lack thereof), it will
motivate you (via praise), and it will help you improve your results (via
criticism).

Share your successes, even if you are not comfortable tooting your own horn.
People like to hear about success, and it breeds interest in your work.

~~~
Htsthbjig
Backer here.

First, your project is F%CH#NG amazing!.

IMHO there are two reason you are not millionaire(yet):

-You need an application or game for your engine so people can play with it.

-You need to learn a little marketing. That is, you need to understand the needs of the people, so you can design around humans beings, not just around machines.

Keep the great work.

~~~
gavanwoolery
Thank you :) (recognize the username)

Both of these are things that I (massively) failed to address early on and am
actually now striving towards.

I'm actually pretty happy at this point. If my wage were raised just slightly,
and the threat of running out of (non-investor) money was not looming, I would
be 100 percent happy. Wouldn't take millions, but nonetheless its good to aim
high. :)

Currently working on putting out at least a minimally viable game to accompany
the engine, which will be released with source this coming March (fingers
crossed). I'm taking community input for the most part as to what they want to
see in the game, filtered by my judgment.

Minecraft has actually been a great case study for me in terms of marketing.
There are many Minecraftian games, but none have really reached the success of
Minecraft (even though many clones generated millions), and you have to ask
why that is. There are many theories, but mine is that:

A) Minecraft's success was a self-fulfilling prophecy (the more successful it
was, the more news it generated, and thus the more sales it drove). This is
not to say, at all, that any of its success was not well-deserved.

B) It appealed to the younger generation in a (say, ages 4 to 14) in a way
that many people are still failing to grasp. A huge amount of marketing
revolved around user-made Youtube videos. I don't think I can do this, but
still it is interesting to analyze. It was immediately accessible but showed
its potential for further development which is why it was so successful in
pioneering the early access model.

C) Markus Persson is a likeable guy, and an entertaining read on Twitter. He
created a culture around Minecraft. He is also genuine - he really takes part
in the indie community, cares about what people say, and actively develops
even though he no longer needs to. Another part of this is because he has
befriended and surrounded himself with other interesting people, and curates
interesting content. He has almost 2 million followers at this point,
including the vast majority of the gaming press, so single tweets can have
powerful effects.

~~~
scroy
The project is really impressive, you have some truly beautiful examples in
the gallery. I see what you mean that user content creation doesn't seem
easily accessible enough to hit Minecraft's level of self-marketing. But there
is tremendous potential I think once you reach a more fleshed-out demo. Hope
to see that soon.

~~~
gavanwoolery
Yes, I don't think I will ever achieve Minecraft's level of success, in part
due to the fact that I'm designing something relatively niche and for a less
broad age range. But still, I'm curious to see what the potential of it is.

------
rachelandrew
If you find that you lose motivation or get bored with a side project then I
think you really need to ask yourself why you are doing it.

We find the time and energy for those things that we place importance on. If
the project isn't important to you then maybe it is time to move on. If it is
important and this is just a temporary state - perhaps due to hitting a
difficult part or a bit you don't enjoy dealing with - you need a strategy.

Break it down into manageable chunks. Put a date on them. Make sure however
that the dates are achievable, there is no better way to become demotivated
than to constantly feel you are falling behind.

If your thing hasn't shipped yet, can you get it to a release version sooner?
Can you cut stuff out? Getting your project in front of other people can be a
real help.

Treat the project as a first class citizen alongside your other work. Meaning
that even if you can only devote 4 hours a week to it, those 4 hours are
scheduled and used. Don't push them out for other work. Plan what you will do
in that time, ahead of time, so you don't start to procrastinate when you sit
down.

We turned our side project into our main source of revenue, you can read some
of that in the first chapter of the book I wrote based on that story here
[http://rachelandrew.co.uk/archives/2014/03/21/chapter-1-the-...](http://rachelandrew.co.uk/archives/2014/03/21/chapter-1-the-
profitable-side-project-handbook/)

------
karlmdavis
For me, a combination of these three things has proved to be successful:

1) Every day. I've seen this with working out, side projects, or whatever... I
can't stick with commitments if I try for an "every other day" or "only
weekdays" strategy. Has to be every day. [1]

2) Track it in a visible fashion. GitHub's contribution calendar is fantastic
for this. I've got a text file named 'work-log.md' in my side project's
folder, and I update and commit that file whenever I spend time on my side
project-- even if all that I did that day was research, rather than coding. My
current high score/longest streak is 59 days in a row, and wanting to push
that higher is incredibly motivating. With workouts, some sort of fitness
tracker serves the same purpose.

3) I don't beat myself up too long or hard about screwing up. There are some
folks whose "longest streak" on GitHub is 365 days or more. Good for them! I'm
always sad when I realize I've missed a day, and I often take a break for a
week or two once that happens, but I've never even thought about just
quitting. Just motivates me to try and do better next time.

[1] One exception to this was biking to work: I never really biked on the
weekends, but it didn't prove to be a problem. Probably because commuting by
bike was so hard to forget about.

------
joshu
You will lose steam at some point. Go with the flow; take a break, try
something else, come back to what matters. I put del.icio.us down for 6 months
very early on.

~~~
julienchastang
Is that you Joshua Schachter? Del.icio.us was one of the greatest, and most
underrated ideas to come out of the early web. For a while I would use
del.icio.us as a search engine because it often gave better results than
Google. If you can beat Google in search even in a limited area you are onto
something big. (Am I remembering correctly that del.icio.us "static" pages
would actually show as top Google hits?) Sadly del.icio.us has languished over
the years under various owners. I still use it though and have a few thousand
links saved.

~~~
joshu
Indeed.

------
zxcdw
I think it might be interesting to note that different people have different
motivations for "side projects" (as well as different definitions for side
projects!).

For someone, a side project might be about solving arbitrary problems such as
trying to write a Tetris clone under, say 1024 bytes on x86-64 Linux machine
-- something which has absolutely no real world relevance whatsoever, while
for someone else that'd make no sense and be waste of time. Probably they'd
much rather build something much more concrete, say a real product (say a web
app) actual people can, and hopefully will use.

Perhaps it is a meaningless and arbitrary attempt at making distinctions, but
I find it relevant for myself as I certainly fall under the first example,
while many here in HN fall under the second. I feel this definitely plays a
role in what we consider "side projects" and how we deal with them.

~~~
otaviogood
Since you mentioned it, me and at least 2 other people have written Tetris in
256 bytes. I used 80286 assembly and you probably can't get away with that
these days - even when I did, it was already old. 64 bit code will probably be
much bigger. But the main trick besides the right instruction set is to use
XOR for drawing, erasing, and collision checks. Have fun!

------
motters
I view my side projects as the main work, and anything else as merely a way of
supporting them. Also, I have enough side projects that if I lose interest in
one I can switch to another.

~~~
Kiro
I do the same but I feel like a fraud for not putting my full loyalty, energy
and passion in the company I'm working at.

~~~
yareally
Why? The work you do in your spare time can directly (by reusing libraries you
build) or indirectly (learning a new language, framework, etc) improve your
performance at work.

Only reason you should ever feel guilty is if your side projects are meant to
directly compete with the work you do at work. In that case, I would say it's
a bit unethical.

~~~
rifung
I assume it's because he/she is spending time doing the side projects, time
which could instead be spent doing whatever he does for his job.

I feel like this is actually one of the things I really hate about being paid
salary. I either feel guilty for not working enough or just hate not being
able to spend time doing other things.

------
deet
Set small goals for yourself that have a visible or measurable impact. Each
time you complete one, you'll feel a sense of reward. The important thing is
to work with your psychology not fight it.

What I've found to be effective is to have a list of goals roughly by week,
for the next few months, and then each week to assign myself a small list of
tasks for each day. I also try to mix up the type of tasks over each day --
some are fun and I'm excited to do them, some are more tedious but have to be
done. So when I do some tedious work I reward myself with the fun tasks.

When I fail to meet my goals I allow myself to get angry with myself -- almost
a disappointed self-hatred. But only for a few minutes, and then I move on.
Perhaps some people will disagree with this technique, and might suggest only
positive self-reenforcement, but if you're not totally honest with yourself
it's going to be tough to keep yourself on track.

Whatever you do, you should definitely start by examining your goals and
motivations for working on your project, since everything entirely depends on
these.

------
otaviogood
Don't be afraid to drop a project. I tend to have a handful of projects going
at any one time. A good project will stand out and it will pull you through to
completion. Pretty much all of my significant jobs were spun out of my side
projects. My current job started as a side project that I prototyped in a few
weeks. A company was built around it and now our company is part of Google.
This.
[https://www.youtube.com/watch?v=h2OfQdYrHRs](https://www.youtube.com/watch?v=h2OfQdYrHRs)

Take note of things that inspire you. For me, books or other people's
projects. Show your work to your friends and try to convince your friends to
work on projects with you.

Find programming languages / environments that make it easy to spin up a
simple project without too much overhead. Start small. Last I counted, I have
about 140 folders in my dev directory. Each one has a small project I started
up. One turned into a successful company. Another won a DARPA challenge. A few
others were released in various forms. But most got dropped because they just
weren't as cool as something else. And I think dropping projects isn't just
ok, it's great fun and will help you find that project that's worth
completing.

------
Htsthbjig
_" How do you keep yourself pushing code when life gets busy or you just get
bored?"_

I don't. When life gets busy with other I am busy and the other people are my
priority. If you are with your family and you are not really there, you will
feel guilty later on work and not be there either.

Steve Pavlina explains it better than I do:
[http://www.stevepavlina.com/blog/2014/12/130-days-off-per-
ye...](http://www.stevepavlina.com/blog/2014/12/130-days-off-per-year/)

What Steve could do after years of training(and reading thousands of books and
learning from others) is probably not what a normal person could do. But they
can apply some of the ideas.

In my experience, people from the US tend to work to much, but not really
work. e.g When a German person works, he works, do not distract him because he
will get upset.

I had never ever got bored in my entire life. I have always done whatever I
wanted to do. Life has been tough to me at some times, but always in the sense
of the Lion on the wild, that if he does not hunt, he just dies.

It is just so easy today to choose safety, but also living on a cage.

Go to the zoo and look at the animals there. Have you ever seen an
animal(lions, leopards, elephants) in the wild? It is completely different. It
is the same with people.

~~~
eru
Just keep in mind that Steve Pavlina is a crank.

~~~
thinkzig
Would you care to elaborate on this?

I think Pavlina is an odd guy, but I've found some of his advice to be quite
helpful over the years.

I don't agree with everything he says, but I don't think he's a "crank"
either.

~~~
eru
See eg [http://americanloons.blogspot.com.au/2014/04/1018-steve-
erin...](http://americanloons.blogspot.com.au/2014/04/1018-steve-erin-
pavlina.html) and
[http://rationalwiki.org/wiki/Steve_Pavlina](http://rationalwiki.org/wiki/Steve_Pavlina)

------
krapp
I enjoy programming, and making things, but my side projects are the only code
I write which really lets me be creative. So I keep going because I want to
like what I do.

Also,sometimes the only thing keeping me going is the sunk cost fallacy. I
don't want to just give up on something I spent months or years on.

But one think that did help me out was learning to recognize the difference
between moving forward and moving in circles. Not wasting a lot of time
refactoring stuff - especially if a lot of time has passed - because your
tastes or mood has changed. I have one project (a web project, nothing anyone
would care about) that I literally rebuilt from the ground up at least three
times already, just because I got sick of the current framework I was using. I
wasted a lot of time moving in circles because I didn't actually want to
_finish_ the project, but I did want to keep working on it.

------
cgallello
I just finished with a side project. I knew going in that I would lose
motivation for reasons left and right, even though it's the right project for
me to work on. In order to keep up my motivation, I started "Side Projects
Dinner" \- I would make dinner for my friends every other week, and they would
give me feedback on my project. It worked great, and we've had quite a lot of
fun. And of course, my friends are also getting feedback on their own projects
and thinking of new project ideas. Highly recommended!

~~~
sr3d
Great idea about sharing the ideas around. I can use this idea, but currently
100% of my local friends are non-technical, still it'd be interesting to show
an idea to friends. Friend-development approach?

------
lukasm
Be consistent. Do some work every day, even if it's just 5mins of work. You
will keep the idea in mind.

~~~
dwetterau
A super easy way to keep yourself accountable when doing something like this
is with the contribution graph on Github. My desire to not break my streak
keeps me working on my projects every day.

([https://www.dropbox.com/s/98kngmtwzrsmvjg/Screenshot%202014-...](https://www.dropbox.com/s/98kngmtwzrsmvjg/Screenshot%202014-12-26%2017.44.21.png?dl=0))

~~~
flavioribeiro
I'm with you, everyday I try to fix a bug, make a small refactory or even
improve README.

([https://www.dropbox.com/s/v5czzto5zfzz7rw/Screenshot%202014-...](https://www.dropbox.com/s/v5czzto5zfzz7rw/Screenshot%202014-12-26%2023.22.17.png?dl=0))

------
Osiris
I get energized about my side project when I get suggestions, comments, or
other feedback from users. I can go months without doing anything and then
I'll get one person asking for a feature or change and I'll work for a few
hours or days to get it done.

My advice is to make is easy for customers / users to give you feedback. Use a
support ticket system and provide email links on your homepage.

~~~
eps
Not just bug reports and feature requests. Compliments do a little wonder in
fueling motivation, so the more things you give people to comment on, the
greater the chances of hearing back will be.

Keep a public work log, publish your progress and encourage feedback. Not just
commit history on GitHub, something a bit more humane and substantial.
Something to look back and see how much you've accomplished so far.

------
alexggordon
How? By wanting to work on things that you want to work on, more than you want
to watch TV, or play a video game, or do anything else.

The thing it came down to for me is understanding how incredibly rewarding it
is to create cool things that I use. For example, the digital situation of
Chess really sucks in the work right now, so for the last few months I've
devoted about 10 to 15 hours a week to created a catch all solution to playing
chess online and on your phone. It's gotten to the point where I can now use
it to play with my brother, dad, sister and friends. As a person that lives a
fair ways away from my family, it's really rewarding to be able to do
something like that. I love getting input from them, and just being able to
bond with them over something simple.

As far as the motivation, and not just the desire, it also came down to
understanding how I work. I burn out quickly if I work on something a ton, and
so I have an incredibly strict schedule during the week, and then completely
leave the weekends open. Essentially, I kind of made a compromise with my
personality so that I ended up happier, and my professional life came out
ahead.

In addition to that, I educated myself. I realized what I wanted to be in 40
years, and I found out how other really smart people did it. The books below
really had a major influence on me in motivating myself to work harder at
everything, and to motivate me to work on side projects.

Lastly, and for myself this is huge, I surrounded myself by people I wanted to
become. It's really really _really_ hard to do stuff on your own, so I worked
hard to become friends with smarter people than me, that challenged me at
life, for lack of a better way to put it. I know stuff that like may sound a
little cliché, but it really is one of the most rewarding things I've been
able to do in my life.

Book List: 1\. Without their permission. _Alexis Ohanian_ 2\. Outliers.
_Malcolm Gladwell_ 3\. How to Win Friends and Influence People. _Dale
Carnegie_ 4\. Hackers and Painters. _Paul Graham_

------
danbmil99
Perhaps a better (or at least related) question is: how does one find the time
to put into side projects on top of staying competitive as a programmer in an
environment where 45-55 hour weeks are customary and expected, and also
achieve some kind of work/life balance involving significant others and
children?

I challenge anyone to show that the math for this works out. Everyone I know
who has put effective effort into so-called 'side projects' is either living
off saved wealth, working 20-30 hours/week on lucrative consulting contracts,
and/or has an SO that works their ass off in some all-consuming, soul-
crushing, high-paying career.

~~~
HeyLaughingBoy
The reason the math doesn't work out is that you're using the wrong math. If
my job expected 55 hours/week from me, I'd look for another job. If life
balance is really important for you, look for a job that allows you to achieve
it.

~~~
collyw
I work a 40 hour week, but still don't find much time for side projects, just
because of other things going on in my life, and I don't have kids.

------
Daishiman
Have spare time!

If you're spending all day in the office or with your clients you're going to
be burned out and you won't have the energy to get down and dirty into the
denser parts of your own project.

Be religious about setting aside your own time

------
jmadsen
\- Trello, and break it down to the most granular set of tasks that you can.
\- Put some real easy ones in a list called "low-hanging fruit" \- When
motivation is low, pick one or two off to get going...if motivation doesn't
come back that day, just rst. But often the mere act of getting going will
move you along

------
ChuckMcM
Like others here, if I lose steam on one, I switch to another. The novelty
effect is real. To support switching though I have to use a notebook. As I get
to the point where a project is feeling more drag than energizing, I write
down everything about it that I have in my head at that point into my
notebook. Then I find another project I had left in that state, read the
page(s) on it, and spin it up.

Still, my biggest problem isn't losing steam its simply too many choices. I
need to get better at deciding I'm not going to do a project and putting it
down for good.

~~~
parley
This is good advice, and I agree!

Anything larger than a small project will _need_ to be put aside for a while
from time to time (for whatever reason), and I've found that making it easy to
pick it up again is one of the most important things you can do.

My strategy for this (admittedly most suitable for software projects):

1) Write down your large, fantastic vision for the finished, complete project.

2) Write down the _smallest possible_ feature that would bring you some
utility. MVP, if you like.

3) Take this requirements and write an automated test at the highest level of
abstraction possible. It should almost read like the MVP requirement you just
formulated. That doesn't have to mean BDD, just something you can read easily.

4) Implement until the test passes.

5) Go to 2.

What I've found over the years is:

\- Quickly reaching milestones of utility are key for keeping motivation while
working. This is obvious, of course.

\- The written down vision brings the motivation and big picture plan back
when picking things up: Get your blood pumping again!

\- The automated tests help keep implementation going when your drive falters.
What should I do know? You should just make the test pass. Nothing harder than
that. No need to think super hard. Just try to make it pass.

\- The automated tests help you get hacking again without the immediate fear
of breaking things: Get the ball rolling again, quickly and easily!

\- The automated tests also serve as your requirement specification so far:
You can easily see what already works.

Side projects are so important, and one should make it as easy as possible to
sustain and restart them! Good luck!

~~~
dwillmer
I'm a bit confused by this approach. Is it related to some established design
approach or principles?

What is MVP or BDD? Could you provide an example of your process?

Would it be similar to this example? 1\. I want to put out a rpg for iOS. 2\.
Implement a pokemon style battle system -> when health < 0, NPC dies. 3\. Not
sure where automation fits in? 4\. Code it and test until it works. 5\. Move
on to adding experience when killing an enemy, etc.

~~~
parley
Sorry about the acronyms.

MVP occurs a lot on Hacker News, in that context meaning Minimum Viable
Product, or the least amount of work you must do to make it useful for
users/customers.

BDD in the software context means Behaviour-Driven Design and is an
opinionated way of writing tests.

With regards to step 3 in your example: Sometimes it can be challenging to
design automated tests for certain functionality.

For a game, it could be scripting "fake" user input that is supposed to have a
certain end result, and then verify that that end result actually occurred.
E.g., the player makes a few good moves, then a few bad moves that should
cause health to drop below 0, then check that the player actually died.

Automated tests are a life saver, and often it pays off in the end to learn
how to write them for almost any functional requirement.

I hope I answered your questions!

------
lholden
One thing that works for me is to get lots of external feedback on my project.
If at least one other person beside myself has some interest/investment into
my project I am a lot more inclined to continue working on it. When I am the
only one with interest... Well, I tend to lose motivation pretty quickly.

------
fsloth
I've come to strive for what I call the minimum overhead principle. If I have
a project going on I make it as easy as possible to continue (editor open, pad
and paper at hand etc) and try to do at least a few minutes per day. Sometimes
it's only those few minutes and sometimes I can get a few hours in. And those
add up.

For personal software projects I've discarded all engineering principles and
do what I would call structured hacking. Everything is neat and tidy but only
up to a point that it lets me progress swiftly.

------
philip1209
Lots of great answers here. One I don't see is to work with somebody else on
the project. Holding yourself accountable to somebody else can be a lot more
motivating. In addition, it's hard to get a pat on the back from an end user
for doing some things, like unit testing or setting up an LLC, but with a
parter these baby steps seem more significant.

If you choose to work solo, bring in a friend - preferably who is working on
their own side project - to mentor you. Try scheduling work time together or
swapping expertise (e.g. design feedback or code review). I worked on a
project in parallel with a friend's project, and we did IDoneThis updates to
each other every day. That accountability helped to motivate both of us, and
rather than give up when we got stuck, we had somebody to talk through issues
with.

An organizatoinal tip is to set up a personal kanban and break everything that
you are doing into tasks. Jumping into a large project that takes months can
seem like a neverending tunnel, but being able to see incremental progress in
terms of completed cards every day can be motivating. When you start to lose
focus, look back at the cards and see what you are supposed to be working on
or pick another card.

Finally, don't lose sight of the end user - build something that people love,
and keep dialogue with your customers before you launch the product. Get
feedback, shadow them, identify pain points, grab coffee - a project become a
lot more real when you humanize the end user.

Good luck!

------
richardw
I tweak my motivation setup, but for me, currently:

1) [http://thinklegend.com/commit/](http://thinklegend.com/commit/) \- I have
"do 30 min X project per day", which isn't much but usually the hard part is
starting. It's easy to kick out 30 minutes work, feel good and add a link to
the chain.

2) Yesterday I itemised a bunch of push and pull factors about my current job
and my side project. We regularly build amazing things for customers but
forget to do what's important to us. We get caught up in "urgent" and forget
about "important".

3) Startup podcasts. In the absence of a mastermind (Anyone else in
Johannesburg?) they keep me in the mindset of building. They're like a small
daily escape into a world of possibility. I listen while driving, so after the
work-day drudgery I'm reminded of what I'm working towards.

------
aaronbrethorst
Make something that can be built and deployed before you get bored[1]. Once
you start attracting users, it's easy to keep going on it.

[1] Which may mean that the MVP takes a day to build, or the project is
something that will be sufficiently useful for you that you can work on it for
six months without getting bored.

------
jseliger
Enjoy them. A lot.

Figure out how / when / where you're going to release them, and work towards
that moment.

------
rwallace
The solution I eventually arrived at after many years: Don't start any more
side projects. Save my energy for my primary project.

------
noobermin
I've found that it helps me when I get feedback, like I finish some major
functionality or feature, I feel fantastic when I see it work and during my
working time, I think about that feature and can't wait to get back to it.
When I stop in the middle where there is no discernible change or a feature is
not fully implemented, when it passes my mind during work or free time, I
think about how broken it is, and I feel like I'm heading back to a broken
bike, which is not too exciting.

It's hard, especially when a particular feature needs days/weeks of effort.
For that sort of thing, you just need to persistent, I guess.

------
mrmondo
I break up my side projects into manageable chunks, completing one of the
chunks is very satisfying.

It's hard to see value in something until you add it, this is why your
greatest achievements will be hard to see moving forward.

------
xasos
Keep a commit streak. My current streak is at 153 days[1]. I've seen that I
have grown as a developer, learning new languages and writing better code.
It's awesome that git quantifies commits and puts it on a graph. I've adapted
this from Seinfeld's productivity strategy and has played a large part in my
streak[2].

[1] [http://github.com/xasos](http://github.com/xasos)

[2] [http://lifehacker.com/281626/jerry-seinfelds-productivity-
se...](http://lifehacker.com/281626/jerry-seinfelds-productivity-secret)

------
justinzollars
Pure determination. I work more hours than any person should, or that is even
healthy but I do not want to go to my grave having not fulfilled my dream and
personal goal of having a company of my own.

------
sideproject
Here's the counter example of what happens if you DO get tired of your side
projects one way or another, not that there is anything wrong with that.

[http://sideprojectors.com](http://sideprojectors.com)

(disclaimer - I maintain the site)

Based on my experience of running the site over a year now, there is nothing
wrong with side projects that do not become "success" (whatever the definition
of your success may be). The most important part is the building it and
shipping that v1.0 (or v0.1.. whatever).

------
kchoi
When I have a hard time getting myself to do anything, I try to think about
why I should do something from different points of view at different levels.

What I mean by this is that you need to rationalize why doing something is
important to you in terms of its meaningfulness and impactfulness.

For example, let's say I'm a web developer with zero knowledge of building a
mobile app. And I want to build a mobile game in ios that doesn't exist in the
world yet. When it comes to pushing myself to work on such an app, I remind
myself that I want to become a programmer with versatile skill sets desired by
many employers. That will be your high level goal.

However, this goal might be too general and isn't convincing enough for you to
keep working on the project. So, let's make your goal more specific. So, in
this case, it can be that you are super interested in learning about technical
details behind implementing the game whether it is about designing the db
relations, software architecture and etc. That will be your middle level goal.

Finally, if none of them made you want to work on the project, let's dig
deeper and make a goal really personal to you. It can be something like you
want to build it because you want to play this game but you cannot find
anything like it from anywhere else. That will be your low level goal.

------
Spearchucker
I've been working on mine (bit.ly/1rqJ0NG) for over 7 years. There are a few
things that keep me going -

\- The first is that while I've been using it (or a version of it) for about 5
years, there are a lot of features I want that are still missing.

\- Second is wanting to see it through. There are loads (over 20) of
unfinished apps in my \Dev folder. I think some of them are epic ideas, but
decided to focus on one and see it through.

\- Third is to make some cash. That's a nice to have, and I'm ok with it not
making anything, because of reason 4 -

\- I _love_ working on it. It's rewarding like nothing else is. I once told a
friend (quite seriously) that solving some hard problem in it was better than
sex. He told me I was doing sex wrong. Maybe... but I can stare at a piece of
code for ages after writing it, if I think it's good. Narcissistic, I suppose,
and probably deluded, too. But there it is.

\- Fifth, and last, I've learnt more from it than any other (single) project
I've ever done - privately or professionally. Not just code, the cloud,
document v. relational v. graph dbs, but also the not-so-great value of TDD,
the value of DevOps, and arguably the most important, the value of just not
accruing technical debt, ever, at all. If you gave me another minute I'll
think of a million other things it taught me.

------
chvid
I try to remind myself that it is in the last part of a project (the 80%
effort that appears only giving 20% of the result) that I truly learn
something.

Not finishing projects is a really bad habit, even for side-projects. Try to
set a goal of at least publishing your project in some meaningful form - maybe
it is just a blog or a forum posting.

Also be careful of vetting your ideas before you start. Make notes, paper
prototypes, drawings or something that allows you to better reflect on and
filter your ideas.

------
Jonovono
Because I make things I WANT TO USE!! I'm not making them to put on my resume,
or to show people, I'm making things that I actually want to use and they
don't exist yet and they would make my life better/easier/whatever. Sometimes
I show others and they like them because if I want something made generally
there are others that want something like that as well. But sometimes I don't
release them as well. But I find that to keep me motivated.

------
jlarocco
The first question you should ask is, if you can't keep motivated, why are you
doing it?

For me, side projects are things I do because I'm interested in them and have
free time to invest. If I don't, I don't work on the project, and it's no big
deal. Yeah, sometimes I'd love to have more time, but oh well.

It'd be different if I made money off of them, but I don't. To me, that would
make it a job, and not a side project.

------
briandear
Simple: I do my 'real' job and then I am reminded why I don't want to work for
other people. That's insanely motivating. For example, if your boss has some
project and design which which you disagree and you're powerless to improve it
-- that's great motivation to do it the 'right' way on your own project. My
side project work is often passive aggressive responses to my employers.

------
vayarajesh
I have too faced demotivation when it comes to side-projects. Until recently
(64 days to be exact) I have started spending my morning's first 3 hours on my
side projects.. and these side projects are not to make any extra pocket
money.. but just that it is interesting and I get excited to learn something
new while doing something which is interesting.

I get motivated even more seeing the github streak (github.com/rajeshvaya) and
it a very small measure which helps me going as well.. everyday for past 64
days I have made sure I spend my first 3 hours of my morning time (even on
weekends.. I make sure I get up early)

after you get this initial start it is kind of self-motivating which will keep
you moving forward.

What i think is just 2 important things to get this:

1\. Work on the projects which interest you and not because other people think
its cool or just to make little amount of money

2\. Try to spend first few hours of morning on your side project rather than
ad-hoc amount of time and different time-span of day. Keep it regular, same
time just like gym

------
xanderstrike
Ship quick and get users. My passion project [1] started as a weekend
endeavor, I started hosting it on campus at school immediately and the users
began rolling in. Now it's got an install base of about 5 that I know of and a
userbase in the hundreds (it's popular with the VPN and darknet crowds).
Having other people besides me who care about the project is the sole thing
that has kept me interested and pushing. Just make sure to sell your project
hard to your friends and family, and make sure that you never stop being a
user.

For things that are fun to make but nobody would want to use, beats me. Those
things I usually play with until I run out of steam, at which point I figure
I've learned what I'm going to learn from them and move on.

1\. [https://github.com/XanderStrike/caketop-
theater](https://github.com/XanderStrike/caketop-theater)

------
robot
The greatest motivator is to think about the end result. This applies to other
will-power consuming objectives like losing weight.

You should think about what you will achieve in the end. Especially if the
side project is one that you can make use of yourself, the effect is even
bigger since you will have immediate benefits from the outcome.

------
gcz92
Talk to people about it. Get continuous feedback. I find that by discussing it
with friends or family I get re-energized

------
zeeshanm
Do as little work as possible. And deploy as much as possible.

~~~
eccp
This. Don't wait until everything is perfect. If your side project does a
barely minimum to be usable, just release it somewhere (if it's an open source
project) or deploy it and send a message for other people to try it.

Other people's feedback is a huge factor in being motivated.

------
DennisP
I was having trouble staying motivated. Now I've quit my job and motivation
magically appeared :)

~~~
super-serial
I got a full-time job and my motivation magically appeared for my side
projects.

Before I was basically a bum that occasionally did contract work... now I work
40 hrs at my job, and 20 hrs at a coworking space on my startup. My hatred for
the 9-5 job is what motivates me.

~~~
dba7dba
"My hatred for the 9-5 job is what motivates me." This.

------
balloob
Work on something you like. Don't care about money or fame.

Use your side project as your playground to learn new things by doing mini
projects within your side project:

\- Want to learn about testing? Add test coverage. \- Want to learn about
webcomponents? Find a way to integrate it.

You don't have to finish all the mini projects. Dropping something is fine,
you still have the experience and knowledge!

What really helped for me in keeping steam is publishing the source of my side
projects on GitHub. The idea that someone else uses your code is very
satisfying. Once some traction comes, the pull requests and issues start
coming in and it gets even more fun.

And when you get bored? No problem, just switch to a different side project or
think of a new mini project.

------
tfb
The best kinds of side projects are the fun ones. When you really enjoy
working on something, you really don't need to "stay motivated".

I love to code and I love to build things, and I would lose my sanity if there
was only one thing I ever worked on. Plus, one of the best things about side
projects is that there's usually no pressure to really get it done, so when I
load my workspace for a side project, I'm always excited to get started,
because I know nothing really important depends on it. And unsurprisingly,
I've learned so much from random fun stuff on the side that I would never have
learned otherwise.

------
chipsy
Combine more projects into the same codebase. With games this is easy - make a
"multicart" game that has more than one game in the same program.

Once that is done, you always have the whole portfolio of unfinished-yet-
related things sitting there. If you can't work on any of them, you start a
new one, but eventually you hit the point where you can see that you're just
redoing an old one. You don't get stuck on overengineering it because the
context of it is already as a small part of a whole. If one of them proves to
be a really good idea and more deserving of attention, you chop it out of the
original context.

------
Mz
Maybe part of the problem is your framing: "pushing code."

My projects don't involve writing much code, but there are always different
things I can be working on. I can be working on the visual look of the
website. I can be working on firming up my definition of what the project is
about. I can be working on talking to people and recruiting prospective
audience members. Etc.

If pushing code is turning stale, what other thing can you do to further the
project? Those other parts matter and you may be more able to address some
other piece of it at some point where "pushing code" is the last thing you
feel like doing.

------
kevinold
I'm currently reading "Mini Habits: Smaller Habits, Bigger Results" and have
to say it's could work for me. I've battled with starting/stopping side
projects. This book presents an interesting argument in that willpower and
making "stupid simple" tasks that you do every day (his example is one pushup)
is the key to building a habit since repetition is what is necessary to build
a true habit.

[http://www.amazon.com/Mini-Habits-Smaller-Bigger-Results-
ebo...](http://www.amazon.com/Mini-Habits-Smaller-Bigger-Results-
ebook/dp/B00HGKNBDK)

------
lholden
Oh... I also find that consistency to be very important. Rather than randomly
using free time... Pick a day or two of the week and block out a bit of time
for the project. This gives you a reason to not just procrastinate.

------
ryanmk
I use Beeminder.com to stay motivated. They have githun integration, which
helps.

~~~
dreeves
Thanks for the Beeminder plug! Our GitHub integration is at
[http://gitminder.com](http://gitminder.com)

------
swayvil
What keeps me going is the awareness that my project is worthwhile. It's got
science fiction level worthwhileness. Ya, that sums up the motivation source
right there.

I do it right. I take my time. Spend much time thinking about the next step.
Draw and stuff. Spent like 12 years experimenting with different geometry
games. Looking for the one that feels right.

I have this stack of project sketchbooks. Sometimes I look at the stack and
think "I'm nuts".

The final climax seems close.

Sometimes I wish a bunch of enthusiastic highschool kids would take my project
over, but not quite yet.

Also there's bucks in it. It's got material worth.

------
aberrant
It's good to always have a problem in mind from that side project. It might
get a little tricky trying to balance that problem in your head with your day
job problems, but doing so may help keep up the steam.

------
jbrooksuk
I build things that I need, so the act of me fulfilling that need is enough
for me to carry on.

Unfortunately I don't always have enough time to push code every day, but that
doesn't mean I can't answer emails, add items to Trello and be active in the
Gitter chatroom etc.

For those interested, I'm currently working on Cachet, an open source
replacement for StatusPage.io
([https://github.com/cachethq/cachet](https://github.com/cachethq/cachet))

Today I created a CrowdIn project for translating the language files into
other languages :)

------
alexknowshtml
[https://unicornfree.com/2013/how-do-you-stay-motivated-
when-...](https://unicornfree.com/2013/how-do-you-stay-motivated-when-youre-
not-making-any-money)

~~~
gexla
And here is sort of the anti-advice. ;)

[https://unicornfree.com/2014/dont-write-1000-words-a-
day](https://unicornfree.com/2014/dont-write-1000-words-a-day)

------
yamalight
Do interesting projects? If it's boring, I usually don't do it (unless it's
some sort of educational project I picked to learn new tech, but those tend to
be pretty short)

------
poseid
I worked on a book about Node.js and Backbone.js last year as a side project.
Keeping motivation is easier if you have some rythm. For the book, I wrote
mostly on Friday evening and Saturday/Sunday mornings. From publication to
first sales, it took much time. So, in that time, I was missing mostly
feedback, what others think about my project. For my new sideproejct, a meetup
group about Arduino, I find it great to have regular feedback from a "known"
audience.

------
reboog711
I imagine the money this new crazy idea is gonna bring in; and how I'm going
to use that 'windfall' to fund the new crazy idea I can't stop thinking
about..

I have yet to have one of 'side' projects make me rich enough to fund my next
side project, though... Really the side projects just keep me fresh and expose
me to new technologies concepts in a way that I would not get from client
work.

------
jmtame
I've recently started sending my todo lists to my friends and asked them to do
the same. The progress I've made is substantial. Tasks I haven't finished in
years were done in a week, and I finished significantly more work than I set
out to do. One of my side projects which has been sitting idle for over a year
will be finished this weekend.

------
dsl
I owe my career, and as a result my means and lifestyle to the Internet. In
turn I like to do things to fix the Internet and make it better for everyone
else.

It also helps me to work on things that I think really matter. For some people
that is building an easier to use templating engine. For me, it's building
security and reliability.

------
sgold515
I have a Big Board in my room with my goals listed. It helps when you visually
reinforce yourself.

Also I have a physical calendar in my room. I want to go to the gym 70% of
days in the year so cross a day off each time I do cardio/lift. I stole this
technique from Jerry Seinfeld who used it for writing jokes :)

~~~
cJ0th
Sorry to break it to you but you didn't steal it from Seinfeld:
[http://www.reddit.com/r/IAmA/comments/1ujvrg/jerry_seinfeld_...](http://www.reddit.com/r/IAmA/comments/1ujvrg/jerry_seinfeld_here_i_will_give_you_an_answer/ceiugt5)

------
joelrunyon
Find something interesting. If you find something interesting, you'll find a
way to keep picking at them.

------
imkevinxu
I have 2 criteria for picking an idea I actually want to work on: \- One is
how many days consecutively am I still thinking about the idea without forcing
myself \- Second is even if no one uses it and everything about it's progress
is shitty, will I still want to keep working on it?

------
ThomPete
You prioritize it. If you don't want to prioritize it you are working on the
wrong project.

It doesn't matter if it's two our daily or two days a month. If you are
working on something you like you will prioritize it.

So don't be afraid to kill a project that you don't want to prioritize.

------
yarrel
1\. I stop working on them when they aren't fun, interesting or rewarding.

2\. I structure them in sprints.

3\. I have a clear life cycle for them (plan, implement, promote, evaluate)
that feeds into 1 and 2 .

This means that it always feels possible and rewarding to work on projects.
Hack your limbic system! ;-)

------
itake
Keep your side projects simple so you can get that dopamine reward with every
launch/update.

------
cheng1
For me, it's desperation.

I have nothing else to do nor I'm likely to achieve anything else.

------
andersonmvd
Progress is the best motivator dude. Check out the power of small wins:
[https://hbr.org/2011/05/the-power-of-small-wins](https://hbr.org/2011/05/the-
power-of-small-wins)

------
gabemart
It obviously depends on the type of side project, but if you can find users,
that can be a big motivator to keep on working. Getting emails from people who
enjoy your work is very effective at motivating you to continue.

------
weka
I do things that truly I am passionate about. I don't work on side projects
because it's "popular" or it's an easy dollar but because the topic they are
concerning are ones I actually care about.

------
aakilfernandes
Use a technology that you would like to learn instead of a technology you
already know. If you lose motivation in the project, you at least have the
motivation of learning a new skill.

------
neaanopri
If I've invested a lot of time into something, then I feel invested in the
project to go through some minor pain.

If i'm willing to endure major pain, it's no longer a side project.

------
Bahamut
In my free time, I mostly do whatever I feel like, so I experiment on random
projects - I don't necessarily care whether I finish them, but I have fun and
learn new things.

------
ratsimihah
Do something relevant that you really want to do. That means don't pick a
project because it's easy, but pick one that passionates you, no matter how
hard.

------
dkopi
Get paid for them. Have a client that actually needs them.

------
benhamner
Set a goal of making a bit of progress every day. Even 10-15 minutes a day
adds up over time, and it keeps you in the habit of making ongoing
improvements.

------
j_lev
Remind yourself of the alternative ie working in a company pumping out lines
of code for the rest of your life for a salary.

~~~
hawkice
(Also worth noting that this isn't particularly bad, in the grand scheme of
things. When you are dejected the rose colored glasses come off -- so if you
want to keep motivated, build that emotion from reasons that are true even
when the alternatives seem quite good.)

------
jokoon
I guess that when I want something better that doesn't exist, the only
possibility is to just make it instead.

------
pepon
For me it is more difficult how to stay motivated in your 8-5 work when you
are building an awesome side project.

------
bbody
I always choose something that I am really passionate about and try to limit
how many side projects I have.

------
fak3r
"How do you stay motivated to work on side projects?" By going to work
everyday.

------
kelukelugames
By not having kids.

Not over working at day job.

~~~
acketon
Having children can provide a huge boost to your motivation.

~~~
kelukelugames
that is absolutely true too.

------
jonmrodriguez
Turned the side projects into a company.

------
lotusko
by learning foreign language

------
gchokov
Basically two factors:

1) Money 2) Fun

As simple as that :)

------
bra-ket
find a buddy

------
sagivo
It's a side project. You have to want it or choose another one.

------
Kenji
Coffee. Loads of coffee.

