
Ask HN: How can I pick a side project and stick with it? - corecoder
I&#x27;m a web developer and DevOps engineer. I know a few languages and frameworks very well, I can find my way around with a good deal of other languages and frameworks, and I&#x27;d like to learn a lot more.<p>My problem is that I cannot seem to be able to pick a project (any project) and stick with it long enough to do any meaningful progress, let alone finishing it.
It&#x27;s been several years since I&#x27;ve managed to work on a side project for more than two days continually.<p>I sit before the computer thinking: I know! I&#x27;ll write a roguelike in X! Five minutes later, I&#x27;m thinking: fuck roguelikes! I&#x27;ll write a graphical solitar card game with Y! Five minutes later, I don&#x27;t care for it anymore, and would rather write an isomorphic strategy game in Z.<p>The same thing happens with tools I might need, applications I think about, experimental stuff, etc.<p>Has anyone else experienced this, and, more importantly, found their way out? How?
======
KentBeck
Don't. Most side projects aren't worth investing heavily in, but you can't
tell which is which without trying them. I had started hundreds of programs
before Erich Gamma and I programmed together. If I had forced myself to "stick
with" one of those early projects, we wouldn't have written JUnit.

------
ryeguy_24
I’m just like you.

I stumbled upon a book called Refuse to Choose and it’s about a personality
type (that is definitely not ADHD) that happens to want to do a lot of things
(sometimes in parallel or in sequence). It was very comforting to know others
struggle with this and this book helps you to be ok with it. I wouldn’t say it
“cured” me but I think about it differently now and use it more to my
advantage. Worth a read at a minimum.

There was one very profound idea in this book that goes like this:

“If you are no longer interested in a project you started, maybe you already
got what you came for”.

In essence, maybe it’s not the finishing of the project you came for but maybe
the learning or understanding of how it could be done if it were to be done.

This realization is interesting for someone who exhibits this behavior. When I
was a kid, I loved to build legos but after following the instructions and
building a kit, I wouldn’t touch it again. As I think back now, it likely was
because “I got what I came for” (the challenge of putting it together was more
interesting to me than the end product).

~~~
arosier
"maybe you already got what you came for."

As someone who frequently starts projects and doesn't finish them, I've
wondered if the part I enjoy about the project is the dreaming about what
could be. That little rush you get when a new idea is upon you and it's all
you can think about for x days. Doing the initial research and formulating a
plan.

This is a dopamine rush for me. The feeling of being laser focused for those
few days is invigorating. The start of something new, the potential for life
changing work.

It usually stops there. Maybe that's what I came for.

~~~
pharke
As someone who tends to do the same, I don't think this is a good description
of what is happening. The way I view it is that any project has the same
progression of initial excitement, frenzied work and determination, discovery
of the real scope, the descent into the Valley of Despair as you continue to
wrestle with the problem and then the fork in the road where you either give
up and abandon the work or you persevere through the Dark Forest of Unknowns
where your progress is often measured in inches until you climb the Hill of
Competency where you can again make meaningful gains and catch a second wind
until you enter the Swamp of Drudgery where you again must slog your way
through until you reach the base of Mount Perfection where you can finally
ship it.

~~~
arosier
Ya, sometimes I follow this path as well. I like how you put it.

------
zulban
I've finished loads of hobby projects, despite full time jobs, and I've been
told that I'm a bit of an expert on this. I see there's lots of comments
already so I'll keep it short.

1) If you can't focus on a project longer than two days, then pick a project
you can finish in three days. Honestly evaluate how big such a project can be.
I also see this as students learn to code. They learn the basics then think
they're going to dive into a 2000 hour project. Instead, you need to ask
yourself "what's the biggest project of this type I've ever finished" then add
50% to that. Like an athlete, you need to build up the endurance for your
self-motivation to survive longer and longer projects. The payoffs are bigger
but your human brain needs to trust that a payoff exists based on past
experience.

2) I prefer not to talk about my future dreams for a project. What happens is
I get enjoyment out of talking about what I "will" do, but without actually
doing it. Then if I ever finish the work, I get less enjoyment because I
already talked about it. In this way I'd be stealing enjoyment from my future
self! An exception is advice.

~~~
wcarss
My answer takes from the Feynman approach to problem solving: have several
projects laying around that you could easily pick back up to work on a little
bit. The progress may not be constant, but it builds over time.

This is a variation on the parent post's suggestion of picking a project you
can finish in three days. I find that task can itself be hard, and is work
that gets in the way of the fun work. In the past I've burnt out my excitement
while trying to do it.

So I have 5+ small games, a game engine, an interpreter and a compiler, a few
short stories, some music projects, a personal website, some art projects, and
several books to read, and most aren't done.

When inspiration strikes, e.g. I'm feeling musical, I open up my music folder
and click around a bit. Or if I feel like making a game, the first thing I do
is go play one of my existing half-built games, and pop open the editor. It is
helpful here to leave things in a working-ish state and keep ideas around in
text files about what you could do next. Make picking the project back up easy
for yourself.

I do also start new things or decide not to come back to old ones, but I wound
up here by realizing that my interests aren't actually infinite. There's only
about a dozen distinct things I really want to do and periodically get excited
about.

For years I had been starting and then totally dropping projects, but I had
"started making a game" a hundred times. My plan became to treat random
projects like turning a ratchet, and I feel it's gone great from there.

~~~
RobKohr
I do a similar thing where I keep a list of things I'd like to do in a list in
a markdown file. I put subtasks on them, check those off, and eventually, when
the product is done, it gets checked as done. This gives a great sense of
accomplishment.

Choosing what to do is a challenge for me, so I created a task chooser for
when you have trouble deciding what to do next:
[https://github.com/RobKohr/weighted-task-
chooser](https://github.com/RobKohr/weighted-task-chooser)

And you can assign weights to the different things. I usually run it a couple
times until it tells me something I feel like doing.

------
virtualritz
A friend of mine said to do a successful software product you need three kinds
of developers. Skip one and you will likely fail.

1\. the kamikaze

2\. the soldier

3\. the sniper

Kamikazes start the project. They have a broad vision of how the result will
look (total victory, ofc) and they do not pay attention to the mountain at the
horizon or the road missing a bridge over a canyon a few hundred clicks ahead.
They just start running.

Soldiers are those who march on day by day. Following in the kamikazes
footsteps they do the grunt of the work. Much more thoroughly than a kamikaze
ever could muster patience or care for.

Snipers are needed when the army hits an obstacle. Like a booby trapped rock
in the middle of the road. They will shoot the explosives from afar. They are
highly specialized individuals who care much more for the problem they solve
than what means to what end it presents.

Most developers I know have a little bit of all these three types in them.

I did understood long ago that I am mostly a kamikaze.

Coming to terms with that when I do not finish yet another spare time project
... that's a lifelong goal to overcome.

You are in good company. As others said: focus on the learning more than on
the result. This is what makes coping with not finishing stuff much easier for
me.

At the same time this change of perspective may just provide the inkling of
additional motivation needed to actually do finish one or the other of those
projects.

~~~
fudged71
I had two cofounders, and this is possibly the best description of how we
operated... each with a different timeline and focus. Although I can't say
that it ended well between us

------
Glench
Since I haven’t seen this in the comments so far, I’ll suggest that you begin
to reflect on what’s truly meaningful to you. It sounds like you’re able to
have a lot of ideas that aren’t particularly meaningful, which are probably
ideas you got from the values of your cultural environment. So try reflecting
on the following prompts: what kinds of experiences do I want to help people
have, that would be truly satisfying to see? What moves my heart and gives me
energy to keep going?

With deeper meaning and purpose it will be natural to want to stick with
something.

> Has anyone else experienced this, and, more importantly, found their way
> out?

I wrote a little bit about that in these two articles:

Why I Quit Tech and Became a Therapist:
[http://glench.com/WhyIQuitTechAndBecameATherapist/](http://glench.com/WhyIQuitTechAndBecameATherapist/)

Deep Listening at the Recurse Center:
[http://glench.com/DeepListeningAtTheRecurseCenter/](http://glench.com/DeepListeningAtTheRecurseCenter/)

~~~
nullspin
I have been contemplating a similar change. The dynamic for me is interesting.
When I go deep into tech studies or projects I eventually feel a what-is-the-
point energy take over. When I go deep into exploring the
mental/emotional/spiritual my engineering creator brain will eventually
agitate.

Figuring out how to express both has been a decades long puzzle. A puzzle
which has not been very productive for my career. I have recently considered
turning all tech into a hobby and getting a Masters in Social Work.

------
littlecosmic
You’ve already done step one: realise the pattern. Step two is don’t do the
new project. See it for what it is, not a great new idea, but another step
down the road you’ve been walking down for years.

Just because an idea pops into your brain, doesn’t mean you owe it anything.

Something that may help is picking a smaller project, so small you could do it
in a day or two. Build up some endurance over time.

Good luck

~~~
w0utert
It's funny because I did exactly that (sticking to one project instead of
jumping from idea to idea) because I had the same problem as the OP, but these
days I'm getting the feeling this is also counterproductive. I spent a lot of
time on a single project, learned a lot of things along the way, but progress
was very very slow mainly because it started to feel like 'work'.

For me, these kinds of side-projects are all about learning new stuff, and
sometimes to scratch some really small personal itch. So what I try to do now
is to find projects that can be used a platform for trying out new stuff. For
example, I've been working on an iOS game since 2014, but by now actually
finishing it so people can play it is completely secondary to the personal
satisfaction of incrementally refactoring and repurposing parts of the engine,
using techniques and technologies that interest me right now. Becase even that
started to feel like work at some point, I decided to also start some other
side-projects that go in completely different directions, so I can switch
depending on my mood and make slow but steady progress in each of them. I try
to also incorporate some technology/techniques that pop up around my daytime
job but which I never have time to explore at the office, some of that stuff
is super interesting but I cannot justify spending company time on it.

I think the main advice I have for the OP is to find one or two interesting
projects that are diverse enough to be a platform for experimentation, instead
of some very narrowly focussed problem that will inevitably start to become
boring sooner or later. Unless you really want to create a product or
something to show off with, the main purpose should be personal
development/intellectual satisfaction, not reaching some predetermined goal.

~~~
corecoder
> find one or two interesting projects that are diverse enough to be a
> platform for experimentation

This seems promising, thank you!

Just a question: don't you risk to get stuck in a perpetual
refactoring/rewrite cycle?

[edit: fix formatting]

~~~
w0utert
>> _Just a question: don 't you risk to get stuck in a perpetual
refactoring/rewrite cycle?_

Yes, definitely, it’s actually all I’ve been doing on one of these projects
for the past two years. Guess I just like refactoring a lot it seems ;-)

Joking aside, refactoring is a broad term. Most of the time spent
‘refactoring’ this project was to incorporate interesting new ideas,
increasing the capabilities of the game engine etc. Not just the typical
technical debt cleanup. But even some of that was actually very educational,
for example I found out that the whole idea to use object-oriented programming
techniques to model the game was a bad idea, and have slowly refactored the
whole thing to a hybrid between OOP and an entity-component system. Just the
act of incrementally applying such a fundamental paradigm shift while keeping
the engine mostly working was quite an interesting challenge!

------
aprinsen
Hey OP, I have been exactly where you are, about three years ago, and now I
have a backlog of completed side projects of varying size that I am very happy
with.

Here's some quick advice:

* Start smaller. Your projects are probably too ambitious to start. Graphical games are actually quite complex. Start with small projects and work your way to larger ones. My first projects were chrome extensions and silly command line tools. They helped me build some resilience that I used later to complete more complex projects.

* When you do tackle larger projects, do your best to see them as a series of smaller projects. Each project should deliver some value on its own. I recently built a web game about navigating a randomly generated maze and avoiding monsters. Here's how I broke it up: first I built a command line tool to generate mazes. Then I separated the core functionality into a library. Then I deployed an API wrapping that library. Then I built a simple UI that allowed a user to navigate that maze. Finally, I started adding enemies. Each enemy was its own project, each with more complex path finding than the last. At each step in this process, I had learned something new and had a deliverable to show for it.

* Your question suggests that the problems you are trying to solve are not interesting enough. This belies a beginner mindset: that you have to be interested first, and then work happens off the fuel of your interest. The truth is that most interesting projects involve a lot of days where the creator feels disinterested, but shows up any way. The most important thing you can do for yourself is cultivate the resilience required to keep showing up, so you can reap the satisfaction of completing great work later.

~~~
JohnL4
Yeah, this. I'll add:

Keep a todo-list/journal sort of thing and document each work item as you
complete it.

I'm working on a stupid side project myself and every day I hit a new hurdle,
something I don't know, so (almost) every day is a tiny victory over some
immediate problem.

Make a plan, sure, but break it down into tiny pieces, even if you have to
keep lowering the bar.

------
themdonuts
Get people using it. Period.

Result: with every user interaction you will get a refreshment of motivation.
I've done it for 5 years.

Long version: I was all about starting projects and never finishing, until one
day I actually put one online and started spreading the word through
discussion boards.

So step 1) Launch and spread the word. You get 1 thing out of this
immediately: you WILL finish it to the bare minimum, because what if someone
actually tries to use your product?

You could argue: yeah, but when I give up on the project it's no where near
ready to be launched. I would argue back that if you dropped it, it probably
means you got something out of it - could someone also benefit from it? Maybe,
at that moment switch your brain to: now let's launch this and spread the
word.

Step 2) Put metrics in it You want to see if there's people coming to your
website. Crucial for step 3, read on.

Step 3) You will see people coming to your website and interacting with your
product. This is the best part, because it gives you such a kick of motivation
that will make you want to continue working on it. It just keeps giving.

I've started a project 5 years ago and I put it out there and forgot about it.
2 months after someone used it and I got my first reservation. That was such a
source of motivation!! It's magical and it's a cycle. As I continue working on
it as my side project and as I start losing interest, I get a new user which
then sources me with more motivation to keep going. This cye repeats

I've learned a lot in terms of business, technology stack and devops, but all
this applied to the same project I started 5 years ago.

~~~
neonmate
> Get people using it. Period.

Or find people that code with you, like a hackathon.

I recently wrote an application
[https://wintermute.app](https://wintermute.app) that tries to connect coders.

@corecoder Maybe you can find a project you want to participate in? Or at
least you find some first users / supporters for one of your ideas.

------
agentultra
I’ve been employing a tactic I’ve picked up from artists/authors: _don’t talk
about your project_.

Talking about it tricks your brain into thinking you’ve done the work and you
lose motivation.

Sticking to a schedule can help as can ritualizing the process of working on
your project: have a certain place you associate with the project or a
particular genre of music that gets you excited (it’s important to not listen
to that genre/album while doing anything else). These tactics exploit the
power of association in our brains to form habits.

~~~
yboris
I've come across this tactic, I think there may be some psychological studies
backing up the suggestion.

There is an opposite suggestion that may work too: telling others you're
planning on _releasing_ an app at some date (setting a public deadline). This
way you may feel pressure (to avoid the pain of 'losing face') to complete it
on time.

Note, do not talk about "I'm working on this thing" (see comment above why
that may backfire), but instead talk about an explicit deadline you think you
can hit.

Needless to say, this is best when talking with people you expect to interact
with in the future (so you feel responsible to finish), it may not help
psychologically when talking to someone you'll never see.

~~~
smilebot
I read that in the section Commitment and Consistency of the book, Influence -
[https://sites.google.com/site/724ecialdiniwiki/home/commitme...](https://sites.google.com/site/724ecialdiniwiki/home/commitment-
and-consistency). If you commit to something publicly to someone especially
written, you are more likely to do it.

------
johnstorey
I have battled this since programming became my profession. Over years I was
trained to create in ways that maximize income, and stop when there is no
income link. Decades later, this made working for passion very difficult.

Here are a few ideas that seem to consistently help me.

* one, sheer willpower. It's a muscle that needs building, but keep going when you don't have any further interest for the sake of completing the task. Even when it feels like torture. It's about forcing yourself to the finish line. Often the interest comes back later.

* Move the finish line closer. Formally write down what you want to develop with milestones, with a go/no go decision at each milestone. If you decide not to continue at a milestone, that was part of the plan, so you completed the project.

* work on things that develop skills you expect to bring to the workplace and apply there. That's a pretty direct link to income.

* work on things you want or to keep current with younger hires -- I'm learning gitops on k8s at home, and packaging charts to self-host some things I've wanted at home anyways. Even though I manage these days, it's important to understand how things work to a decent degree in order to have meaningful discussions with the broader team. I know managers who get by without that, but I'm not one of them.

For what it's worth, continuing on because that's what you planned to do
sometimes leads to a renewal of interest later in the project.

------
brudgers
When you're imagining a rogue-like use a piece of paper and some fat markers
and make some of its artwork. That's where it starts. Not with downloading a
graphics library. Not with configuring Travis-CI. Not with >git init. Those
are pretend work. They are non-progress. They are not creative work. They are
not hard. The hard thing is doing something poorly. The hard thing is barely
making progress. The hard thing is opening yourself up to someone saying
"that's inefficient." That someone is usually you. Good luck.

------
onion2k
Focus on solving a problem. Find something you actually care about and _need_
to make instead of something that you think sounds cool or that you think
might make money. Let those things happen organically. If you actually solve a
problem people will tell you that it's cool, and they might pay you for the
solution.

~~~
inigoesdr
> Find something you actually care about and need to make This is my problem.
> It's hard to find something that I care about enough to spend time working
> on it. When I start on something that I do care about, I often find
> something that already exists that does what I wanted to make.

~~~
jayavanth
Do it anyway. Or think about how you can improve it. If it's open-source look
at their code and collaborate with them.

------
swiley
Maybe work on personal discipline, also I’ve noticed with myself that
sometimes a lack of motivation can be confused with a lack of understanding.
The more you practice your tools the longer you’ll go before you get badly
blocked and give up, eventually you’ll have projects that you can hack on for
years.

Here’s what worked for me:

1) pick a language (it doesn’t matter, C, python, ocaml) and just start
writing small things in it. Do this so much that your inner monologue starts
speaking the language, that you have an uncontrollable urge to sit down on
Saturday and barf our thousands of lines of bad code in it the way you might
write a rambling post on tumblr.

