HACKER Q&A
📣 frozencell

How to Finish a Side Project?


I studied CS in college and for a few years I had this project of building an app to crawl and visualize the intellectual web (starting small with the Twitter API for example; and asking feedback on programming help Discord servers for quick reply). However, I never managed to keep consistency in the development of the app, despite of being mostly committed (I don't have many responsabilities or priorities).

I feel like I have a disease to focus at this point, but I also feel like most developers can't ship a useful solo project and it recomforts me.

I only manage to focus in the evening or when I have somebody to talk with about the app or when somebody on a forum can help me to fix a bug.

So when you are blocked because the side project path is not clear, what do you do?


  👤 rozenmd Accepted Answer ✓
I wake up at 7am each day, and work on my own stuff until I either ship or it's time for paid work (normally it's two hours).

It was incredibly difficult to get started, but once you persist it becomes an automatic habit. I've written books, shipped several SaaS projects, and blogs in this time over the last few years.


👤 themodelplumber
That sounds like a cool project. Always a bummer to see that kind of thing fade into the periphery for sure.

This may be a good opportunity to zoom out a little bit, and work on a personal system for finishing side projects, or other projects that are taking a long time.

There are lots of possible ingredients, metaphors, and so on, but what's most important is to keep changing and reorganizing your approach in order to find those ingredients that work best for you and keep you engaged with the project over time. Even or especially when distractions or huge problems come up.

A really simple tracking ingredient that works well for me, for example, is to measure something I call executive distance: How much time has elapsed since I've done anything on the project. This distance can affect motivation, working memory, technology approach & technical debt, and so on, so it's important to track it as a way of helping you determine whether your overall plan is really working. If the xd keeps going up over time, your plan needs to change.

You may also want to look into using automation and systematization (more the latter at this stage, I'd guess) as topics to research. They require a more grosso-modo approach to some details, but in exchange you are able to design and manage a system, and this is the metaphor most people want when they need a lever (so to speak) to use on a daunting project.

Good luck to you, hope you find a way back to that project.


👤 bigiain
> So when you are blocked because the side project path is not clear, what do you do?

Mostly, I acknowledge to myself that I don't care enough to finish it into a "shipped project", and just let it go.

For me, most of my side projects are about learning and satisfying my own curiosity. The can have accomplished their entire goal without ever being "finished" in anybody else's eyes. Once I've answered "I wonder if you could do {foo} and get {bah}?", I'll mostly lose interest once I've demonstrated to myself that I can (or can't). Often I'll lose interest because in the middle of doing {foo}, I'll discover some other interesting {baz} that I want to investigate more than I want to achieve {bah}.

If you're doing your side projects for other reasons, you'll probably have different motivations. I'm not looking to fill up a portfolio of things to show off to potential employers, or trying to build passive income or bootstrap my own startup. If that what your side projects are for then shipping them actually matters. For me, shipping would be a boring but of extra crap to do after I've satisfied my own intellectual curiosity.


👤 paraxisi
This is what worked for me:

Allocate a certain amount of time per day eg. 4 hours in my case. Regardless of what happens, do your absolute best to hit that amount of time daily. Whether that's researching problems, applying fixes, or just writing code, do as much as you can. I used a time tracking app, and this helped me push forward and get some of my side projects done and launched.

Good luck!


👤 adamius
Sounds like you forgot why you started AND/OR haven't broken the next step into something small enough you can continue/resume. That sense of why clarifies the drive to move forwards. What's blocking the next step? Too big a jump? Something in the way that you need to step around?

👤 ge96
Might not be a good suggestion but posting online could help. When I see followers on a project grow, gives me motivation to do more. But can also "sell out" going down this route eg. doing it for the likes.

Recently I have been wondering what will be my lifelong thing that I work on.


👤 ecesena
1) find someone to work with, 2) strip features down to the minimum, 3) give yourself an arbitrary deadline e.g. do a weekend hackathon and publish the result no matter what.

bonus: find someone that pays for what you published, and now you have a startup.


👤 fuzzfactor
It's a side project, you're not supposed to have a deadline.

Though sometimes a deadline makes "completion" more of a certainty, if you want to complete a side project you may need to push the milestones to a conclusion in some unfamiliar way other than the well-known corporate deadline.

And completion may look very much different, you may end up with less of an MVP and more of an incredibly useful product.

So you work on it anyway, even without a clear goal all the time, you want to make progress regardless dont you?

Something good will come up in ways that will not happen if you halt.


👤 trinovantes
Cut down the scope as much as possible to get the core functionality working

Originally a lot of my ideas were standard SaaS websites but I later realized the core functionalities that I wanted to build can be accomplished by simpler things such as userscripts or electron apps


👤 thiago_fm
Get another coder to finish it with you and learn how to share work and motivate others to work with you.

👤 oweiler
Reduce your project to its absolute minimum, release it, get feedback.