
Ask HN: Choosing a Side Project - cauterized
When the time and energy you have available to work on side projects is limited, the opportunity cost of working on the wrong one is enormous. How do you choose which of dozens of ideas to pursue?
======
csallen
I blogged about coming up with an idea for my latest project last week:
[https://www.indiehackers.com/blog/how-to-come-up-with-a-
busi...](https://www.indiehackers.com/blog/how-to-come-up-with-a-business-
idea)

At some point, I narrowed a list of 40+ idea down to 4, and then I picked one.
I used a somewhat formal process to help me out, and that was to evaluate each
idea based on a checklist of 7 requirements:

1\. Do people need this? (i.e. have I identified a niche that I'm very
confident will love what I build)

2\. Can I personally do a good job marketing and distributing it? (i.e. do I
know where the target customers hang out online and am I sure I can get the
word out about my product there)

3\. How hard will it be to avoid churn and keep retention high? (i.e. is the
product set-it-and-forget-it, or at least somewhat naturally re-engaging? or
will it require lots of effort from users' to keep using)

4\. Is it meaningful and beneficial to the world? (i.e. will I enjoy working
on it for years to come)

5\. How long will it take me to build an MVP? (i.e. do I have time for this
now)

6\. What kind of effort will it take to keep it running long-term? (i.e. will
I have time for this later)

7\. Can this idea actually generate revenue? (i.e. do I have a business model
in mind that has been proven to work for this kind of idea in the past)

My advice to you is to come up with a similar checklist, run through your
ideas, give each a score, and go with the highest one!

------
jtrtoo
An alternative approach: break side projects down into short-term projects.
Basically minimum viable products. This shortens the time to feedback and
minimizes the opportunity cost from picking the wrong one.

It's generally easier to optimize this path, then to "pick the right idea."
Because it's basically impossible to know ahead of time. And, besides, you'll
learn a lot through each iteration. Good luck!

~~~
cauterized
Yes, I'd love to do that. Trouble is, the last couple MVPs I did took 6-18
months each, due mostly to limited time available. (And no, they couldn't be
pared back further - these were basically proofs of concept). Hence the
question!

------
euroclydon
I've had several and they've all been great learning experiences. I started by
customizing some php-mysql form generator and selling databases to small
businesses. Next I learned ASP.NET and wrote web services to collect water
treatment data remotely. After that, the biggest and most successful side
project I did was Cupcake Wrapper Creator. I rewrote it once. Then I started a
SaaS project in Django, but never finished.

Recently I gave up on a AVR emulator I was writing (in C, to learn C at the
same time). The core controller structure and instructions were fun, but when
it came time to implement the IO, I realized I just wasn't that interested.
Plus I have older kids now who realize when I'm neglecting them, a bigger
house to maintain and a more demanding job.

Now I just do a few algorithm exercises in Juypter or crypto challenges in Go
each week. I'm still learning and I get a sense of accomplishment without the
nagging unfinished project aftertaste.

------
exolymph
Depends on your goal. Are you looking to make money, learn something, have
fun, or simply stretch your creative muscles?

~~~
cauterized
Great question! I'd like to make something that will eventually bring in a bit
of (relatively passive) income and ideally accomplish at least one of the
other three. TBH, just working on my own code rather than the legacy deathtrap
we have at work feels like a nice change of pace.

------
tmaly
I would approach this with two things in mind.

1\. Pick something you can do in a relatively short time, say less than one
year. That way you do not run out of steam working on it.

2\. Pick something that you will learn a new skill or skills working on.
Regardless of if what you choose succeeds or fails, you still come out ahead
with a new skill.

------
wwalser
One compelling idea that I heard recently was looking around on odesk and
similar sites for lots of similar requests and building a tool that solves
those problems.

The upside is that you can find a probably that people are provably interested
in paying money to solve. The downside is that most ideas you'll find are
going to be a real grind to solve and are unlikely to be passion projects
which is often helpful for success.

~~~
borplk
I've tried doing a little bit of that before but didn't seem work very well.

I could hardly spot a good "pattern" in the jobs posted.

Most of them seemed ad-hoc and custom enough that after looking at a 100 you
will still struggle to find a common denominator.

~~~
wwalser
[https://blog.parsehub.com/how-we-got-our-first-10-paying-
saa...](https://blog.parsehub.com/how-we-got-our-first-10-paying-saas-
customers/)

I believe this post was the genesis of the odesk idea.

SaaS tends to be inexpensive compared to paying a human to do something, even
if that human is underpaid, since costs are amortized across many customers.
You're paying for something more similar to (CPU time+profit margin) instead
of human time. I'd also hasten to add that there are two sided marketplaces
where average costs are higher.

------
bwackwat
Do what inspires you! That likely implies you don't consider the opportunity
costs; be ready to take risks and learn from your mistakes.

Try to reach milestones on any project. Personally, in this stage of my
software engineering I almost always intend to ship projects with "production"
quality to "production".

------
nicholas73
Make something you need yourself, as it gives you insight into making a good
product, and likely others will need it too. Worse case, you made something
that makes/saves you money even if it doesn't scale.

------
rer
Write down as many ideas as you can. It helps improve an idea before wasting
time on it.

~~~
1_listerine_pls
And also to prioritize.