2) understand problem decomposition: practice OOP for the broader application
(you don’t need an OO language just use it to break the problem down, write
UML if it’s your first couple times) and FP for smaller problems.

3) practice discipline. Clean your room, do your laundry, make your bed, wake
up at the same time every morning, go for a walk every day, keep a house plant
alive. It’s almost unbelievable how much this discipline with small things can
make you more focused and less compulsive.

~~~
RMPR
The point 3 really helped me to see some improvements. When I complete those
little tasks in the morning, I get the necessary boost to get the next things
done.

------
papaf
As someone who has been failing on side projects for over 20 years, I feel
qualified to answer this question.

    
    
      - Have one private repository for random projects
      - Work in private repositories for random 
        projects that progress.
      - Move to public repositories when the project
        gets somewhere.
    

These tips above make failure cheap. Success is built on the many failures.

I also have general tips on side projects that make them more fun and less
like work:

    
    
      - Use a different editor/ide to $job.
      - Use a different programming language.
    

I also have these general tips based on mistakes I made in the past:

    
    
      - Read other peoples solutions on github. Its inspiring.
      - If you get stuck take a break. Its not work and you can slack.

------
spodek
You describe focusing on the solution. The inspiration to make your solution
generally feels great, but doesn't endure. On the contrary, you'll get caught
up in more and more solutions because you're mostly satisfying fleeting whims.

Focusing on the problem and the people who feel it will generally engage and
inspire you longer. When you ask someone about what's missing in their lives
or specifically what emotions they feel in the area you want to work in, they
tell you, you offer possible solutions, and they say "when will you finish it,
I want to buy it?", that inspiration lasts a long time.

Whom do you want to make your project for? What emotions do they feel that you
want to address? Are they bored, frustrated, confused, misunderstood, lonely,
etc? Each emotion is different and will lead to different solutions. Ask them
so you hear in their words what they want. Ask them to clarify.

The inspiration to help others is deeper and creates meaning and purpose
beyond just "I'm going to do something cool everyone will love."

I cover how to make this happen in my book, _Initiative_
[http://joshuaspodek.com/initiative](http://joshuaspodek.com/initiative) based
on project-based learning entrepreneurship courses I taught at NYU. If anyone
is interested in doing the exercises after reading the reviews and watching
the videos but cost is a problem, email me and we'll work something out. I
suggest the book because of the results people get from doing the exercises.

------
mschaef
The first thing I'd suggest you do is understand why you want to do a side
project at all. Unless you have a specific goal you want to achieve and you
actually value that goal, you'll have a hard time convincing yourself to do
the work you need to do to make it happen.

You also shouldn't fool yourself about the amount of time and effort it takes
to achieve anything real. Developers tend to underestimate the work involved
in achieving a result. For commercial projects that sort of estimation problem
turns into cost overruns and missed deadlines. For side projects (without
formal schedules) it turns into demoralization when the result you want
doesn't meet the timeline of your dreams. That solitaire game may seem like an
easy thing to do, but for every complexity you see there's a dozen you don't,
and you'll have do the work to solve them all to produce something of value.
So make sure it's something you actually care about.

------
edw519
1\. The WHAT should be something very important to someone else.

2\. The HOW should be something very important to you.

Many experts tell you that you should build something that you actually need
yourself. That may be good advise for start-ups but not as good for side
projects. Why? Because it's too damn easy to just give up as soon as you hit
an obstacle (and you WILL hit obstacles).

But when someone else is depending on your work (and becomes a trusted
collaborator), they provide you with that extra UMMPH you will undoubtedly
need when the going gets tough. It's a lot harder to bail out when someone is
right next to you and depending on you.

But by deciding on your own HOW you will build it, you maintain an outlet for
your passion. Believe me, I know. For me the journey of building something is
more fun than the anticlimactic using of the finished product.

Works all the way around. Give it a try.

~~~
RMPR
I second this, for my current side project, I felt like giving up many times,
but the thought that someone is depending on my work made me continue.

------
skinnyarms
Maybe you need to examine what your true goal is. Why do you want a side
project? Are you doing it because you feel like you are supposed to have side
projects, or because you actually want to accomplish a goal? If it's the
former, you could try to align the side project with another goal of yours -
say learning some new language or framework.

If you are just trying to build a portfolio you can come up with a (small)
"SMART" goal, and commit to completing it. After you reach the milestone you
can make a conscious decision whether to continue or not - but either way you
have _something_ completed.

[https://en.wikipedia.org/wiki/SMART_criteria](https://en.wikipedia.org/wiki/SMART_criteria)

~~~
crispyambulance
> Maybe you need to examine what your true goal is.

I think that's absolutely the most important factor here. People don't finish
things for a variety of reasons.

Perfectionism is a big one. It's tied to a fear of failure that manifests as
losing interest. If the root cause is perfectionist tendencies, one thing that
can help is to collaborate with others. Just doing something for someone,
helping them out in some way will often de-fang the perfectionism and self-
criticism and drive you towards something tangible.

It could also be boredom. If you're doing X at work day-after-day, maybe it's
not a great idea to _also_ do X as a side-project?

I personally am allergic to SMART criteria-- too much association with
corporate performance evaluation fuckery, it kills motivation and creativity
for lots of people.

------
pogorniy
I have similar questions how people stick to projects and get them done. And
how can I do the same. I have so many unfinished ideas, abandoned projects
that I got tired of this. And after a year I have an answer with a prove.

I've learned that I'm excited about idea of the project, but not routine which
gets that idea done. Also I know that usually I'm excited about project for
several days and then other ideas get in my head and I loose focus. Another
known pitfall is urge to get too much functionality and then again focus is
lost.

So I decided to stick to the routine of one project regardless of
circumstances. I defined wanted functionality. Intrinsically I agree that time
spent on the project is not worse than alternatives.

Also I tried to record videos (in russian) on how I approached the project.
That helped a bit with external motivation as I promised people to deliver
video on Saturday. Made quite a number (26) before abandoned this idea, as it
wasn't popular, thus rewarding for me.

Now in a year I call this experiment done [https://github.com/podgorniy/media-
manager](https://github.com/podgorniy/media-manager). I'm happy with result
and path I did to get there.

We can discuss details more. My first unfinished project dates 2013. So I've
being in this situation for quite a while.

------
vishnuvis
I faced this. Start a website then lose it because I would be losing interest
in few weeks.

The thing which I followed is to fix my routine. Joined a Gym, it helped a lot
on focusing on things & made me mentally strong.

Take off time, started travelling & took a long break & then get back to work.
A step closer to nature made me fresh & met people who are really working hard
despite the lack of resources. This made me think about how am wasting my
time, despite having all the resources.

Sat one day & written everything on things I wanted to do. Made a weekly task,
monthly, quarterly. Then started steps to accomplish it.

At first it wasn't easy but slowly I made a habit & then finally get used to
it.

Just follow something for 21 days, it will be a habit.

All you need is 21 days.

------
andremendes
You must pick something that is really meaningful for you in a way that will
make you feel good seeing the progress of the project you are working on. What
would a Roguelike have to be to take your full attention? How a strategy game
you really love has to look like?

What you like beyond games? If you like gardening, make a game about it. Are
you a sports fan? Make a sport game. You get the idea.

I'm saying this because it's working for me. Like you, I want to make games on
my own. I am also into politics, so I chose a language and a framework[¹] and
started from the tutorial with the goal of making a politically-charged
infinite-runner[²].

After getting the basics I told my idea to a couple of friends that kindly
drew sprites for me to use in the game. It's been a really cool experience.
I'm doing it everyday and learning a lot in the way. I strongly believe that
the subject choice for the project is what is getting me hooked to it.

¹: [https://haxe.org](https://haxe.org) and
[https://haxeflixel.com/](https://haxeflixel.com/)

²:
[https://github.com/fullynotanalien/bozorun](https://github.com/fullynotanalien/bozorun)
(edit: formatting)

~~~
beznet
Came here to say this basically. If a project only has surface level interest,
I'll never finish it. The only projects I've ever finished are ones that I
found that would be legitimately useful for me or other people. It has to
solve a problem that, like you said, is meaningful.

------
lamename
This is common for most people, at least in the beginning. This is the nature
of creative projects because it's just always going to be easier to think of
an idea than execute it.

1) you have to recognize that the dopamine rush of new ideas will not carry
you through the project to completion in the same way it drove you to start.
Inspiration is useful, but it's fleeting or at best inconsistent. The sooner
you stop relying on inspiration to last, the sooner you'll learn to find other
ways of motivating yourself. That being said, it's useful for inspiration to
fade. This can help you decide the difference between a project that's really
useful or was just an idea you had that is not necessarily worth your time.

It also depends on how you work. Some people prefer long bouts of work and
long breaks, others prefer a little bit each day. It doesnt matter which or
both you try, just keep moving forward.

2) Nearly everyone who creates things has way more ideas or unfinished
projects or projects that didnt work out than completed projects.

3) finished projects rarely end up the way you expected and wanted in the
beginning. The sooner you accept this the sooner you can be flexible
throughout the process to bring what's feasible to completion, rather than an
idea that hit many snags

4) related to #3 is learn to recognize asymptotic progress. In other words,
many projects are never "finished". You'll always have more to add, and that's
ok. You can keep adding, but dont let that hinder taking a break or showing
version 1 to the world. Recognizing "good enough" is important

------
myhikesorg
Find a problem you want to solve for yourself and then build a solution.

I created [https://myhikes.org](https://myhikes.org) as my side project in
2015 because I hated the existing public trail platforms at the time - a lot
of things have changed since then, but so has my skill set, data set, the way
I write, the way I think about features, the way I weigh pros/cons of features
and time.

Don't aim to solve the world's problems or make money with a side project, aim
to make your own life easier or more enjoyable in some way. You never know
what will come of it later if you continue using, building, and growing your
idea.

------
sova
This is a great question and one that often goes unnoticed: I observe my
optimal work habits and patterns, instead of seeing them as a drawback, how to
turn it advantageous?

If your optimal flow is 2-3 days spurts on mini projects then think of a big
project and break it down into these mini-projects. If you can build one power
ranger, you can build the mega ranger, just thoughtfully break the tasks into
pieces first.

More importantly, you need a topic you are passionate about, and then you can
use all your computer knowhow to make tools with that domain as a central
focus or backbone. Again, you don't even have to stick with the same toolkit
as long as you can break your work into meaningful mini projects.

Celebrate and rejoice when you complete mini projects, and keep your eye on
how satisfying it will be to make big projects come perfectly together. If it
took many people many days to build the pyramids, it will probably take one
person a while to build one. I don't think that's unreasonable, the key is
staying motivated. Come to the desert and leave with a pyramid

------
wschlender
What happens when you play video games?

For me video games are fun and easy to focus on day after day.

I realized that this is because video games have done a very good job of
defining a goal --> FTL (my current favorite) == get to the final sector and
destroy the rebel flagship. The goal is clear and you 100% know when you're
done.

I've learned that I used to be really bad at defining goals. I'd say things
like... 'I want to make an XYZ sort of thing'... but that's not a great goal.
It's kinda vague... have you 'made' the thing when you put down 10 lines of
code as a prototype? When will you be done?

If the goal is unclear I feel --> 1\. like I might be signing up for an
everlasting slog 2\. like I'm not really sure how to win

So I find that I need 'delivery' goals --> 'my app is in the app store' or 'my
article was published'. When you work for someone else this is the kind of
goal they give (when will you ship XYZ) and you probably always make those.

Hope this helps!

~~~
ProZsolt
This is exactly me.

You not just need 'delivery' goals, but small goals as well, like missions in
a game. Where you see you are progressing.

Also in videogames you never hit a wall, you never have to fight a boss that
impossible to beat at your level. Side projects are more like those pay to win
games. Where the first part is easy, but after that, the progress can be slow.
You have to get a big reward (for me it is usually scratching my own itch) to
make the grinding part work.

------
omarhaneef
There is one very simple piece of advice that I have found helps me with this:

finish.

It doesn't matter how small the finish is, but whatever it is, at least get it
to a point where you have something finished. If you are writing a book, and
you want to switch, finish the outline. If you start a chapter, finish it. If
you start an app, have at least a hello world page up.

If you don't feel like working on it now, and a new idea pops up, feel free to
start the new idea after you finish. Practice finishing just as much as you
have practiced starting.

------
samsquire
I resigned myself to writing ideas and keeping side projects small but sharing
my ideas anyway. Every thing is harder than it looks.

[https://github.com/samsquire/ideas2](https://github.com/samsquire/ideas2)

[https://github.com/samsquire/ideas](https://github.com/samsquire/ideas)

[https://github.com/samsquire/ideas3](https://github.com/samsquire/ideas3)

------
TehShrike
For me the solution was to remove motivation from the equation.

I had to tell myself "this is your job now, you have a part-time job that
starts after supper." And then show up for work every day (or every other
day).

As long as you keep showing up for work, the work eventually gets done.

I started thinking this way in late 2013 and shipped the 1.0 of my first
successful side project about 6 months later.

People who don't ship will tell you that side projects shouldn't feel like
work, but you can ignore them. Shipping feels fantastic.

------
kingkawn
Part of why people can’t stick to projects is because their way of self-
motivating is too critical in nature and the emotional life rightfully pulls
out of anything where the ratio of +/\- reinforcement is skewed too much
toward abuse and threat.

Rather than turning to self-loathing and criticism you can interpret this
resistance because you have not yet figured out how to encourage and motivate
yourself.

Find a way to get yourself to not feel under threat of failure and you’ll
blossom

------
LeonB
Have you considered the possibility that you may have ADHD-inattentive-type?

There are online tests based on DSM criteria that can show you if it’s worth
looking deeper into, such as this one:

[https://psychcentral.com/quizzes/adhd-
quiz/](https://psychcentral.com/quizzes/adhd-quiz/)

~~~
corecoder
I do score quite high (total 44, inattentive scale 19,
hyperactivity/impulsivity scale 25), yet I'm not convinced: at work I almost
always manage to get things done well and in time, and I'm generally
considered accomplished by my peers and managers, though maybe strange and
over the top.

~~~
LeonB
Yeh. That’s a significant finding. Honestly.

People with ADHD can most definitely be productive and generally considered
accomplished. They just tend to have put a lot of effort in, their whole
lives, in order to get there, and may have developed a lot of cool techniques
to get there. Treatment itself is about improving these techniques (and
finding helpful medications, the two parts work together.)

~~~
corecoder
Thank you very much.

I'm quite scared of medications, tbh, but I'd very much like to explore
improving techniques.

~~~
LeonB
The stimulant caffeine is a popular alternative (provided you’re not overly
sensitive to it [it can cause heart palpitations and anxiety], and don’t take
it too late in the day) — lots of people use it to self-medicate ;)

~~~
corecoder
Yes, I used to go really heavy on it. Had to quit it almost entirely, for both
heart palpitations and anxiety.

~~~
LeonB
Not to harp on about medications, but there are “non-stimulant” medications
used to successfully treat ADHD as well, such as Strattera.

On the non-medicine side, techniques like bullet journaling are useful, also
having “accountability partners” — friends or groups you report in with each
week to check on each other’s progress; things like that.

~~~
LeonB
Exercise and mindfulness also worth mentioning. Good sleep also a biggie.

------
thibaultj
I used to be like you.

Back in my early career years, and even before when I was a student, I used to
have a lot of cool side projects that would only interest me for so long. I
would spend a few hours or days on them, and then throw them out or forget
them.

It was ok because I did not care about the project in itself. It was
interesting to try new techs, or methods, or just spend some time doing
something I loved.

It stopped being ok when something shifted in my mind : I subconsciously
decided that _I wanted to stick to a project_. But it was for the wrong
reasons. I wanted to make money. I wanted to have a cool startup. I wanted to
be able to stop working. Too much Hackernews hype. But since I did not really
care about the project itself, I never managed to stick to it.

After years of frustration, I quit wasting my time and took on some other non
IT related hobbies.

Two years ago, I picked a side project for the first time in years: it's a
cool music theory related website.

[https://www.mamie-note.fr](https://www.mamie-note.fr) in case you're curious.

I've managed to keep working on it (and being interested to do it) since then.
It's the longest time I've ever spent on a single project.

Here are the things that are different for me today:

    
    
      - I do care about the project in itself: it's the site I wish existed when I started learning music, and the site grows as I'm growing as a musician.
      - I really enjoy the daily process of working on it, I don't fantasize about how great the end result will be in a few years.
      - I don't care about the tech, I care about the topic.
      - I'm turning the site into a business, but making a living with it will be a cool side effect, not the main objective.
      - Since I do have a family now (and we are in lockdown), I have much less time to work on it. It's easier to stay motivated when you spend two or three ours on a project instead of 15 or 20.
      - Working on this project is a hobby, but it's not my only hobby, I take interest in other things, so when I'm bored and don't sweat it and take breaks for some days or weeks.
    

My two cents.

------
_-___________-_
Instead of tools you _might_ need, applications you _think_ about, and
experiments, build something that you definitely want (or, even better, need).
Find inefficiencies or deficiencies in your day-to-day that you can eliminate
or ameliorate.

Another way is to build something that someone you care about wants or needs.
Pay attention to how people close to you (especially those that are not
engineers themselves) use technology, and notice when there's an opportunity
to make it easier/better for them. Many great projects were born this way.

------
rriepe
It's an explore/exploit thing. You need rewards from both. Your job focuses
too much on "exploit" so you end up seeking "explore" rewards from side
projects.

You explore an idea, but after you select it, you're staring down the barrel
of a whole bunch of "exploit" work to do. You're already burnt out on this
reward system from work-work, so it doesn't seem appealing to you. So you do
more exploring instead.

My advice is to instead do worldbuilding or some other creative hobby that has
only the creative exploration side.

------
stared
I have a similar thing - too easy to generate an idea, too hard to move them
forward. Some die after opening a code editor, some half an hour later.

First and foremost - if it is your style, try focusing on short projects -
something that can be done in a few hours. But once you decide, make a rule
that for 3 hours you stick for it.

For anything longer that one day, I try to find collaborators (otherwise it is
impossible). Importantly, they do not even need to touch the same parts of
code - it is enough that I get some stimuli from time to time. Even for things
that are day long, I try to move checkpoint-by-checkpoint, to have a sense of
completion.

...

In general, I really recommend diving in materials on ADHD, especially "Driven
to Distraction" [https://www.amazon.com/Driven-Distraction-Revised-
Recognizin...](https://www.amazon.com/Driven-Distraction-Revised-Recognizing-
Attention/dp/0307743152), this attention-jumping may be a symptom of larger
issues.

Another thing that is worth nvestigating - WHY do you quit? Is it like that
there are too many ideas? Or maybe being afraid of failure. (Vide
perfectionism & procrastination.)

On the other hand, I strongly object to some pieces of advice found in the
thread, in the line of "if you cannot sustain attention, it means it is not
worth it". Well, it might be true for the neurotypical population, but
certainly isn't for AD(H)D folks.

------
bbayer
After several years of struggling with side projects I found one thing that
motivates me: money. I don't even start a project if there is no possibility
of some revenue. %99 of ideas got eliminated immediately. Every people have
their own motivation though but having side income from a side project even
you are sleeping is different thing. I have limited time for side projects. I
always think I have one bullet so trying to use it wisely.

~~~
sciencewolf
This is certainly a useful lens through which to help you focus, but I've
found that I'm now ONLY motivated to do things because of the possibility of
financial upside. Have you encountered the same?

~~~
bbayer
Actually speaking yes. I spent a lot of time to think about it. Here is my
little thought process to keep my motivation;

Why am I working? Why am I spending my 1/3 of my time with my daily job. Is
career real thing or other words is it really necessary to make money? Does it
really matter to have high work satisfaction even though you earn little? I am
working because of money. Money doesn't bring happiness but it brings freedom.
At the end of the day what I need is freedom. It doesn't matter if I have
shinny career if I can earn same money with something else. I have limited
time and more money to become free. So I need to use my time wisely to get
more money to become free eventually. It doesn't matter if I am using shiny
programming language, technology or IDE. At the end of the day nobody will
give a shit about what I am using. Quickest is the best because I have counted
days in my life. I don't have time to learn new things every time I start a
new projects. I already know everything I need to make money. Learning is not
a goal but it is a reward when I become free.

------
tablethnuser
I keep a log for each project and write down the problem I'm trying to solve
followed by the idea I think solves it. If I hit a roadblock, I write that
down as the new problem. Now I have to solve that before I can pop the stack
and get back to the original problem.

On and on and on. I might be building a CI/CD pipeline for a simple web
extension cuz I've realized that manual deploys of it are boring and it's
keeping me from updating the project. Once that's done I return to the
original problem and geez it's annoying to work in this vanilla js project
structure. Let me just set up a transpiler and organize the project...

I call it extreme yak shaving, cuz you do things you could never justify in a
workplace, but it's my personal time and it's what works to keep me going on
side projects.

Better yet by forcing yourself to write down why you're blocked you can self
reflect on trends. I learned that when the dev experience gets too rough on a
project, I abandon it. So now I'm happy to pause project features to build out
dev exp. Very different than how I behave at work, where I guess the paycheck
motivates me thru the tough times.

~~~
shostack
Have you considered productizing some of these devops tools?

------
gchamonlive
How do you approach planning the projects? Do you just sit and start coding? I
can only guess what are the issues are with the information you provided, but
I guess you discard your projects because you are not invested in them. People
tend to stick to ideas they invested more time and effort.

I think you would attach more value to a project if you plan it first.

Use something to test your idea first. If by meaningful project you mean
something that others can use and solve a real life problem, maybe take a look
at The Startup Owner's Manual
([https://www.goodreads.com/book/show/13557008-the-startup-
own...](https://www.goodreads.com/book/show/13557008-the-startup-owner-s-
manual)).

If your idea withstand the first tests and you want to commit to it, describe
in general lines what is to be done, describe some general, doable deadlines,
maybe use a Kanban board. You should have at least an idea of the scope of the
project before you start. Do not think about a finished, polished product.
Think about something functional, that is shippable. You can polish it later.

------
edmundhuber
Have you tried journaling? It lets you get ideas out (adding or remixing ideas
from the previous days), without investing in getting a project up, writing
code, etc. A lot of times, for me, I just want to explore an idea and I'm not
actually interested in working through it. But if I spend enough days
journaling an idea and I'm still interested in it, then I go for it.

The other thing that's helped me is realizing that anything worthwhile is
hard. If you want to stick with a project until it's done, you're going to get
bored, you're going to run into roadblocks, and you want to cultivate a sense
of "this is what I want to do, and that is just a temporary issue that I will
work through".

Last thing that's helped me is finding a support group. I use irc,
specifically I hang out on irc.darwin.network (shameless plug, I kinda co-run
it), there I can chat with people about what I'm working on, they can ask cool
questions, etc, keeps the juices flowing and reminds me why a project is worth
sticking to.

~~~
Bekwnn
Re your first paragraph: What's funny is that I get almost the same effect by
avoiding writing ideas down. I find letting an idea sit and stew in my head to
be a good vetting process.

If I forget an idea, that's a feature of the system, not a bug. If an idea
survives for a while and I find myself coming back to it often, then after a
month of it being an idea I might act on it. At that point the idea is a lot
less nebulous and I have a pretty clear idea of where to get started and an
idea of where it's going to go in the future.

~~~
edmundhuber
For me, writing a thing down gives me the option to forget it. People are
different I suppose.

------
gfxgirl
I don't have advice but am looking for some along a similar vain. I've made
lots of projects in the past but now not so much and my fiction is that I'm
super jaded by which I mean since I have lots of experience I know all the
things I want to do are relatively huge projects and it's unrealistic to even
start and further even if I was to finish it's unlikely to be successful. Not
that every project has to be successful but I can't see investing 1-3 years
into it if I don't actually believe it it's likely to do well.

For a small project 1 - 5 days I there's no issue. Though often when I'm
finished I look back and think, "If I had spent that time working on something
that had more of a future then I'd also have more of a future". Success buys
freedom so when I don't pursue something with a future I have only myself to
blame for having to go back and "work for the man".

So, how do I get over that jadedness and as Shia Labeouf would say "Just Do
It!"

------
optymizer
The way I deal with this issue is by writing the idea down in as much detail
as possible.

I find that the process of writing gets the itch out of my brain and also
forces me to go through a planning phase before I decide to commit my time to
an implementation.

For example, if I wanted to make a game I'd write down the main idea behind
it, what game mechanics I would implement, how I would structure the
progression through the game, how it relates to other games, any technical
aspects that are relevant, I'd sketch out any visual details like a map, game
ui, etc.

I have a long list of semi-developed ideas I stored as notes in Google Keep
that has accumulated over the years - business ideas, games, tools, etc. I
have written prototypes for some, which was fun.

I find that most ideas need to simmer for a while. I'll often go back to add
more details to an idea, because I thought of something new. Those are usually
my best ideas, but also the ones that require the most time.

------
elviejo
I have the same problem.. too many ideas to develop... Shiny new technologies
to learn.

What I've done is:

1\. Just don't do programming side projects. Currently my side project is
making a couple of bookshelves for my house (Google pipe furniture). They are
easy to make, require very little tools, my wife loves them... And miss
importantly I have something to show for my efforts. So basically get a hobby
not related to programming, where you have to make things, preferentially in
service of others.

2\. My other side project is a small prototype to create a startup on that. We
have been working on that for 6 months (the longest I've worked on anything)
the key, for me, has been have a pair programmer. A junior dev that I can
mentor, while we work. I even pay him. I advertised it like an internship. So
I'm very committed to that project: pair programming for accountability.
Mentoring for social connection. Paying for financial commitment.

------
shireboy
Yes I have this problem. No I haven't found a fix. One thing I do is keep a
trello board of "product ideas". I have a couple hundred. I review them and
move the ones I feel are best by various criteria (ease to build, value to
others, income potential, etc) to the top of a "I Keep Coming Back to These"
list. I only allow myself 5 on this list.

Really, I should just allow myself 1, and focus on that. I'm just so bogged
down with day job and family life, I haven't done it. Some days I console
myself that I'm doing the right thing keeping a steady well-paying day job and
providing for the fam. Other days, I'm ready to toss it all and do my own
thing. What I hope will happen is a small break in day job where I can fit in
and focus on side gig.

------
Cymen
I need an end goal with actual people using what I'm making to be really
motivated. And having achieved that on some open source projects (one in
particular with tons of usage, now deprecated), I need some kind of personal
increase in value to hold my interest. Maybe that will change once I'm
financially independent but I think focusing on increasing value is a good
thing and value can mean different things (doesn't always have to be money but
often is -- there is some value from being one of the big contributors on an
open source project but, having been there, the value is typically seems to be
very low even if you have 1M+ downloads).

That said, deploy, maintenance and support can be a grind. I like the
challenge but your experience may vary.

------
jayfk
I’m the opposite. I love to work on side projects, often getting carried away
for several weeks/months until I finish them.

Once they are “complete”, I’m loosing interest and get carried away on other
things, often times I don’t even publish them anywhere.

If someone wants to team up on this, let’s chat.

------
mtrycz2
You sound like you like motivation.

"Motivation" is the "why?" of what you're starting. If you start a project and
exhaust the "why", it's ok to stop there.

Is it curiosity? Is it want to learn something new? Is it want to check out a
new technology? You could well answer these questions without actually
finishing a project (it the final project itself wasn't the original "why").

If you want some real life "why"s, you could check out one of the many
Covid-19 project aggregators. Here is an aggregator of such aggregators:
[https://covid19projects.now.sh/](https://covid19projects.now.sh/)

------
slothtrop
What hits me is a sense of meaninglessness.

I can be disciplined enough to stick with something as part of a lifestyle, or
whatever I find consistently rewarding, e.g. an exercise regimen and cooking
new things. When it comes to creative projects, I'll get to the point of
having a rough outline but often just ditch the rest. Particularly with music
more-so than writing, the pursuit feels pointless or unimportant, and I always
got the sense that the special catalyst with music is people, feeding off the
passion of other musicians. I tend now to skip the BS and just go straight to
composition since that is the aspect of music that most interests me.

------
gwbas1c
(Apologies for being glib, and apologies for not being the exact answer to
your question.)

Don't date, don't marry, don't have kids.

I approached my relationship, and later my family, with the same zeal that I
approached side projects. As a result, I have very little time for side
projects.

What does make a successful side project for me, is approaching it with the
goal of learning something new, not finishing it.

Every other year or so I get really into something, but I've only finished one
thing that had a very short-term result, It was a simple experiment where I
wrote up results instead of trying to have a tool, framework, or product.

------
james_s_tayler
What if... Not finishing things was the norm?

All of us in the same boat act as if there is something wrong with us such
that we can't finish things.

If you layed out every one of the data points on developers side projects,
what would the aggregate say?

Would it say that 80% finish their projects through to completion and there
are this 20% who just can't ever seem to?

Or, would it say the opposite? That people who actually have completed
projects are somewhat rare?

I'd be interested to see. My gut tells me finishing things isn't normal. The
economics of it seem to be tilted in the favor of starting and strongly
against finishing.

------
rjspotter
I'd suggest you try spending a little more time up front defining the what and
why of the project before you start. If you don't define what winning looks
like ahead of time it's easy to quit 5 minutes in when you're confronted with
making tradeoffs but, don't have any context to under-pin those decisions.

Additionally, don't start with big hairy audacious side-projects. If all
you've ever gotten to with one project is two days. Define a project that will
teach you something that you think you can finish in three days.

------
WheelsAtLarge
You are looking at the situation from the wrong angle. Frameworks and
languages are tools you use towards solving a problem. In the same way that
mechanics don't spend their days wondering how they will use their wrench but
rather what tools they need to fix an engine, you need to focus on a problem
that needs fixing. Find a problem in some subjects you like and fix it.

Also, make a plan so you see an end. Doing something without figuring out when
you will quit is a sure way toward quitting before you get anything
accomplished.

------
sebringj
The only reason I completed a side project was because I had people that I
cared about that wanted my side project done to help them out. In other words,
I had social motivation and collaboration. For me, going completely alone on
something is much more difficult because its like the tree the forest making
no sound (perception) if no one is there to hear it. It doesn't seem to have
that connection or impact of meaning unless I have others that care that I
have direct interaction with.

------
houssem_fat
Having exactly the same issue here, i have been working on many software side
projects since a while (for 7 years now) and never launched a successful
product. For the most of ideas i built about 30/40 % of the platform (user
management, profile, authentication, backend apis, emails, architecture,
messaging systems, dockerization, other stuff, blogs ...). For me the real
obstacles (and what make me give up) were how to put the key features that
make my solution better than others. I feel motivated and very exicited for
some time but then it collapsed because i need to digg more for the best
solution. Examples: 1-how to add e2e video/messaging encryption to an
appointment medical app. 2- how to use sms alternative solution to web/mobile
apps for farmers who don't have internet connection without using other third
parties. 3- build a learning platform for kids but figure out how to provide
the cheapest computer solution (raspberry based maybe) because these kids
cannot afford a computer. I learnt a lot from these projects both in technical
and business aspects but i still feel the imposter syndrome every time i talk
about my ideas or when i see another solution similar to my idea who works
just fine. But i'm sure that hard things need more hard work. Thank you for
this thread.

------
redmattred
A few techniques that have worked well for me:

\- Scope the project down to a size where you can achieve it within a week.
Launch it and either let it take on a momentum of its own if others are
interested in it (which will motivate you to do more work on it more). The
initial version of your project could be as simple as a vision statement of
what you want to achieve.

\- Have a personal backlog where you can put ideas for other projects you're
interested in working on. Resist the temptation to just jump into your latest
idea and instead write about it. If its a compelling idea you will return to
it. If not let it be a passing idea.

\- Practice personal Kanban where you limit yourself to X number of concurrent
projects. Wanting to work on a new project can be good motivation to finish
your current one.

\- Team up a collaborator to help keep each engaged, interested, and
accountable.

\- Find ways to create artificial deadlines for yourself. That could mean
signing up to do a lighting talk at the next meetup, scheduling a meeting to
get feedback with an end user or person advising you, etc.

\- Relax and enjoy tinkering for the sake of tinkering. Even if you don't
complete a project you're still learning something from the experience along
the way and sometimes what you learn is that you like the idea of a particular
project more than the reality of what it means to work on it

------
zenhack
I struggled with this for a long time, I think a lot of us do. I don't know
how broadly applicable my story is, but: at a certain point I basically
cracked and picked a project and said "I'm going to finish this if it kills
me." It was one of the larger-ish projects that I'd made a bit of progress on
and put aside. The project became an exercise in finishing things, which
helped motivate me through the times when I wasn't really interested in the
project itself.

It took me longer than I care to think about to complete it. I think by the
end I was pretty clear with myself that I wasn't really that interested in the
project itself anymore; the point was to learn to finish something.

The result is here:

[https://github.com/zenhack/haskell-capnp](https://github.com/zenhack/haskell-
capnp)

Somehow this actually worked, and I've found myself not having that much
trouble sticking with projects when I decide I want to build something. Most
of my 2019 hacking was on a new programming language, which is "close" to
being ready to announce (the code is up there if you look for it, but I
haven't been too loud about it since I don't know what I'd tell someone if
they showed up and wanted to help), though Sandstorm got active again and
that's diverted some of my time. ...and I've been hacking on Sandstorm pretty
consistently since.

Keeping myself organized and on track is still a struggle, but something
shifted and sticking with something long term doesn't seem as hard.

------
beetwenty
I found my way out.

The thing I had to do is to find some _themes_ that I am idealistic about and
stick to those. The project is just a mode of exploring the theme, which means
that each project and my skillset grows as needed to accommodate. The projects
you are describing are completely non-thematic and are just bundles of
features, so of course there's no structure to them, no reason to keep going
and seeing what's next. And you are probably not money-and-sales-motivated,
which is the thing that drives a lot of obvious business ventures.

The first step in finding the theme is in "knowing thyself", of course -
strengths, weaknesses, inclinations. Write and rewrite the set of things about
yourself that is maximally coherent and self-reinforcing. Then drive down that
road as far as you can go: What types of projects does that support? Gradually
you'll hit on a common theme, and then you can really start building.

Another way to force this along is this art advice: "Draw the same thing every
day." This is a rather crushing challenge to take on, for no matter the
subject matter, you'll tire of it, but it quickly brings out your inclinations
and therefore the themes you want to work with.

------
bakhy
I've had lots of ideas like that, things I'd like to do which I never get
around to. The one I did go through with and still keep working on it on and
off is the one that had a connection to my job.

I worked on a very concurrent system and thought maybe STM would be a nice fit
for it. I found the concept of STMs very interesting. And I noticed that,
although there were many implementations for .NET, all were one-off projects,
not maintained, and in my opinion not very nice to use. So I ended up writing
one myself.

I guess that sweet spot for me was having a problem that I dealt with on a
daily basis, which gave me the drive and a clear picture of what I'm trying to
achieve, and the fact that it was a fun challenge to implement and a learning
experience related to a concept that intrigued me. The other ideas I had would
mostly have just that second part - they're fun, challenging, but not really
solving something I deal with too often.

So, I don't have much experience, I don't have many side projects, but for
what it's worth, my advice is to try to find something in your day-to-day
which bugs you, and for which you have some interesting idea that you'd like
to experiment with.

------
davidyu37
It's great to see so many people sharing the same challenge I have as well. As
developers, we always want to build things. Things we find interesting. Maybe
we "finish" some of them. Maybe we don't ever finish something because there's
always improvements to be made.

"Meaningful progress" also is hard to define. One day you feel it's "save
humanity level" meaningful. The other day is just lines of codes that don't
work.

Some companies like JotForm evolved from a side project, but not all side
project will become an actual business.

I think the reason why we even call side project a side project is because we
have options.

It's ok to fail. It's okay to explore, experiment, and create. As long as it
doesn't deeply offend your core values, side projects are supposed to be fun.

If it blossom into something that you can't ignore, then you will come back to
it no matter what.

I wrote an article back in the days when I documented why I couldn't start a
side project here: [https://medium.com/swlh/this-is-why-you-will-never-start-
tha...](https://medium.com/swlh/this-is-why-you-will-never-start-that-side-
project-dd5d7df9cae5)

------
billjings
I've been in the same boat my whole life. But I'm currently working on a side
project, and I've made substantial progress on it.

It arose as a natural fruit of a daily writing practice I instituted. That
writing practice itself came out of a couple of things:

1\. I owned my desire to create something. Instead of guilt tripping myself
for not writing, imposing the "If you only had your shit together like
everyone else, you'd etc etc etc" line of thinking on my behavior, I honestly
looked at myself and said, "You know, this bothers you not because you're a
bad person who can't get anything done, but because you want to write. If you
decided not to write anything, you would still be a perfectly fine person and
you could live a happy life."

2\. I let go of the creative process as a way of achieving outcomes I wanted,
and embraced it as a way to happily spend my free time and make things that
satisfied my own standards.

A couple of months into my daily writing practice, it somehow mutated into a
programming project. My programming still operates within the conceptual loop
of my writing, but I suppose it could have turned into anything else.

My advice would be to reflect on what you're doing moment to moment and build
a narrative around it. Sometimes it can be invaluable to just write down what
happened: "Well, I was working on this roguelike in Rust, but then I saw some
blog posts about Common Lisp and decided I'd write a graphical solitaire game
in CL." And from there you can understand _why_ it is you are doing what you
are doing, which will probably be more effective than castigating yourself for
doing what you're doing.

------
tverbeure
Two things have helped me with that:

* I started blogging about my projects. And I try to keep a pace of roughly 1 blog post every 2 months. * I have a mix of on-going long term and short term projects.

(I've also submitted talk proposal for long term project for a conference even
though I had barely started that project. It got accepted. The fear of a
public failure was _very_ motivating! I don't recommend it.)

Forcing myself to write something every 2 months automatically results in the
need to do some short term stuff as well. 2 months ago I made simple how-to
video about how to solder with enamel magnet wire and all the tools in my home
electronics lab.

This weekend, I spend hours on disassembling, photographing, and measuring the
signals in a smoke detector with an expired battery. (Writeup WIP.)

These are all things that only take a day or two to complete.

Meanwhile, I have a project ongoing to convert an FPGA-based thin client into
a retrogaming machine. I work on it on and off. Sometimes it's idle for
months, and then I pick it up again for a few days. I don't know if I'll ever
complete this project, but it's all hobby stuff anyway, so there's no
pressure.

------
dutchblacksmith
It's normal, just count the comments on this post. You have learned a lot on
this "never finished" projects. Thats nice. Sometime along this road jou find
the right project and make it work. Keep the projects (or parts of it) small,
make a working mock-up fast and keep expanding it. I just finished a project I
started 10 years ago and havent worked on it for several years. That feels
really good.

------
realgabriel
You can approach your problem from the other end. How can you best choose side
projects, so that the ones you start are the ones with more chances to get to
a satisfying conclusion.

I wrote about it this week on my blog: [https://filipesilva.me/blog/how-to-
choose-your-next-side-pro...](https://filipesilva.me/blog/how-to-choose-your-
next-side-project/)

------
vinyll
As many I experiment the same with __some __projects. Though I 've been
working on a side project for 7 years now!

The difference? It's purposeful to me and a long challenge for be and the
foundation that needs it. Because people depend on the work I do, I must do
it. Because these people can't do it, I must do it. Because the purpose they
serve is something that means a lot to me too, I want to do it.

------
LeoTinnitus
I've found keeping a spreadsheet of a lot of tasks and how they're related
helps. So say you have 3 projects, all with varying types of task. I would
make the spreadsheet as follows:

Due Date, Goal Date, Project (or class if student), Assignment, Status.

Due date is definitively when I need to achieve it by (this can be artificial
if you want). The goal date can change as my day/week gets hectic so I adjust
according to the miscellaneous things that are impossible to account for.
Project is like the Grouping of all tasks below it. Then the tasks are the
incremental things that need to be done in order for the entire goal to come
to fruition. Status tells me if it's completed, partly, or not.

This has helped me because if I'm feeling very committal one day, I can just
crush a lot of stuff out. Then I can go "Well looks like I have a week before
I have to get that done" so then I can freely budget fun time. It keeps me on
track and helps me with balancing pleasure and work.

I've recently started tracking my hours too. It's weird but I think it helps
with showing you how much you screw around when you work from home.

------
mrfusion
I think it would really help me to have a partner in any project I do. Someone
to hold me accountable and to be excited about breakthroughs.

It’s just so hard for me to motivate myself. I used to think this was a
failing of self discipline. But working with people makes things fun.

Look at the show “the office”. They thought of the most boring, unfulfilling
type of work but it actually looks fun to work there. It’s all about the
people.

~~~
brudgers
What projects are you working on?

------
karterk
Since so many people are sharing their story, I will share mine. 5-6 years
ago, I started working on Typesense
([https://github.com/typesense/typesense](https://github.com/typesense/typesense)),
an open source, typo tolerant search engine designed for speed and developer
productivity.

In the past 5 years, my journey has brought me through my wedding, the birth
of my first child, losing a loved family member, a job switch and so on.
Nevertheless, it has been really great seeing the project gain traction and
motivate me to keep working on it through the highs and lows. Everybody
differs, but I think for me the following 2 things kept me going:

a) Pick a project that you are sufficiently motived.

b) Don't set deadlines but have a plan to work on the project everyday. One
some days it will be hours, on other days it will be just thinking about a
problem at the back of your mind for a few minutes, but the idea is to keeping
at it.

Now nearly 5 years later, I'm still not done yet but I'm amazed how much I've
achieved by just showing up every single day.

------
GhostVII
I find it much easier if I pick projects that I actually could benefit from.
For example I started working on a note taking app a little while ago, because
I couldn't find one that I liked. I know I will probably not get a complete
return on my time investment, but it keeps me motivated to finish since I know
I can make it exactly how I want and end up with a product perfectly suited to
me.

~~~
nukst
That sounds obvious but goes completely unnoticed, and it's very smart. A good
part of what keeps me motivated to work on something is believing in the
solution. This line gets a little blurry when it comes to games, but the only
way for me to mitigate that is to make games I would play.

------
totemandtoken
Maybe try to stone soup yourself. Start a project where the bare bones can be
done in a couple of days but the possible features to add are unlimited. For
me, there's this implicit calculation of opportunity cost. Like, if I work on
this, I can't work on all these other interesting things. But if you switch
your mindset to "working on this will help me work on all these other things,"
that opportunity cost disappears.

For example, just the blockchain data structure (not a full cryptocurrency,
just the data structure) is relatively small and doable. Maybe a tiny
perceptron or autoencoder. But there's a lot of opportunity to make something
with even such small toys.

And don't be afraid of making something that isn't a "true" or "real"
whatever. Yeah, it's not a "true" blockchain but it was toy to test your chops
on.

Also, whatever you do end up doing, regardless of whether you finish it or
not, write about it. Just a paragraph or two of what you were trying to do,
how far you got, what made you lose interest. Informally as possible.

------
sodafountan
I understand this isn't exactly what you're asking for as it seems like you
burn out on the idea before you even get to the implementation but I've found
that for coding projects, keeping my code clean really helps to motivate me to
stick with the project.

If I'm building something and the code gets messy I increasingly feel
frustrated while working with it which turns me off from working on it -
somewhat of a negative feedback loop, so when I start to feel like the code is
a hassle to work with, I switch gears from writing features to refactoring the
existing code-base.

This gives me a nice change of pace, lets me think a little bit differently
than simply "add features", and when the refactoring is done I have a much
more thorough understanding of the code I've already written and what needs
still needs to be done.

It seems like a pretty simple and obvious suggestion but I can't tell you the
number of times I've let a personal project become unmanageable just because
I've wanted to keep adding features which at least for me leads to burnout.

------
raslah
This was me big time. You sound like you have more experience than I did at
the time, but what finally made it click for me was taking CS50 on EdX. Not
that you should take it, but that it exposed what was holding me back. Any
challenge I made for myself I would end up saying 'screw it' when it got
challenging because internally I'd think that maybe my idea was messed up
somehow. CS50, which I only made it thru 5 assignments, exposed me to having
to stick thru a problem, possibly for days until I got it. I felt pressured to
complete them because I saw that my classmates were completing them and that
told me it was doable. After that, something in my head changed and for the
first time I was able to complete my own projects and enjoy that feeling when
you build something you came up with yourself. In other words try to get
experience sticking thru challenges. Try leetcode or hackerrank, those sites
have advanced problems that might crack that cieling for you if your problem
is the same as mine was. Just my experience.

------
ollerac
In my experience, switching from task to task and not being able to maintain
focus is a minor form of burnout.

It takes energy to stay focused for a long period of time.

My advice: take a few months off. Let your mind wander. If you come up with an
idea, let it go if you can. If you come across an idea you can't let go of,
even after multiple days or weeks, then maybe you're ready to commit to it!

------
ishjoh
What works for me is a step I find most people like to skip and that's
planning.

As a number of other folks have said, if you have small things then you're
more likely to get them done. Often though you'll need a bunch of these
smaller things to make a product that someone might be worth paying for.

So what I do is I plan the project out into modules or blocks of functions
that take a few days at most. I know for myself I take great pleasure in
crossing things off lists (this is literal, I write things down in a TODO and
physically cross them out). To me it's satisfying to see the list get smaller.

Seeing the list get smaller, and knowing there is an end, keeps me motivated.
Now I still have moments where it can feel like a grind, the worst seems to be
when something is just over half done. That's when it's the most important for
me to tell myself, well I'll just work on this one thing and I grind through
it. Then when I'm about 80% there, that's when a lot of motivation comes back
to finish it.

Hope this helps.

------
alexashka
This happens when you know little and yet you aren't aware of how little you
know.

As a kid I self-learned photoshop and always struggled with coming up with
projects to do with my knowledge.

Little did I know photoshop is a _tool_ , not an end.

Web development is a _tool_. If all you know is how to hit with a hammer, it
is pretty hard to make good use of it. You need to learn how to build a house,
then your knowledge of a hammer will become a useful _tool_ for accomplishing
a well defined task.

Knowing how to build a house is much more difficult and isn't a 'side project'
for most people. Hence the solution to your problem is realizing how little
you know, how much it would actually take to create anything remotely useful,
and moving on to learning something easier that'd have an actual impact in
your daily life, such as exercise, a new hobby that'd foster new meaningful
relationships, etc.

One last thing - if your motivation for a side project is money, you're
kidding yourself - just go enjoy your life :)

------
joepour
I write a blog ([https://nichesaas.co](https://nichesaas.co)) about ideas for
SaaS Products. The reason I started the blog is because so many developers I
know struggle to come up with _good_ ideas and stick with them.

Some things that have helped me and my friends in the past:

* Set yourself achievable goals or milestones so you feel like you are making progress

* Accountability is also a great way to stick with something. Tell your colleague you'll send them a link so they can check it out and then commit to putting it up.

* Choose something you're interested in.

Often the hardest part is starting. One trick I used in the past was put a
syntax error in my code. I would also leave a comment there with a small task
just to get into it.

    
    
        e.g // implement GetUser()
    

That way when I sat down there was a small task to complete to get my program
running and before I knew it, I'd been hacking away for a couple hours.

------
_hardwaregeek
Get the stupidest thing done and finished. I started my compiler with waay too
much ambition. I planned out a Hindley Milner type system but with row
polymorphism. I planned out the entire syntax, records and all. But I didn't
actually have anything done. I spent so much time trying to think about how to
implement x feature or y feature because I thought I should get it all done at
once. It took me maybe a year to figure out that I should just get the
stupidest thing working: arithmetic from parsing to code gen. I had resisted
this because frankly there's a million tutorials online about making a
calculator compiler. But who cares? It doesn't have to be original. It needs
to be done.

Also only learn one new thing at a time. Don't make a side project where
you're learning to write a compiler in a language that's new to you. That's
two new topics and therefore infinitely harder.

~~~
imtringued
The unpredictable schedule of a personal project means that you can't have
unfinished work over long periods of time. You have 2 hours today. Get the
smallest thing done to satisfy your goals for today no matter what it takes.
You can always do it better in the future because there is no boss that
interrupts you and tells you to work on feature X.

------
cityzen
I am fortunate that I can think of ideas pretty quickly but I get overwhelmed
with what tech to use. If you can just standardize on a platform you know, set
your ego aside and use that. You can always iterate a working project but you
can't do anything with unfinished work.

If you want to learn new, shiny tech, do small proof of concept projects and
consider if they bring any value to what you've already built with what you
already know.

Aside from that... you just have to do the work!

A book I've really enjoyed for my motivation across not only work and side
project but also life in general is The Obstacle is the Way by Ryan Holiday:
[https://www.amazon.com/Obstacle-Way-Timeless-Turning-
Triumph...](https://www.amazon.com/Obstacle-Way-Timeless-Turning-Triumph-
ebook/dp/B00G3L1B8K/ref=sr_1_2?dchild=1&keywords=obstacle&qid=1586190747&sr=8-2)

------
joeberon
I have this and it's caused a great deal of stress in my personal life _and_
work life. Basically I get excited by the idea of a new thing or project, but
within a week or less I am totally and completed bored by it. There are very
few times I've managed to keep continuously working on the same thing for a
long time

------
awake
Instead of thinking I want to make this then immediately coding I would take a
step back and write/design what you are about to make for a couple of sit down
sessions. Writing and design work are much easier to throw away and start over
with than code. When you do start to code try to write the bare minimum of
code which lets you play with your tool. Keep a running list of ideas you have
as you are making the project. These help keep the motor running when you want
to stop later on. Also always keep a document tracking where you were when you
put the project down. What problems were you fixing? What is up next? Even if
you leave a project for a couple of months having a context building document,
an inspiration list, and design documents should be enough to help you pick
the project back up. Also if you never finish that's totally fine. It's a
process.

------
ErikAugust
Do you need to stick with it?

Side projects are a good way to harness raw energy to learn a lot of things
hands-on in a rapid amount of time. But it also might be a good thing to not
continue to venture deeply down a path just because you have started
something.

I have multiple personal experiences where I have tried my best to develop my
side project (or part-time business) into a full-time business - with less
than stellar results. Yes, I have built a tool or service! Yes, it works and
provides value! Yes, people will even pay for it! But can it pay all the
bills? Is it worth the stress? Is it even the right tangent to be on, as a
business?

In addition you have financial costs and there's can be a massive opportunity
cost (years of effort) to "sticking with it". Holding your cards when you
naturally feel like folding may not be worth it either and it often takes
years to find that out.

------
csallen
Throw some extrinsic motivation into the mix. Intrinsic motivation is great of
course, but it's fickle. Your internal emotional state changes like the wind
depending on what's going on in your life, what time of day it is, your mood,
and even what you've eaten.

Extrinsic motivation is usually more fixed and reliable. It's what drives much
of human productivity, and is responsible for the major miracle that is
billions of people waking up and going to work every day to do things they may
not even enjoy.

Some common sources of extrinsic motivation include obligation to people (a
boss, a partner, an audience, customers, users), social consequences (shame,
embarrassment, letting others down), and monetary consequences (getting fired,
losing a bet, etc.). On a more positive note, there's also encouragement from
people, social rewards, and monetary rewards.

------
toohotatopic
Do you have the determination to read all those answers and identify the true
ones? How do you know which ones are true? Finishing projects is the natural
state of mind. The reason why you don't finish is the idea that is most
repulsive to you, the idea that you try to avoid the strongest.

On the other hand, a comment can also be repulsive because the idea is really
bad. How do you know the difference?

That said, my advice to you is: _pick a customer_. Why would _you_ write a
graphical solitaire game but for the joy of programming. However, that joy
doesn't need a target, there is no need to finish.

If you write something for somebody else, you are out of the loop of
questioning what you like best. Then you are free to pursue that goal without
being distracted by the whims of your desires.

When you choose your customer and the project, maintain the basics,
especially: pick an achievable goal.

------
yizhang7210
1\. I personally find it easier to work on things I'm passionate about. So I
think you need some kind of motivation to keep you going. It could be that you
want to show it to your friends, or it could be you dream the possibility of
turning it into a business.

2\. You mentioned that you'd like to learn a lot more on languages and
frameworks. Presumably you need to actually do something relatively
substantial with the language/framework to learn it to a reasonable level? So
for me personally some of my personal project I did were purely for learning.
I think that's another motivation that can keep you going.

3\. You talk about finishing project. I don't know if any project can be
"finished". So I think it's okay to recognize that you want to leave a project
in a particular state and move on and not feel too bad about it.

------
alexmuro
The best thing that you can do to give a project legs is to get other people
involved. Even if you don't have someone who can work on coding with you, just
sharing it and enrolling other people in your vision for a project is the
number one way to give you the motivation to continue working on it.

~~~
RMPR
This is true, the feeling that someone is depending on your work can give you
the necessary boost to actually finish, or at least reach a polished enough
version.

------
Insanity
There's a benefit to finishing things, but there's also a benefit in quitting
when you're bored.

You don't need to finish a frontend for it if you get bored halfway through.
Hell, you don't even need to finish the entire app if you think of something
else to do with Haskell. You'll have learned something from the todo app even
though you didn't finish. And pushing through might have just put you off of
the entire thing.

That being said, I do think there is value to actually finishing things. It
will allow you to learn about the entire process.

I'm developing a Godot game now. I'm done with the logic of the game, but I'm
pushing through to publish it on an app store. Just to have gone through the
entire cycle of 'polishing for an app store' even though the actual
development was my main interest.

------
klodolph
Hard deadlines. 48 hour game jams are great. Take Friday off from work, make a
game on the weekend. If you miss the deadline on Sunday, you _failed the game
jam._

For me there is usually a point about 24 hours in where it seems like a
hopeless amount of work, that I’ll never finish. However, I push through, and
keep working, ruthlessly prioritize, cut every feature I don’t absolutely
need, and finish making the game.

The game itself is not a side project that I stuck with, but the experience
helps. Having the experience of “pushing through” and finishing a project with
a specific goal is the real takeaway. Next time I’m stuck on a personal
project, I can remember pushing through the game jam project and getting it
done.

And finally… I only finish something like 5% of my projects, maybe. Don’t try
to finish a project just because you started it.

------
qaid
I was in your situation a few years ago.

I “found my way out” when I created a project that I really cared about. It
scratched multiple itches and I was constantly finding new ways to improve the
application. It got the the point where I had to create a backlog for
improvements I wanted to see.

My mind started to wander and I started thinking about my newfound
organizational skills. I started the high-level design for a tool to organize
my scatterbrain. Thankfully, I decided to just keep it in my backlog and
continue on what I was working on.

td;dr: 1\. Add projects to backlog 2\. Weigh benefits of each, rank them 3\.
Work on #1 project 4\. (Optional) Set a deadline to re-evaluate priorities 5\.
When new ideas pop up, add to backlog. Fill in as much detail as possible. The
goal is to do a braindump and get back to what you were previously working on.

------
zw123456
Why stick with it? My view is that the main purpose of side projects (for me
anyhow) is to learn and improve my skills and to open up to new ways of
approaching things. But even if your goal is to work it into a side business,
I still would argue that sometimes sticking to the same side project too long
can be a bad choice. I have a fried who worked on the same side project for 7
years and I think it stifled his creativity because he was always focused on
the same narrow set of problems associated with his project.

I am simply suggesting it is possible to go too far in sticking to the same
side project. For me I usually consider a side project has run it's course if
I have learned as much as I needed to on it and then I try to move on to
something completely different.

------
markus_zhang
I have the exactly same situation and I also made a half ass engine for a 2d
rpg with a map editor.

I don't know what's happening, but whenever I'm pushed to do something, either
by my parents or my boss or anything urgent (say I have an interview in a
week), I'm suoer focused and can get tremendous amount of work done in a short
period of time.

However, whenever I set up a target for myself, out of curiosity or interest,
anything non urgent, I'll just do a half asd work for maybe a few weeks and
then never get deeo enough to learn or show anything important.

This really summaries my life since day 1. My dream is to have someone
pointing a gun at head and say "learn this or die" and I'm sure I can finish
it nicely and quickly. But in real life I don't have this kind of luxuries...

~~~
imtringued
This probably has something to do with human nature. People want to be useful
to others and feel like they are a necessary part of society. This is a pretty
common argument against UBI. A lot of people actually want to work at their
current job.

~~~
markus_zhang
Yeah I totally agree. I need to be useful to other people to feel happy and
maybe I should be OK with that...

------
iKevinShah
Definitely not an expert in this but I have found that the bigger the aim,
greater the tendency to nope out of it (for me).

So one way of going around this is keeping short, simple, achievable-today
goals.

Example Target: I need to develop a CMS.

New target: Need to create that one method which will do X and return boolean
value.

Once that is done, on to next.

------
formalsystem
I think it's totally OK, normal and beneficial to want to experiment with
different applications.

The main issue is after a few years you may feel like you have nothing to show
for it and the best solution to that feeling that I've found is to document
what you've learnt in a blog post. Over time you'll end up with a large
personal knowledge base on which you can draw on when you want to and actally
can finish a complex project. You'll also attract the right kind of people
that can help you by putting your thoughts down in writing.

The idea is you want to slowly build yourself to be the kind of person that
can finish a complex project in a weekend and the best way to do that is to
constantly be in the high payoff space you get when you're learning something
totally new.

------
madoublet
Yes!!! My way out was to not focus on the product, but focus on my personal
benefit. I asked myself "what do I want to learn?" not "what do I want to
build?".

Recently, I completed a Shopify plugin ([https://apps.shopify.com/simple-
pages](https://apps.shopify.com/simple-pages)). I wanted to learn more about
the platform. I researched it a bit and found a problem that I thought I could
solve. Each step along the way (setup, build, approval) was painful. But each
time I focused on my personal benefit. For example, when the app got rejected
a few times, I convinced myself that I was learning about what Shopify was
looking for in plugin vendors. This kept me going until I saw it through to
the end.

------
gurtgurt
This is definitely a common issue everyone struggles with. I've noticed a lot
of it stems from constantly changing my mind and self doubt during the dev
process (like you mentioned, you start off building a roguelike, switch over
to a solitar card game, switch over to a isomorphic strategy game).

Something that helped me a lot is first spending more time than I think I need
figuring out what I want to build on a very high and broad level, and not just
diving into coding. Once I figure out what to build I need to have the
discipline not to change what I have decided to build. Some implementation
details might change or some game mechanics might be tweaked, but on a high
level (am I building a roguelike or solitar type) can't be changed once I
start.

------
Oxin111
I need to say I have exactly like you. I was unable to finish anything though
many years. Than 1,5 year ago finally everything changed. This is by small but
significan tchange. I choose for myself subject that is big enough that a lot
of experimentation can fall under it and specific enough that all experiments
have common denominator. Single guiding idea. For me this was enabling my
father to create application (emotional importance! we are all animals after
all. btw. he didn't care. I cared.). Since then I'm experimenting with new
stuff and doing the thing that interest me but this theme is always there.

I'm doing tests of different stuff, writing prototypes, all good stuff. First
there was more strategy and later there is more tactical planning and
execution but I still more do what I feel I want to do right now than follow
so roadmap or something. I sit down and think what I want to do right now and
I write myself one post-it with tasks to do, stick it to laptop next to the
touch pad. Than I do this fully or partially and than new post-it. I think
that my mind is telling me the place of maximum development for my level of
skills and I keep faith that this path will take me to some destination that
is original.

After 1,5 year and 3 throw away partially working prototypes I have something
that is quite cool I have something like creator to generate application for
production systems. I discovered my own cool frontend architecture. Thinking
about everything from first principle and go to place of interest giving
really cool results in retrospect.

No I'm a bit forcing myself with last 2 post-its because I have company that
want to use this system and I need to finish details that I didn't care about
to do because I was going around it. But now when I see it almost finished and
useful somehow it goes easier.

Soul of the explorer is a great gift, no need to change it.

Generally for me 30 yo it was mark of stopping being my own enemy and started
things that I always wanted. To this time I was just doing this random stupid
stuff and thought that it will all fall together. (Disclaimer: It did).

------
voidhorse
I struggle with these tendencies too. For me, I think it usually stems from
being interested in the _product_ not the _process_ \--that is, if I could
snap my fingers and immediately produce what it is I was envisioning (even
though that initial vision is usually fuzzy) I'd do it.

I think people who can stick with things long-term enjoy the _process_ of what
they're doing at least on some level. What enables them to stick with
something is not the goal post, but the _activity itself_. They're motivated
to spend x hours a day building a roguelike not only because they're driven by
the vision of what they're going to produce, but because they genuinely have
tons of fun and get tons of satisfaction from the _activity_ of writing a
roguelike and solving the problems that arise in that domain.

Personally, I've found that this love and enjoyment of process is usually an
acquired thing. It's just like going to the gym. Once you make it a habit it
becomes easier and easier and you become so dependent on the rhythm and little
boosts you get from going to the gym that your dream body or whatever
initially got you in there pretty much becomes irrelevant—it morphs into an
activity that's fundamental to your way of life, you _need_ to do it, you
become dependent on it.

I've found that sticking to intellectual pursuits long-term is analogous to
going to the gym. If you force yourself to be consistent and to show up every
day and commit some time toward your project, you'll soon come to love the
process and it'll be much easier to see it through to the end.

It's incredibly hard but really important to resist the idea that you can
bring your grand visions into fruition within a short span of time--it just
doesn't happen, and it's these sorts of fantastic expectations that lead to
eventual disinterest and burn out. If you're constantly chasing the finish
line and fire up all cylinders to get there as fast as possible you'll never
make it, but if you run for the joy of running and do so consistently you're
guaranteed to get there eventually (the tortoise and the hare).

~~~
imtringued
What you have described is just plain old discipline. I think the reason why
side projects don't result in discipline is that they are just something you
do when you have time for it. Work usually has a fixed schedule and any
variable events are scheduled around work. Side projects tend to get disturbed
by variable events and inevitably are delayed.

------
tunesmith
For me I think I just learned to stop being hard on myself for not finishing.
They're side projects, you don't owe anything to anyone. I've also found that
as time has gone on, certain side projects have remained compelling to me even
after getting burned out on them the first time. Some of them I've eventually
gotten back to, gave up on again, and then gotten back to. Before long it
becomes clear that it's not that I'm perpetually undisciplined and lack
follow-through, it's more that I've made slow and steady progress on those
projects over the years.

Only other advice I can give is that when picking a side project, find
something where the process is as enjoyable as the outcome.

------
elorant
For me the best way to stay focused on any given project is to find clients
for it. Even if it's just a handful. If you know that there are people out
there willing to pay for it, even if it's ramen money, you have all the
motivation you will ever need.

------
Beefin
Keep an idea log and assess it weekly. I have a trello Ideas board with the
columns: \- Concepts (stream of conciousness) \- Promising (have given it some
thought, and could be interesting) \- Validated (have validated it in some
way) \- Building \- Shut down

~~~
raibosome
I do exactly this!

------
coss
My friend said if you are having a hard time finishing a book, it's probably
not a book for you.

Same thing applies. You gave up on these because its not right for you. Once
you find someone worth spending your time on you'll stick with it. Keep
looking.

------
johnmoonyy
This is how I was with side projects for a long time. I'd get excited on a
project, work on it for several months, then be lose interest and stop working
on it.

I changed my approach after reaching The One Thing. It helped me set a goal
(work on it until July no matter what, and if I don't get any sales, it's time
to move on) and i've been working on it 2-4hrs a day.

Every since, September 2019 I've been working on (For A
Piece)[[https://www.forapiece.com/?ref=hackernews](https://www.forapiece.com/?ref=hackernews)].
This has been the longest i've worked on a side project and I'm really proud
of that.

------
mnault000
You know, I went through this a while ago. As a side idea, I always wanted 1)
an online double-entry accounting system (so i could update my bookkeeping
from anywhere in the world). And 2) I needed a self-hosted site where I could
put anything from my kid's photos to my tax records.. ONE PLACE to look for
anything. You can see my site here: [http://parallax.dns-
cloud.net/praetorian/](http://parallax.dns-cloud.net/praetorian/)

My point is, go slowly. Just like a game you enjoy playing but get fed up
after too long, put it aside; knowing you'll come back in a while with a
renewed drive :) Cheers!

------
reinkaos
I would suppose this is a very common struggle among IT professionals. A few
things that have helped me, some of them already mentioned in this thread:

\- simply don't do it; prioritize more important ideas.

\- start smaller - some ideas are just too ambitious, try to come up with the
smallest end product that is still useful.

\- don't talk about it - just by talking about what you are planning to build
gets you a small dopamine release, discouraging you from finishing the
project.

\- scratch your own itch - create something that will help solving a problem
you face frequently.

\- get other people involved - invite other people to collaborate building or
just using it so you have people to hold you accountable.

------
alexwatson405
To quote the great Jean Luc Picard, pick "one impossible thing at a time".

I also find myself going in a lot of directions, and I've found that picking
an idea and sticking with it, until it fails or works, is an achievement in
itself.

------
bobblywobbles
I think you need to ask yourself why you feel like you can't complete
something. When I hear you say this yourself, I feel like you may struggle
with too many good ideas or a lack of discipline to see them through.

For me, my problem is I have too many ideas, and sometime the fun of a new
idea outweighs finishing an existing idea. This is where I need to rely on my
discipline to carry me through to completion.

Most of my projects don't ever go past 2-3 months, but the one that is now,
well it's requiring my discipline so that I can finish it. That isn't to say I
just work on that, I have days I do other things to give me a break as well.

------
ABraidotti
Ha, okay, just for some light-hearted context: it took me several decades of
trying so many projects to finally find one and stick with it: web
development. Now I'm a gainfully employed web developer and DevOps engineer,
and a great load has been lifted off me. I am 15 years behind some of my peers
but I no longer stress about finding that one project I'm gonna stick with.

So yeah, I've found my way out and here's my advice: it's a numbers game. Keep
trying things. Even if you try to make a roguelike for 5 minutes and move on,
that's a valuable lesson. Now try 100 more things and you might stick with 3
or 4.

------
gitgud
There's a lot of advice saying "don't talk about your side project".

I used to believe this whole-heartedly, but now I believe you should actually
talk about the project somewhat.

If you don't talk about your project to anyone, the project dies with you. If
you talk about the progress you've made, you can get people excited and that
excitement can motivate you and hold you accountable (as they'll remember what
you've done so far).

I guess the take away is to talk about side project progress, to build
excitement and motivation. Don't talk to much about plans, as you are robbing
your future self of gratification.

------
Peteris
I had a similar problem until I knew I had to work on a start-up and pick a
market to go help. It took me ~2 years to choose that market but I haven't
looked back (crypto developer tools).

Look back, not forward.

Take all the things you have spent the past 5-10 years being interested about.
For me, it was coding, programming languages, developer tools, design &
minimalism, products, B2B, mathematics, economics, investing, productivity.
Crypto dev tools is the intersection of those - a new field allowing me to
keep doing the things I'm already provably interested in rather than making
bets about the future.

------
droobles
I was torn between making a game, or making something to aid my musical
endeavors.

I liked the idea of making a game, but as an adult I don't get to play that
much. When I do, I play older games that stoke my nostalgia (JRPGs).

I play in an active punk band, and am a self admitted pedal addict.

I decided to go with music, because that's what I spend most of my passion
time doing. Currently working on a really cool music related side project and
couldn't be happier.

Also, I think scope has a big part to play. A video game is a huge endeavor
that could take 5+ years developing solo, and most of my audio programming
ideas might take 2+ weeks.

------
OOPMan
The only personal projects I've ever done that I stuck with were,
unsurprisingly, the ones I dog-fooded.

In other words, I worked on them and developed them to the point of usefulness
because I actually needed to make use of them.

------
jamil7
It's pretty normal. Figure out first what you want from each side project. If
your goal is to learn or play around with new "X" then it's fine to half-ass
it, build the fun parts and then never look at it again. If you want to try
and build a business and make money on the side then this is usually the time
to not try out new "X" and instead stick to boring tech you know well.

Edit: for practical tips on keeping some momentum, just start with a tiny
amount each day, like just 30-40 minutes after work or before. The next week
you can add a little more ect.

------
bambataa
Make a list of things you want to do but don’t start it. Remove them when you
lose interest. If anything stays it might be a goer. You will never have time
to do everything.

Also, think about what you really want to achieve. When you think “I’ll make a
roguelike in X!” do you actually want to make something you or other people
want to play? Or do you really want to just have a cursory understanding of
how a roguelike works? Or to get a slight familiarity with language X? Do the
initial research without committing too much to it and see if you maintain
interest.

------
james_impliu
Do it with someone else. You're then not just accountable to yourself.

------
gavanwoolery
I have a graveyard filled to the brim with side projects, and just ONE project
that I keep coming back to (I have been working on it for 20 years). Its
getting to the point where I do fewer side projects because I understand there
is only one that is worth working on. In the past decade, I only had two
smaller side projects.

The secret for me is to work on the hardest, most interesting problems. This
is not good business advice - mind that. But you are probably doing side
projects to get away from the boredom of the thing that actually earns you
money.

------
mysterydip
If you were given one of the projects for your job, you'd complete it (and
slog through the boring parts) because you wouldn't have a choice. Maybe a
"project manager" (real person or virtual like a blog) to keep you
accountable/on track would help. That won't stop the urges to chase "the next
shiny", but will make resisting them a bit easier.

(I say this as someone with a hundred project folders, so I should follow my
own advice. I will say when given a deadline to produce something, I deliver,
warts and all.)

------
harrisonjackson
Be realistic with what "done" is when you start a project and force yourself
to get to that point. It doesn't have to be published or making money or
anything specific, but define what it is and do it.

The more often you get to "done" the easier it is. The same goes for quitting
though - every time you quit something it gets easier to excuse yourself the
next time and so on.

The last 5% of a project is always the hardest to slog through. Being able to
finish things is a super important skill and something I'd say is worth
cultivating.

------
vcool07
I read this somewhere that, instead of focusing on "what to do ?", shift your
focus to "why do you need to do it ?". If you focus on the why and can
convince yourself on the importance of it, maybe it would get done. On the
other hand, if your "why" is shaky, then most probably somewhere in the back
of your mind it's marked as "not important". It's like one of those things
that you just want, but don't really "need", so no wonder you lose interest
pretty soon.

------
davidajackson
I find that if random people on the internet like to use what I'm working on,
that's the most motivating thing. Think of it like fishing for startups. If
you get a lot of nibbles on a particular idea that you test out, best to keep
going if it's working, provided that's it's the best idea you have. If random
strangers are happy to get on the phone with you to ask you questions about
whether they can use your product because they want to learn more and have a
problem, that's a good sign too.

------
aww_dang
I've finished projects and earned continual revenue from them. If it isn't
compelling, then perhaps it is best to just let it go.

If you already feel proficient with your tools, you can't justify your
projects to learn these same tools.

You are not the problem here. The problem is your ideas are not compelling
enough for you. Think of something which will compel you to finish. Break the
project down into manageable stages and execute. Don't make excuses for
yourself. If you want it, you will get it. Otherwise, what are we talking
about?

------
RabbitmqGuy
I used to pick side projects based on all the things they say you should; does
it have a large addressable market, does it solve customer pain points, are
people willing to prepay before you start working on it etc. And I would get
to a point where I would give up because the projects, chosen this way, were
not fun anymore and I would stop working on them.

So instead I now pick things that I find to be fun to me to work on. Instead
of solving customer pain points, I try and solve a pain point that I have. I'm
liking it thus far

------
techbio
One thing that seems useful to me, in addition to determining experimentally
what I can actually accomplish on my own, is determining the common
components, and knowing that the more time I put into the things that cross
project boundaries, the more useful I will become for my employers/clients,
and the more effective boilerplate I can DRY with. Future projects will more
likely require the core infrastructure than any specific, final, perfect,
finished UX I imagine ahead of beginning.

------
everyone
Theres a lot of things you may _want_ to do, like you abstractly think that
would be good for you somehow, eg. learn the piano.

But for a project that you can stick with through the horrible / boring bits,
all the way to completion, pick something you are _compelled_ to do, something
you just naturally do and enjoy.

Eg. I make computer games, I think they are fairly pointless, but I can
happily make games all day every day. Its the kind of thing I need to force
myself to _stop_ doing and go take a break.

------
ChipSkylark
One more to the pile. My method:

1) Write down a clear S.M.A.R.T. goal or thing you want to do on a piece of
paper (OKR style), a clear definition of why you are trying to do the thing,
and when you should have it accomplished by.

2) On a separate piece of paper, define your expectations around how chasing
that thing will feel and what you expect to happen when you accomplish it

3) Put the second piece of paper about expectations in a paper shredder -
destroy it

4) Create a google doc (or whatever) with large bold letters at the top: My
goal is to do X by Z because Y. Make accessing this doc as low friction as
possible (a bookmark icon on home screen, a bookmark in browser, etc)

5) Create a consistent schedule (1 hour every other day?) and use the doc to
track. Treat this as your personal standup doc: make entries on the
disciplined timeline, and plot out next steps at the end of each entry. Review
weekly (Sunday night?), take notes on your progress, etc.

6) Finally, at the target date, reflect on where you are, and celebrate
anything and everything that happened as a result of your feeling inspired by
an idea or goal and making tangible progress in your life because of it. It's
beautiful.

For the progress doc, viewing your progress makes it harder to give up on -
think of it like “We’ve gone 100 days without a workplace accident” or “I
haven’t had a X in the last 50 days” - you build up momentum and commitment to
seeing something through for the sake of not letting down the older version of
yourself i.e. You make quitting an increasingly bigger deal.

Regarding expectations - of course, I'm joking about steps 2 and 3. For me,
living life chasing the vision for something gets in the way of actually
getting after it, because by definition it's dreamy, and each step you take
closer that doesn’t resonate with the dream is another kick in the pants.
Soon, you give up and move on because the dream (expectation) is significantly
different from the actual experiences you have while taking steps towards it.

For goal setting, I cannot stress the importance of setting S.M.A.R.T. goals
and detaching from the dreamy stuff. If the vision is truly powerful and
meaningful to you, it will be kept alive and supported by material success on
the smaller milestones that you accomplish.

------
tomcam
When that used to happen to me I realized the reason was that I thought maybe
I was making the wrong choice, no matter how carefully I had thought it out.
Later I would wish I had finished the project because I understood my life
would have been better if I had.

Eventually I learned to accept the possibility that my choice may be second
best. It was an insidious form of perfectionism. It was better to finish a
project that may not have been the “best” option than not to have done it at
all.

------
larzang
I find side projects useless. At work I solve real problems for real people,
often big problems. Some toy project doesn't feel the least bit meaningful,
and any idea I have for something that isn't just a toy is something 100 other
people have had as well.

So I help with their implementation instead. Instead of building useless tech
demos or starting primitive games I'll never finish, I look up the projects I
do actually find useful and see what they need help with.

~~~
nurettin
Eight years ago I was really bored at work (they just asked for a couple of
SQL queries a day) so I made a poor man's automated trading system for
government bonds. The basic idea was to camp for new bonds and look for new
opportunities as soon as they presented themselves. I had also done some
rudimentary backtesting to prove some simple strategies for buying and
selling. I made no money off of this, it was just for fun. During development
I learned how to acquire, store and process financial data in a live streaming
way as well as how banks handle things, what the fees and taxes are, etc. Also
helped me learn web automation, making and deploying my own services to my own
servers, etc.

A year ago I started working on hedge fund software and all this experience
was a huge help. So if you are busy at work making tools, great. But the
benefit of side project stuff is pretty situational.

~~~
shostack
Any chance you've written about this side project and the areas you learned
about and how to figured those things out?

~~~
nurettin
This is probably the first and only time it was mentioned in public. I do have
a private bitbucket graveyard where it resides. Oh and this was done when
mongodb was still a thing, so I have some of that going in there for finding
sparse stock correlation matrices. And ruby was everywhere at the time, so the
bank interface was created in watir instead of puppeteer.

~~~
shostack
Interesting. I've been working on automating some personal finance Google
Sheet stuff trying to use watir to automate pulling stuff from Mint. Did you
find watir useful for things like this? Or would you say there's ultimately
better options for a personal Rails app?

~~~
nurettin
google sheets is awesome, they even let you reply to rudimentary get requests
and define your own functions with google script. I think it is a hidden gem.

Watir lets you host your own headless firefox or google chrome on a cheap
server thanks to the headless gem. All headless does is to start Xvfb and let
you execute the browser in it.

What I really like in watir's interface is the wait_for functionality which
you can sprinkle everywhere in order to wait until a button or a dropdown is
actually rendered by javascript so you can click on it once it is queryable.

These days I use websockets and chrome puppeteer protocol to talk to the
browser. It is somewhat faster and more robust than the chromiumdriver, but if
I had to use watir again, I wouldn't mind it.

------
jackyinger
You have to know what you want to make before you can make it. Embrace this
challenge.

Allow yourself to develop your ideas before attempting to code them up. Draw
diagrams, take notes, think about how to implement the systems and subsystems.
Do lots of research. Make prototypes to play with ideas.

If you want to make anything that is not trivial you’re going to have to spend
a bunch of time on architecture and design before you get to execution. Try to
see this as a gift rather than an impediment.

Best luck!

------
2OEH8eoCRo0
I have experienced this my entire life.

I'm interested in so many things that I cannot focus on one thing for too long
or to completion. This really sucks when people ask what I do with my time
because I have nothing fully realized yet I did spend the whole time tinkering
in my own way.

I overcome this a little with discipline. I just have discipline and a clear
path/plan and go step by step through to completion.

I'm probably going to pick up a book or two that is mentioned in this thread.

------
fimdomeio
If it's a real project in my life and not something I'm just playing around
with I force myself into a mindset where "It's only worth starting if I can
get it out into the world". Start less projects, finish more projects. When I
start switching things to do every five minutes, normally is because I'm
tired, want to do things but don't have the energy. Then I try to just stop
and rest, tomorrow's another day.

------
paulintrognon
My way of overcomming this situation is to use the MVP process for my side
projects: your side project needs to be as simple, as featureless as it
possibly can, so it can be shipped to your friends quickly, before you get
tired of it.

It has worked really well for me: simple projects are more likely to be
finished, and when you show them to other people, their feedback/enthousiasm
fuel your energy to add more features and spend more time on the project.

------
danans
Usually I start projects I want to start, but I tend to finish projects
because I have to finish.

The necessity/drive to finish can be internally or externally driven, but
there's no mistaking it, so don't sweat what you don't finish. Take it as a
signal that you've reached the limit of your interest in that pursuit.

Of course, if the issue is something more fundamental (like ADHD), none of
this likely applies, and seek help from a professional.

------
shoo
For me, the answer was to make software that I actually genuinely find useful.

Once I got a rough prototype to the point where I was able to get value out of
the software as a user, the project seemed to stick.

I naturally return to use the software every few days or weeks or months
(because it is useful), and when I do, sometimes I have ideas for improving
the UI or what's going on under the hood. So sometimes I knuckle down and
spend a day or two enhancing it.

------
matt_the_bass
How do you perform in your day job? Do you have the same indecision or are you
productive? If your productive at work, then perhaps consider what you are
looking to achieve in a side project.

For me, my side projects are for fun and intellectual exploration. I’ve been
making art-piece wordclocks as gifts and sell a few occasionally. This is
totally orthogonal to my day job. The orthogonally is what I really crave. It
gives my mind a nice refresh.

------
simonw
Ship early, ship often. Ship a version you are embarrassed by and try and
convince some people to use it.

I've had far too many side projects which languished in the "it just needs one
more feature..." zone. My productivity with side projects shot RIGHT up once I
learned to avoid this.

Remember: if you are disappointed that your project doesn't do something you
had planned and you ship it anyway... no-one else will ever know!

Perfect is the enemy of shipped.

------
skocznymroczny
Same here. I am in very similar spot like you, I start a new game/engine
project every day and switch language every few days.

The best tip I can give you is to participate in competitions. Like "make a
game in 7 days". It gives you a set timeframe and forces you to push the
product into a usable/presentable state. Better to have few working unfinished
games than many unfinished projects that aren't even playable.

------
anderspitman
I struggled with this for years. Finally made it over the hump a couple years
ago and started finishing things.

The one key question for any side project I consider starting now is:

"Will I use this myself?"

Building something that makes your life easier is a huge motivator to get
through the slog days. And if you're considering trying to sell it later it's
nice know you have a market size of at least 1, which is more than many
startups.

------
vorpalhex
Most of the advice you're getting here is to monetize it, find what inspires,
you, etc.

While well intentioned, that advice has been incorrect for me at least. What
has worked has been to work on small, fast side projects. If you can only work
on a project for two days, then pick projects you can finish in two days. Cut
scope aggressively.

Frankly, my most successful projects are the ones that have been amonst the
easiest.

------
cientifico
After years of suffering the same problem, I found (so far) a solution that
more or less works for me. Assigns days to projects. Max of 5 projects. The
most important thing is: Don't work in the project unless it's the day. If
there is a need, add it to the backlog of the project.

My curve of interest gets reduce over a day. After one week of not working, it
is restore.

Curious if this works out to someone else.

------
melvinroest
I can tell what I figured out about myself so far. Sorry for the long post,
it's tough to write concise. It also doesn't help that I'm describing insights
that took me 10 years to get sharp.

I have thoughts and intentions.

I have behaviours.

It's always puzzling to me how bad I am at predicting my behaviour purely with
my thoughts and intentions. I guess people who are addicted to something that
want to quit can relate (my addiction: gaming/YouTube/HN -- I'll get back to
this).

Because of this weird mismatch I've said to myself: the predictive value of my
thoughts and intentions is 0, it's actually negative even. So all I can do is
observe myself behaviourally. Humans are quite bad at this, and research shows
that friends help with this. People outside of you observe your behaviour
better than you do. So either (1) get help from friends to do this or (2)
observe your behaviour like a ninja. Luckily for me, I happen to be an
introspective person by default, so I chose option 2 (you can also choose both
at the same time).

So do not trust your thoughts and intentions.

So observe your own behaviours.

After 10 years, I found out 2 fundamental motivational triggers. One I found
out about recently, and I am still figuring out how to (ab)use it, and the
other one has been (ab)used for years.

1\. I work amazingly well under pressure and stress. This is especially the
case when my schedule has no minute of spare time and has some vague
accountability system.

Example: I was incapable of studying one degree at university, but I was
amazingly capable at studying 2 degrees, while working on the side, while
having a social life and a girlfriend. I had too little time in my schedule,
so I used 4 hour work week tricks to get it manageable.

What I also did was define a priority list. A lot of priorities on the bottom
of that list suffered an ill faith. But my most important priorities (and then
some) succeeded.

There is one downside with this. Yes, I was motivated. But I also was stressed
the whole time, and while the stressed was manageable, I don't think it was a
particularly fun time. It sometimes was, and sometimes wasn't, but the
pressure felt painful. And while it worked for my motivation, it does do a lot
of damage to me existentially.

However, the good part: I do now have skills that I wished to have. And
existentially that actually does really help.

So motivation-wise: it works amazingly well. Regarding life decisions: mixed
results.

2\. Remember my addictions? I realised that I'm simply motivated by human
contact. Not just any human contact, but I am not fully clear on the
conditions yet. I know that I must like the person and feel a connection in
some cases.

A couple of cases where I've seen this:

A. Making music with someone just watching me (I was super motivated). Making
music alone the next day (I didn't do anything).

B. Same story with playing Hack The Box. I hacked 16 hours per day for a month
and my buddy was simply putting in a normal work week of it. He said: "you're
so much more motivated than me." But I knew if he'd stop playing Hack The Box,
then I'd stop playing eventually as well.

C. I thought a lot of university courses were easy, but not easy enough to do
nothing about it and pass a test. So I would go to the lectures and be bored
out of my mind because psychology is an easy degree :D However, those lectures
did actually motivate me to then engage with the course material after the
lecture. And the thing is, I thought I would be capable of doing that on my
own, but I never was. So I continued going to lectures and be bored, in order
to be motivated later.

I am still figuring out how to exploit this, because this motivational factor
properly exploited is me winning at life. It has: connection, productivity and
a sense of "we're in this together." I'm noticing I find it a bit hard to make
friends. I can't just say: oh, I like topic x now and then befriend someone in
that topic. If I could, I would be a lot more productive.

(I'm now realising this should become a blog post, moving on :P )

Writing all this gave me a new idea. I'm basically like a framework and I
found 2 motivational 'hooks' into it. The thing is, I don't have a lot of
control over these hooks, things can stress me out (which motivates me) or
things can make me feel connected (which motivates me). If something hooks
into my 'motivational code' and I don't want it to be there then I basically
tend to say I'm addicted to: games, YouTube and HN (fun fact: I don't like
playing games alone that friends did not introduce to me).

This means my mind needs to figure out on how to exploit this, but also it
begs the question: how does this work? I am pretty sure it's emotional and
it's a need based thing (self-determination theory _definitely_ comes to mind
here).

My question to you is: what are your motivational hooks? How does the
environment hook into your motivational code?

BONUS FACTOR!!! (I'm not making fun of marketing people :P )

3\. I made a side project for a month called doodledocs.com. It partially came
out of motivation factor 2. I was interviewing for a company and they gave the
most boring 2 day take home exercise that I saw (make tic tac toe). So I
decided to make something awesome instead with their technology, and it took
me a month. Just having someone judging my work and me being in the same room
as that person helped quite a bit. However, another motivational factor was
that _I am frustrated_! I am frustrated with how not far we are with having a
pencil natively on the web. So I made this app.

But frustration is definitely less of a factor than the other 2. Frustration
on its own doesn't work, but it does reduce the amount of stress (factor 1) or
connection needed (factor 2).

So I guess you could say there are necessary motivational factors and
sufficient motivational factors. A bit of stress or a bit of connection is
necessary but doesn't make it sufficient. A lot of connection, for example,
does make it sufficient. Also, for example, a bit of connection + a lot of
frustration does make it sufficient.

I hope my self analysis helped you a bit. And if you're curious about why I
wrote this all out in the open and not on my laptop: I am motivated by people
reading it and reacting to it. My sense of connection (motivation factor 2) is
definitely at play here.

~~~
shostack
Definitely blog post worthy. Thanks for sharing.

I've noticed similar triggers and hooks and such with myself as a fellow
introspective individual.

I suspect some of this is related to the dopamine hits that come from
easy/early successes in things. It's why I've noticed when I get run down, the
only games that really appeal to me are idle clickers because they are
essentially just dopamine buttons with a front end.

I think you're on the right track with first identifying these things and then
figuring out how to harness them. In essence, you have to understand an API's
inputs and outputs before you start calling it, and that's what you seem to be
describing by thinking of yourself as a framework.

------
pjmlp
Yes, all the time, the time left for coding after work is very little, family
and friends always take priority.

Some of my hobby coding projects are more than 10 years old by now.

The only ones I managed to stick all the way to the end were side projects
that had a real customer at the end, so I had to actually deliver, or face the
consequences of having someone really unhappy.

------
gkilmain
I've been working on a side project now for about 8 months. By far the longest
for me. Whats worked this time is I don't work on it every day and sometimes
I'll only write a few lines of code if only to keep the momentum going. I
think anything you do for your side project is a positive step. Once you give
up its done.

------
tayistay
My software side projects became my career.

I write down my various ideas. I then think about them occasionally for months
or even years before committing to working, writing additional notes. This
reduces the chance of abandoning an idea for something else after starting
development.

I tend to do multi-year projects, so I have to be careful how I spend my time.

------
pmontra
Self social engineering: tell everybody about it so you're going to lose face
if you drop it without a good reason. This doesn't mean you cannot drop a
project every week or two, but you must accomplish at least something before
doing it or discover it's a dead end. And if you succeed people will cheer
you.

~~~
tayistay
Apparently that’s exactly not what you should do:

[https://www.psychologytoday.com/us/blog/ulterior-
motives/200...](https://www.psychologytoday.com/us/blog/ulterior-
motives/200905/if-you-want-succeed-don-t-tell-anyone)

~~~
_bohm
Don't know about the psychology behind it but I'll add a data point in support
of this.

Whenever I do any kind of creative work (programming, music, etc.) I always
stall out if I reveal what I'm doing to other people before it's in a near-
completed state. Something about the knowledge that other people may be
observing causes me to think about a project in terms of how it will be
perceived by others as opposed to precisely what I want it to be. The sad
thing is that usually probably no one is observing and I'm entirely psyching
myself out, but this realization has definitely led me to be more disciplined
about secrecy when working on anything.

------
vtail
What works for me is enjoying the process, not the end result, and making
small incremental progress. I started blogging recently - just little pieces
of code or analysis here and there - and found that a sense of making progress
strongly motivates me to tackle harder problems, while sharing my progress
along the way.

------
Maverick073
This works for me:

Let's say I have an idea and I spend a few hours researching about it and get
very excited. I don't start working on it immediately. I sit on it for a few
days and revisit the idea, say after a week. If I am still excited to work on
it, I'll start working on the project, otherwise I drop it.

------
alecbenzer
My therapist recently told me that often it's working on something that sparks
(or fuels) the passion for it, not the other way around.

Sometimes you just need to decide to do something and make progress on it, not
worrying about the fact that it's not what you're most interested in at this
instant.

------
zabil
I can relate to this. Here's what's worked for me. Don't work on it alone. Get
more eyes on it. See if other people find it useful. Get feedback. It's quite
motivating to see your side project helping someone else. But it's also
important to know when to stop.

------
linuxlizard
I have the same issue. I try to remember a quote, origin I can't remember, "If
we want to do anything, we must not try to do everything."

If you're interested, want to help me work on my web project? :-) I'm not a
front end web dev and am having a slow go at it.

------
ferzul
yep. my solution uas simple. listen to my attention. if it's boring (at that
instant), why stay? eventually i found and completed several projects, the
need or interest driving me. and sometimes, i pick something up off the
backburner and bring it closer to fruition.

------
swanandkriyaban
Have you tried B J Fogg's tiny habits? It works like a charm and I can see it
can help in your situation. I was exactly like what you mentioned, had (still
have?) shiny object syndrome but wouldn't stick with one topic for a stretch.

------
abinaya_rl
I would suggest to make something over the weekend and set a 7-day deadline
and come up with the basic version of the idea. Charge the user a fee, it can
be anything.. just put a paywall.

\- Release it on Product Hunt, corresponding Reddits, cold pitch people on
Twitter

\- Get a few paying customers

\- Signup for IndieHackers and celebrate your small milestones.

\- Continue the above steps until you get 100 customers

\- Play with the different pricing plans

\- Explore how to get a word out of your product.

------
gentleman11
I have been buried in side projects my whole life and I started finishing more
and more of them.

1\. Don’t force it. The good ones, you will have a hard time not working on

2\. Take some pride in finishing things. It gives the extra push when 1 isn’t
enough

------
21stio
Keep the scope small so you’ll be done fast

Become accountable, e.g. partner up with somebody else

------
Glorbutron
I do this, but I realized a while ago that most of the time, what I want to do
is learn how to do things, and not actually do them. So that's all I try to
do. Because after that, it's not fun anymore.

------
rohansuri
For me I can only keep up my interest in a side project if I know something
like that doesn't exist. I've found reading new research papers and
implementing them to be fulfilling.

------
bartq
Nothing wrong with your situation, you're just experimenting and learning.
Keep doing what interests you most, you'll eventually settle on something for
longer period of time.

------
kissgyorgy
It helps a lot if you pick something you think is important, not just start
working on some random ideas.

Or maybe you can accept that you like jumping from project to project and
that's okay too.

------
aabbcc1241
Seems you're picking up project idea from your interest. Would it be better if
you pick up a project because you deeply feel the pain how it is currently
without your solution?

------
gonzo41
Learn a musical instrument. Guitar, Piano or Piano Accordion. You won't be
able to do that last one if your currently in a relationship. YMMV. Once you
start, you'll really suck at it for a very long time but it's fun and it's a
relaxing way to build a skill that is calming and quarantine friendly.

Programmers program, writers write, doctors doctor? No doctors work hard most
of the week and a bit of the weekends but they do that so they can have other
stuff.

My job is Software and IT. It's less about code and more about clear rational
decision making. Not thinking about it all the time makes it easier to think
about it when it's time to do that work.

------
willart4food
Check out the book "Little Bets: How Breakthrough Ideas Emerge from Small
Discoveries"

In a way it's the concept of MVP but really from the point of view of picking
up projects.

------
Uhhrrr
I would say don't even worry about finishing. Document what you've got and
move on. Eventually you might come back to it, or steal parts of it for
something else.

------
Whazzzup
For me the best way is to remember that the time will pass and is passing
anyways. Might as well have just done literally anything related to the
project rather than not.

------
eismcc
A friend of mine once said about such issues, “you can do it all, just not all
at once”. Slow down, pick something and work on it. You can do the other thing
later.

------
gianpaj
Are you working alone or with other people? Doing anything alone can be very
demotivated. Regular calls, chats are important for motivation and a sense of
progress

------
wolco
Find something you want to do personally and do it. If It will follow you
around and demand you work on it when you should be doing something else you
found it.

------
winrid
Right now financial independence motivates me. I just keep imagining how if I
had N customers what I could do with my time other than work for someone else.

------
dznodes
I have a side project for you. There is currently a very functional prototype
and yet I need a technical co-founder to build beyond this proof of concept.

------
throwawaypa123
Find a problem to solve. Don't focus on tools.

You want to do these side projects to show to yourself that YOU can do it.
Focus on the problem not on the skill.

~~~
zerr
This is hard. Either your problem can already be solved with an existing tool
or you are not interested in solving that problem (hence it is not that
problem:)).

------
henearkr
Build something that you need (like, scratch an itch).

------
probinso
do it for someone not for yourself. you can reach out to domain experts over a
non-technical topic you are interested in. offer them your time and a final
project in exchange for their guidance.

Be intentional about setting up meetings. don't let the relationship fall into
the graduate student advisor communication patterns, treated like a
professional relationship and ask them to the same.

------
DrNuke
Use your skills for something or someone fighting for a cause you care as a
person? Inner motivation would come naturally, experts say.

------
smarri
Another angle, maybe you have to churn through many (hundreds?) of ideas
before you get to one you really want to see through.

------
trwhite
I recently read Angela Duckworth's "Grit" and from reading this, suspect you
might derive some value from it.

------
antirez
Find a project that is useful to you.

~~~
yoz-y
I second this, I was project for a long time until I found out an app idea
that was mainly driven by the fact that I really wanted it. Unfortunately this
was quite a long process and now that it's done it's back to square one. Lots
of ideas but no motivation to follow any through.

------
jonwhittlestone
Offer to solve a local business' solution pro-bono and commit to self-imposed
deadlines

~~~
jonwhittlestone
Preferably a local business that's been hit by covid pain

------
Snoddas
Find something that bothers you in your everyday life and make a MVP that
solves that problem.

------
ronreiter
Side projects should always be in a position where you want them to become
your main project.

------
devgoth
what has worked pretty nicely for me is working on something with someone. its
nice to know you are working on something and are not alone. it also helps
with accountability.

i know not everyone will be able to work with someone but this is just from my
experience.

------
abnry
Find a problem in your life you can improve/solve with software. Then work on
that.

------
RocketSyntax
Do something small - write an integration package that bridges 2 tools you
enjoy using.

------
su8898
My problem is quite the opposite. I am able to finish a side project but I
lack ideas.

~~~
outworlder
Please write down any ideas you may have, at any time. It's rare that an idea
will come the moment you sit down with a blank screen staring at you.

I've talking to emailing myself with a specific subject every time I have an
idea. Doesn't matter how silly it is. I'll revisit them in a month and sift
through. Some still remain silly, some will be upgraded given new knowledge.

------
orasis
Which one potentially benefits others the most? That’s the easiest one to
stick with.

------
ssss11
Perhaps your passion is not the code, but setting up and maintaining it -
DevOps

------
jbverschoor
Find a single paying customer

------
m463
Yes: "Stop Starting and Start Finishing"

just write it down somewhere in plain sight.

------
riazrizvi
Make something you _need_ , so that you will actually use it yourself.

------
saddington
like many folks have already shared...

... the process is sometimes the real lesson-learned.

don't beat yourself up about NOT finishing stuff. sometimes, that's just as
good as finishing.

the goal is learning, not necessarily profit.

------
yumaikas
So, I'll take a different tack: Are you interested in finishing projects or
are you interested in learning new things? Because those goals aren't exactly
100% aligned.

It sounds like your motivation is more about learning new things. If that's
the case, lots of small, half-baked projects can definitely be educational.

You're also mentioning projects that take significant ramp-up time before they
might start to get a life of their own.

So, that being said, I have a couple of book recommendations:

If what you want to do is learn software development in a growing way, I
highly recommend Mastering Software Technique: [https://software-
technique.com/](https://software-technique.com/). It's all about using bursts
of time to learn new things as fast as you can. For your situation, it sounds
close to what you've been practicing, with just a tiny bit more process.

If what you want to do is actually build something on the side for people
other than yourself (which is _not_ a requirement for learning useful things),
then I recommend [https://jessicaabel.com/growing-
gills/](https://jessicaabel.com/growing-gills/).

For me, I've embraced the non-essential nature of my side projects. I've had
quite a few over the years, some large, some small. Being able to put one on
the back-burner and come back it later has been very handy. Most of my
sideprojects these days are ones I can get to "done" in a day or two, and I
have a couple longer-running ones that I pick at off and on. My motivation for
a particular project varies, some are meant to scratch a _very_ specific itch:

\- [https://github.com/yumaikas/dirx](https://github.com/yumaikas/dirx) was
basically done in a late night and a morning \-
[https://idea.junglecoder.com/view/idea/274](https://idea.junglecoder.com/view/idea/274)
I've done 3 times, first in bash, then in Go (in a rather late night, to
scratch an itch), and then again in Nim (to learn Nim, and compare it against
Go).

Some projects I have are a lot longer running. Both PISC
<[https://pisc.junglecoder.com>](https://pisc.junglecoder.com>) (now on
indefinite hiatus) and Tabula Scripta
<[https://github.com/yumaikas/tabulaScripta>](https://github.com/yumaikas/tabulaScripta>)
have run a lot longer than my typical project. One quality of both is that
they have work at quite a few different levels of detail. Am I tired of
parsing work? I can work on prototyping a game in PISC. Do I want to make the
performance dramatically better for my artificial Fibonacci benchmark? Great
time to break out the Go profiler. Do I want to make it way easier to
concatenate strings in a stack-based language? Maybe today I figure out how to
write an evalbot. (These are _all_ things I did in PISC at different times).

Tabula Scripta is still early days, I haven't had the time to use it for that
sort of experimentation, but it will have a similarly broad set of
applications and problems to solve.

And, like other people have said, it definitely helps to do you side projects
in a different IDE/Language than your work. And if learning is a big
motivator, keeping your projects smaller, or making them the sort of things
that's easier to break into smaller parts can be very helpful.

------
nerder92
Do It with a friend which is equally curious an committed as you are.

------
somurzakov
find a customer for your side project. even if it is one customer, even if she
is a friend of yours.

getting a feedback from your early customer will be more than enough to keep
you motivated

------
westonplatter0
What were you intensely curious about at 12 years old? Do that.

------
blizkreeg
Start meditating. It will help your restless mind.

------
al_
Whatever brings some joy, it's the signal.

------
21stio
Keep the scope small so you’ll be done fast

------
kjgkjhfkjf
Pick one of your unfinished projects, identify a way to make progress on it,
and then make that progress. Repeat this process until all your projects are
done.

------
redwoolf
Read Steven Pressfield’s The War of Art.

------
mbesto
Solve a problem _YOU_ have.

------
jmiskovic
So many answers already. Here's my take. I have a decent sized graveyard of
one-day projects, half dozen serious attempts and one published project with
some 10k users. In line with some other suggestions in this thread, the
published project scratches my own itch while scrapped ones were meant to be
consumed by other people.

If gamedev is your thing, try participating in a game jam or two. They are
awesome way to use same limited attention span and actually finish something.
If you see yourself spending too much time on graphics/sound, try some heavy
constraints. For example, use just 3 colors for everything, or compose all
graphics just from single shape.

Introspection is good. Keep doing what you are doing, and keep learning from
what worked better or worse for you.

Treat your side project as small sandbox, a place to play. Don't put
deadlines, don't worry about sunk cost, allow yourself to write bad code
without much planning. You can incrementally get to point where you want it to
be. Try to see at which point earliest you can wrap it up and publish as MVP.

I noticed that it is very easy to start, and gets exponentially harder as you
go on. When you set up the project, each development time slice doubles the
result. First you have nothing, then it's "hello world". Then you put up some
dynamic text. Then you hook up some crafty mechanism behind the text. It is
exciting and motivating. But after a while the project slows down. It is
because there are already some mechanics in there, and each new feature has to
be aligned and connected with existing ones. The complexity grows and more and
more time has to be invested in each new step. This is nature of software
development. Polish also takes surprising amount of time. You have to be aware
of it and plan your energy accordingly.

All this accumulated complexity makes your mind crave a new project, a fresh
canvas where everything is simple and new. Usually it will manifest in form of
new idea that is so much better than the current project. What works for me is
to take hour or two and take some notes and flesh out this new idea, and then
archive it for time being.

Some more advice I got from other people: A good place to stop the development
session is when you are almost done with feature. This will motivate you to
pick up the project next day, and you'll quickly get into mindset needed to
start next feature.

Don't share with others what you plan to do. There's a psychological effect
where you get small amount of gratification by telling others about imagined
finished project. You want to delay that gratification until you have
something done because it will give you motivation needed to put in the hours.
On the other hand, do share your progress on social networks. Getting feedback
boosts motivation enormously.

------
brianjlogan
No golden bullet for this problem I think but definitely one that is widely
shared.

\- __Get rid of your smartphone __and go to a dumb flip phone (avoid
distractions).

\- __Dump your ideas __into a system you can review later like
[RoamResarch]([https://roamresearch.com/](https://roamresearch.com/)),[Trello](trello.com),
or a folder with Markdown Files Check out __GTD method __because these
thoughts qualify as something you should dump in your sort bin /inbox bin to
go through later. Other things like "I should check the mail", "I should build
a fort" all count as distracting tasks to keep track of.

\- __Meditate __and learn to recognize transitive thoughts. I really recommend
the [Calm App]([https://www.calm.com/](https://www.calm.com/)) although you
really don't need to use an app I found it's [21 Days of Calm by Tamara
Levitt] program helped get me started and gave me a handful of techniques to
get into a zen state.

\- Use [The Pomodoro
Technique]([https://en.wikipedia.org/wiki/Pomodoro_Technique](https://en.wikipedia.org/wiki/Pomodoro_Technique))
to focus on one task at a time and avoid over taxing your focus muscle.

\- __Build and Keep Track of your Habits __. Your habits are extremely
important to do deep and meaningful long term work. You need to cultivate
them. Check out [The Power of
Habit]([http://www.amazon.com/gp/product/B0055PGUYU](http://www.amazon.com/gp/product/B0055PGUYU))

\- All industries that have REALLY important critical life saving tasks use
checklists. [HBR: Using a checklist to prevent
Failure]([https://hbr.org/2010/01/using-checklists-to-prevent-
fa.html](https://hbr.org/2010/01/using-checklists-to-prevent-fa.html)). I use
app.everyday.app to do a Daily Habit Checklist but I did this using a tiny
Mole skin for a month and it worked great as well. Side note you made me dig
into looking up this thing called [Seinfeld
Chaining]([https://lifehacker.com/jerry-seinfelds-productivity-
secret-2...](https://lifehacker.com/jerry-seinfelds-productivity-
secret-281626)) and I found out [Seinfeld has nothing to do with
it]([https://www.reddit.com/r/IAmA/comments/1ujvrg/jerry_seinfeld...](https://www.reddit.com/r/IAmA/comments/1ujvrg/jerry_seinfeld_here_i_will_give_you_an_answer/ceiugt5/))

Personally all of the things I listed have some type of associated tool but
all can be accomplished with a timer, pen, paper ,etc. Don't let yourself get
caught up trying to find the "perfect" tool. Just start doing the things so
you build the habits. They are far more important.

------
mihirchronicles
I am also just like you!

It is indeed irritating and confusing at times. I like to do many things and
explore new ideas. Curiosity takes me in different direction. At times, I
question my personality and character. Perhaps the feeling of "curiosity
killed the cat" is applicable when we are feeling this way.

But let's reframe this!

What if we start to accept this trait, not as a flaw, but as a part of who we
are? Once you come to the realization, you start holding yourself accountable.

I have been working on a side project (www.wisecharlie.com) for almost 3 years
and continue to do so for many years to come. To give you a background, I am a
developer and I enjoy the creative side of code and design. So, it is natural
for me to keep exploring new ideas, but I also know the importance of
execution. Following are the ways I have held myself accountable to this
particular project:

1\. No expectations (goals) other than a form of exploration.

I have a revenue generating product, but that does not mean, my goal is to
sell the most I can, get as many people to come visit my project and get the
most sign-ups. I care about the topic, constant work-in-progress and iterate
over it periodically. The process itself brings me joy.

2\. Sticking to one project at a time removes a cognitive load of finding new
ideas.

For some, creative block is a real thing. From the creative standpoint, I have
built the website using plain JS/HTML/CSS, then built the blog using Gatsby. I
wanted to learn about webflow so I re-built it during Christmas. I don't have
to think about new ideas every time I want to learn something new.

3\. Incremental steps as opposed to a giant leap.

I assign myself one task at a time on a monthly basis. That is it. I don't set
ambitious goals of 100k users or any of that. This has allowed me to work on
this project for over 36 months without feeling burnt-out. It is a turtle race
so take incremental steps and make frequent progress as opposed to a giant
leap. If I complete my assigned tasks, I allow myself to jump on to other
ideas. This allows me to stay accountable and execute consistently.

4\. Pick a hobby that has nothing to do with side project.

With lack of human interaction amid global stay-at-home orders, I find myself
to be draining my productivity (rarely, but it does happen). To fix this, I
picked up on sketching because I wanted to forget about everything that is
happening around me. Sketching helped me with that because if I don't focus,
my shapes don't follow the desired form. Here is the link to my sketch work
[https://twitter.com/mihirchronicles/status/12160752161594859...](https://twitter.com/mihirchronicles/status/1216075216159485953).

I am sharing these resources so I can share real cases from my own life and
inspire you to take steps that may work for you. Good luck! It is okay to feel
how you feel, but I would suggest you to make incremental steps, define your
process and take a long-term view.

The advice I share took many years of learning and doing. Curiosity brought
the cat back and you can too! :)

Cheers and stay safe!

------
arkanciscan
It me

------
akavel
I like to think that my side projects are primarily _a hobby_ , which I
understand as an important venue for "venting off" after work. Notably, if
they start to feel too much like work, they're no longer hobby projects,
losing their super important (for me) psychological function! I mean, I still
do feel guilt often, and am still on a lookout for some way(s) to cope with
it... But interestingly, in my case, for one of the projects, my itch was so
strong eventually, and I was so often annoyed I don't have this tool, that it
kinda "forced" me to find the strength to push through to the completion, even
when it was becoming a chore. Since then, I again abandon projects with guilt
repeatedly ;) but again also have one among them, that I'm coming back to on
and off, when I feel fancy, and trying to push forward. Again, I'm kinda
repeatedly getting annoyed I don't have it for myself; when annoyance of not
having it becomes bigger than my memories of annoyance developing it, I'm
getting back to it again :) sometimes looking at it reminds me too much and is
enough to scare me away again, but sometimes I'm just so angry I say to myself
screw everything and sit and push through :) Still, also as others said, I
look at the unfinished "hobby" ones also sometimes as some kind of research I
wanted to do, thus honing my skills or just randomly "playing with my mental
muscles" in various ways anyway - kinda as a kid plays in a sandbox however
they want. They don't ask anyone for permission to drop the toy car and start
digging a funny hole in the sand, just to fill it back with exactly the same
sand moments later.

 _edit:_ One more thing from what others wrote that also kinda resonates with
me, is that especially with the finished project, I kinda did repeatedly cut
corners, and I mean _a lot_ , like freaking brutally, to get to the absolute
minimum and absolute most brain-dead simplifications and quick hacks, kinda
like taking the machete and just cutting my way through the jungle not looking
behind, just to get to the PoC. I cut _worlds_ of ideas from it, leaving them
as "TODOs", scribbling in a notebook, or just "mañana-ing" with cruel
premeditation, I still hear them howling at me with angry remorse. Uh, sorry
folks! Some day, y'know, pinky promise, maybe!... I remember you, I really do
(mostly...), but, y'know, kinda different toys now that I'm playing with,
y'see... And suddenly, this PoC (wrapped in a pretty readme and asciinema gif,
which were actually the most exhausting finish of the whole run... but I was
so close, it was like no way, if I don't do this, nobody in the world will
know how an awesome tool I made... but they _must know_... it will help them
sooo much... I think... I mean, it helps _me_ so much... and let them just see
the gif... gifs are pretty!!) kinda proved to be enough, both to me and to
tons of other people I wanted to share with and thought may also like it, and
closed my eyes and published, saying screw possible bad reactions or just
crickets... sweet! :)

------
he11ow
I really like this question. If I'm honest, it rarely happens that I don't
finish stuff. But this wasn't some magical switch that happened overnight.
Rather, a bunch of stuff, so this question kind of gives me an opportunity to
reflect on what led to meaningful change:

1\. Action vs Motion. A lot of comments alluded to this here, and the best
I've seen it articulated was in James Clear's book Atomic Habits. You have
'Motion' which is thinking, imagining, whiteboarding, planning, talking
about...everything that goes _around_ the doing. And you have 'Action', which
is actually doing. Motion is incredibly pleasant, but it's a trap. Action is
never as much fun. Because soon enough you're going to get uncomfortable,
stuck, frustrated. At the very least, recognize when you're in Motion and when
you're in Action, so you're not trying to fool yourself. See also Shonda
Rhimes' "A screenwriter's advice" [0].

2\. The closer you get to finishing something, the greater the resistance is
to finishing it. This was articulated in Steven Pressfield's "The War of Art".
IT becomes a struggle, and it's not fun, and anyone who tells you otherwise is
flat out lying. There is fatigue from the project, and there's also the fact
that it's not quite what you had in your head when you dreamed about it.
Because you couldn't dream the imperfections. This this is not a fault of
implementation (any creator will fess up to feeling this way). So
acknowledging all of these and fighting through it is a crucial skill for
getting things done.

3\. Without a Process, there's not going to be an outcome. I started as a
developer, then switched to writer, and now I do both. It's the switching to
becoming a writer that taught me how to get stuff done, because I honed the
process. I knew what it would take to get a project from start to completion.
Different projects take more or less time, but the stages are clear. When I
tackle something now, be it in code or in writing, I set up a roadmap. One
that I can say definitively for each step, when it's done, and what's next.

4\. Domain: it really, REALLY, helps to build up domain expertise in
something. The tech is the HOW, but the domain is the WHAT and the WHY.
Without a good WHY, odds are the project is doomed. A domain is really about
mining more interesting questions, and staying engaged with ideas. So that
even when you hit into difficulties, the curiosity about the problem helps you
push through. I'm kinda not surprised you'd give up quickly on building a
solitaire with Y, cause who cares, right? And the answer is...you don't care.
You don't really want a solitaire, because you know that problem's been solved
to a good enough extent that it simply doesn't matter. It's hard doing things
when you can get yourself to feel they matter. With a domain, this happens
less.

5\. So another thing writers say a lot is "Show, don't Tell". And at some
point in my life I decided to take that mantra seriously. I felt I'm done with
SAYING (on my CV and anywhere else) that I can do X, Y, Z. I was going to SHOW
it. It just makes life simpler and easier when you can just shrug and say,
"Yup, done that, here's the link." So the point here is that even if I'm doing
something in order to learn, it HAS to have an outcome that can be offered to
others. Whether they like it, or buy into it or whatever is a different
question, interesting in its own right. But my view on folders filled with
half baked ideas is that it's not good at all. If you've read "The Goal" (if
you haven't, I recommend it) - this is is inventory, and it's a liability, not
an asset.

6\. Saying No. This is REALLY HARD. There is more stuff you'll want to learn
than time to learn it. There are more projects you'd like to get done than the
time you're awarded in life. And there is genuine pain in declining to do
something you really want to do, because you need to focus on something else.
But the alternative to this pain is, ultimately, those folders filled with
half-baked ideas. Though I am getting better at saying no, I have yet to get
better at not feeling the pain.

7\. Time management. Everyone has the same 24hrs in the day. The only question
is, how much of this time gets wasted. A lot of people I respect don't spend
time on social media. Author Michael Lewis has talked about how it drains
creativity out of you in small bits, like air going out of tires. I wholly
agree. [Right now, with the covid situation, deep work is super hard. People
are just dealing with it however way they can.]

[0] [https://zenpencils.com/comic/161-shonda-rhimes-a-
screenwrite...](https://zenpencils.com/comic/161-shonda-rhimes-a-
screenwriters-advice/)

------
chucksmash
You can improve matters by a) scoping projects less ambitiously and b)
enforcing a novelty budget on yourself.

A very ambitious project which you will never finish might actually be three
small projects which you will finish and seventeen small follow-up projects
you'll decide to never take on. Better to get the three under your belt than
try to sprint in 20 directions at once and bail with nothing to show for it.

Say that you decide "I'm going to write a personal ontology engine flexible
enough to store everything I know, with a snazzy, super intuitive frontend
written in <new-to-me framework X>, a plug-in system for easily creating
visualizations for specific types of data (oh, like, what if my personal
knowledge DB could take FEN+PGN and let me replay and annotate interesting
chess games in-line, that'd be so sweet!), a bespoke query language, the whole
thing will be backed by <new-to-me storage backend Y> and, hell, I've been
meaning to start containerizing apps at work, I wonder if I should be using
docker-compose as I do this or maybe like kubectl, ...also I need to dive into
the literature around building ontologies, knowledge graphs, etc. Also, it
should probably have emacs keybindings. Probably also support for rebinding
keys and defining macros too. Also, it should have a pluggable module
interface for scraping semi-structured data sources containing things I don't
actually know right now but which I would like to learn at some point. Maybe I
can use the hyperlink structure of Wikipedia documents as a scaffold to get
the thing started. Oh geez, this is really going to need to support multimedia
as well, not just text. Really, this kind of thing would be very valuable in
many different contexts. It'd be great if it could be used to automatically
generate questions about a topic. I could integrate a spaced repetition
algorithm with the question generating bit and then I'd have an amazing study
tool. Hmmm, I'd better keep the whole thing as flexible as possible so maybe
at some point down the road I can productize it! Sure it's a long shot, but
it'd be revolutionary if I could pull it off. I'll start tonight!

To steal from Alan Perlis, "When someone says 'I want to build a personal
knowledge DB as a side project and I want it to have perfect ergonomics, top
grade discoverability, unlimited extensibility, and unparalleled ease of use,'
give him a lollipop."

Even if you don't get stuck in feature daydreams or analysis paralysis and
manage to start the thing, your "gee it'd be swell if" side project has a five
or ten plus year "labor of love" todo list attached to it. The mismatch will
sink you unless against all odds this actually is your labor of love.

As a personal example of the scoping into smaller projects which were
standalone (though not a good example of enforcing a novelty budget) I wanted
to make a personal activity tracker in 2018 or so. Initial conception was the
all-singing, all-dancing, kitchen sink Swiss Army knife of personal data
tracking and visualization, implemented in all the technologies I'd been
meaning to try out. The backend would be a gleaming beacon of modern
infrastructure with everything containerized from the outset, code written in
Rust (in which I was a neophyte), phone app written in Kotlin (in which I'd
only done the Koans, and with no other mobile dev background, but hey, "Anko"
seems to be The Thing to use now, hmm)...

Having been bitten by the bug you ask about in the past, I set that aside.
Instead, I did a bunch of smaller projects with each on their own bringing a
reasonable sense of completion:

1\. Two Python scripts - one to configure desktop OS notifications to fire on
a cron schedule ("Nag! Update your data for <x>") and one for CRUD operations
on time series metadata and data points themselves. Just backed by local
sqlite. Finished in <1 day. Hey look, MVP! Time to start tracking data!

2\. Docker setup for building a Rust binary and then trimming away build
tooling to get a deployable artifact. 1-2 days? Containerization itch:
scratched. Could be a 101 level blog post.

3\. PostgreSQL docker image with CREATE/DROP TABLE scripts. Half a day? I
guess I learned about Docker data volumes. I can refer back to this Dockerfile
in the future, which is like 9/10ths of how I make progress quickly on new
projects.

4\. docker-compose setup for a Hello World level Rust binary that reads a
record from a postgres db running in a separate container and writes it to
stdout. Half a day? Hooray, orchestration.

5\. "Hello World"-as-a-Service web app that uses Rocket to send a Hello World
application/text response. Not very long to finish. Novelty framework itch,
scratched.

6\. Learn about Diesel. Use Diesel to make a single SELECT COUNT(*) query
against the DB. Send query result as application/text response on a dummy
endpoint. Done. Could probably be broken off into a "Intro to X with Y and Z"
type blog post.

7\. Update SELECT-as-a-Service web app to make a meatier query and serialize
response to JSON. Learn about Rocket request guards for managing DB
connections. Another day or two? If step six wasn't enough for a 101 level
blog post on the topic, seven definitely is.

8\. Port the Python CRUD functionality to a Rust REST API atop Postgres.
Deliverable: approximately all the backend we'll need.

9\. Update the Python CLI to use the REST endpoints. Another day? Done.

10\. Start doing Android Hello World apps. Using unfamiliar APIs in an
unfamiliar dev environment in an unfamiliar (but nice!) language. Eww, this
sucks. I'm not having fun any more. Maybe I should first learn vanilla Java
Android app development, then Kotlin, then build on that basis with Anko,
then...

And then, at that point, I realized that aside from enjoying daydreaming about
the idea of a personal activity tracker, I didn't actually give a crap about
having an all-singing, all-dancing personal activity tracker. While I'd been
happily chugging along building the thing, I didn't care enough about the
underlying functionality to bother taking two minutes a day to, y'know,
actually track the data when the MVP nag script ran on its cron. When I bailed
though, instead of "ugh, another incomplete useless waste of time," I ended up
with several completed small projects and more knowledge about what I actually
wanted (to futz around building a personal activity tracker, not to have one).

------
daotoad
Adderall

------
JoelMcCracken
I used to be in this position. Your question really resonates with me.

I think I have broken the cycle, but it is hard to be sure of something like
this of course. I have certainly been able to make more progress on projects
than I have been able to in the past.

I think this has helped me:

\- Make a Someday/Maybe list. Capture your ideas and put them on the list.
This can just be a text file. Feel free to add implementation notes. Then,
when you have time, you can come back and see if the idea still compels you.
The examples you give, for example, sound like things I might have on my own
"someday/maybe" list.

\- Evaluate your ideas/projects. Do they spark interests? What are the reasons
why you desire to complete the project? Do you think that desire will carry
you through to project completion?

I'll give you some examples of myself:

For a time, I was really unsure what I wanted to do after I became
dissatisfied with Ruby. I wanted to keep exploring functional programming,
especially pure functional programming. I also really wanted to work with the
actor model, and at the time Rust 1.0 was just being released, so I started
working on that at the same time.

At the time I played around with a lot of things. But I ended up focusing on
learning Haskell, and my goal was to completely work through this book
[https://haskellbook.com/](https://haskellbook.com/). I was able to finish
this after several "false starts" with Haskell over the years.

Why did I keep working on this project, instead of any of the other myriad
shiny things that pop up on HN? Well, a few reasons:

\- I really wanted to familiarize myself with pure FP. I had become
dissatisfied with OO techniques, slowly thinking of them as an evolutionary
"dead end", and wanted to explore something else. IMO, Haskell was the best
way to explore this.

\- I also really wanted to be able to "read" Haskell. Generally speaking,
Haskell has become a sort of "lingua franca" in the functional programming
community. You often see snippets using its syntax and read concepts explained
using its ideas. When I encounter terms like "typeclasses", I wanted to go
from "eyes glossed over" to "comprehension".

There are more reasons, but suffice it to say that I thought that given my
long term goals, not knowing Haskell had become a stumbling block. So, I
decided to change that, and working through the cited book has worked for me.

I didn't _only_ work on this project. I did take a few breaks here and there
as needs must, and interest naturally waxes and wanes, but the motivation held
and the project is completed.

Having completed it, I have a few new projects that also have compelling
reasons for me to work on them. I have flip flopped between them at different
times, but there have been good reasons for doing so, and the reasons have not
been because I lost interest, but because of external factors.

\- Realize that you will still sometimes just desire to experiment with
something for a little bit. That's OK. The other day I downloaded and messed
with Electron. It was just something I wanted to try out and satisfy my own
curiosity for something random. But you should think of this as being a time-
boxed experiment, and not something that you are committing several years of
your hacking life to. Unless, of course, it _is_ , but in that case, count the
opportunity costs before mentally committing yourself.

\-----

Edit:

I forgot to include this link; I think it might help you too.
[http://blog.fogus.me/2015/11/04/the-100101-method-my-
approac...](http://blog.fogus.me/2015/11/04/the-100101-method-my-approach-to-
open-source/) It has been discussed on HN a few times.

