Ask HN: What change enabled you to consistently finish your side projects?
1 day ago
Related to https://news.ycombinator.com/item?id=44733800 I wondered if anyone discovered a change of habit, mindset or approach that enabled them to consistently finish off side projects, when preciously they wouldn't.
I'm still not great at it, but the biggest thing that helped me was to give myself a rule, "Don't talk about what I'm planning, only talk about what I've done". Explaining a project's vision or goals give my brain a mini-version of the feeling of accomplishment of actually doing it, and I found that I would use that as a replacement for actually building stuff (which is much more work). Instead, if I only talk about the parts that I've completed, it's very motivating to build the next step so that I can share it. It also gave me more flexibility to change course during a project.
Most of the time I have three side projects that I'm committed to and I really make progress on two and the other is aspirational -- which is fine.
Right now my current "project" is building a stock of photos so that I can post a continuous stream of photos on social
https://mastodon.social/@UP8/tagged/photography
This is pretty consuming because my developing process is intensive. I took about 3500 photos of two basketball games on Jan 31 and picked out about 400 to develop in DxO, I chose one color grade for all of them because a lot of the girls had bad acne that I wanted to minimize, now I am cropping them and applying local microcontrast to the parts in focus (but not faces of athletes with acne) I expect this take a few evenings, then there are many more batches of photos to develop including other games as well as tranches of flowers and landscapes. I have probably 15k undeveloped photos where those came from.
Another stream of that work is building an autoposter which will make it easier to keep these coming, for a while I was posting to Mastodon + Bluesky but lately I am posting to Facebook and LinkedIn, want to add Instagram (hate the UI for uploading) and Threads and anything else I can. That's blocked by my work to finish my Python API for using Postgres as an arangodb-like document database which blocks a whole bunch of projects that both involve moving forward, like a general purpose trainer for text classification and getting YOShInOn (my RSS reader) off arangodb. Feels overwhelming at time but the train is moving.
To summarize, sequential building didn't work, and parallel building you're currently in the evaluation phase of?
Parallel but with a limited number of streams (3) that I’m committed to. See
https://en.wikipedia.org/wiki/Kanban
My RSS reader is ‘active” in the sense that I use it every day but I haven’t touched the code in months. I’ve been using Kanban control for side projects since maybe 3-4 years ago when I started doing side projects again. At the beginning of the year I had a lot of projects that were more programming heavy like I wrote a Python chess program that could beat my son that didn’t have time control, I did some work towards a Java chess program which would have had time control so we could take it to the chess club but my son quit going to chess club so I mothballed it.
The photo thing is converging towards transitioning from semi-pro to pro, figuring building my rep as a ‘social media photographer’ will get me work. I have other imaging projects in mind such as something to view stereograms with WebXR and something that can compose individual flowers to make ‘infinite flower fields’ that could be printed on fabrics but these are at the ‘pile of notes” phase waiting their turns.
Narrow down clearly what exactly I want to do with this side project.
Too many of my early projects sort of became a jumble of different aspirations, most of them unrelated to the core product idea behind the side project. I want to learn Elixir, I want to try Next Auth, I want to try Remix, I want to learn Haskell, I want to build my own Shopify, I want to -- and the list goes on. Being clear and honest with myself about what those things are makes the scope of a project more clear to me and I can make judgment calls this way on what stays or goes.
I have 2 primary side-projects, one that has become a popular open source project and another which is a personal tool.
For me, I commit myself to work on it every day except vacations. I use a kanban board for tracking work and just do things that feel natural. When I'm grinding out a big story, sometimes I switch and just focus on small bugfixes or random ideas to rebuild the motivation.
My other side project is much less worked on. But when I have a need in the software, I just focus on it for a week and document everything in Github issues. Usually the needs are quite complex and the fun of solving and getting a nice solution is fun enough to help drive me through.
I only work on things that I have a need for and I think that helps a lot with the mindset of finishing it off.
For me, a break due to a stressful period at work or long vacation is typically crushing my momentum, and I'm rarely able to continue working on the side project after. How do you deal with it?
The most important mindset change was not to think of "Making" as something different than "Launching". I saw a startup school video that basically said you should Launch and then Launch again and Launch again, and again and again... I quit making a side project and then launching it. I just sat down and wrote out a launch list. One of those items was to make the thing useable. Some might claim this is like MVP idea. but that's a whole other thing. This "Always Be Launching" is really wrapping the product up in the hype from the outset.
I've started to do things like just email my list and explain that I'm considering making something. what questions or concerns would they have about it. And I consistently ask my email list if there's something I can improve about something I already launched.
The Book Launch by Jeff Walker helped put into plain terms the actual questions and how I go about pre-launching something I haven't made yet. It's helped me build about three or five new courses very confidently because I had been asked a bunch of questions from people who would go on to take that course.
How is launching impacting your commitment to your project? Once I built an MVP, I'm typically satisfied and move on (even though I convinced myself for weeks that my ambition would reach well beyond building an MVP)
I gave myself two hours to ship.
Obviously you're not going to complete entire projects in two hours, so you cut scope, while ensuring some version of "the thing you want to do" is possible.
So for insane forms with dozens of fields, you start with one field.
Then you iterate.
The idea is that at any given point outside of those two hours, your project can be used. It doesn't do ALL the things, but just enough to be useful.
What made it useful to you - the fact you could use the MVP yourself (internal motivation) or that you had an early user base breathing down your neck (external motivation)?
Did this approach work consistently, or were possibly other factors at play?
both - it was useful to me, and i had embarassment from shipping too early
has been 4.5 years straight for this one project, doing two hours on workday mornings
Linters that catch any silly mistakes. Shellcheck, actionlint, action-validator, prettier, ... coupled with automated release process. I find that when merges break due to trivial issues I lose motivation. Also Lefthook with stage fixed is a lifesaver.
I don't have any side projects that I am forecast will make money, so I don't feel any obligation to finish them. My "main project" is my job that pays me so that gets all of my attention. Side projects are just to blow off steam, so feeling an obligation to complete hurts that goal
Drawing the line between projects I do to learn and projects I do to solve a problem I (and potentially others) have.
Not long before every project was a way to learn new technology and I quickly lost interest once "the hard part" was done.
Not a great answer but finish them broken. If they're just for me and/or my company, document when they fail and be done with it. If it's documented then it's not a bug
Don't try to finish them. Just work. It's like folding laundry. It never finishes.
The biggest change is having money.
People generally envision something that is more akin to a product than a prototype, and one thing money is good at is that if you have enough, you can get far closer to that vision faster by dumping it.
No project, especially side projects, is ever 'done'. There are only projects that are in various stages of usefulness.
Don't focus on what is still missing. Instead, focus on one or two features that can be made more useful.
In no particular order: Decide on the scope in advance. Beat procrastination. Beat perfectionism.
Perhaps expanding mindset from "finish" to "finish-launch-run", still tough though.
Main things:
1. Spend less time on the internet - I spend 2 days of the week without internet access so I can finish my projects in peace
2. Use as little technology as possible to finish them. I find having a limited tool-set actually lets me think about the creative part instead of working with too many tools and being distracted learning more tools.
3. Don't become attached to projects. If it doesn't feel natural, discard it and work on a new one. I regularly finish projects, but I also have a large pile of discarded ones.
1. This also helps ppl better understand the crave for chat/social and generally getting high on internet info. now with local models being like pocket archives of most all that you can think of, it is also possible to do very accelerated coding with zero net connectivity.
2. prototyping is often about allowing oneself to stitch things in the ugliest possible way.
Fast test automation. Of course, test automation is only as fast as your application can execute.
Vibe coding.
This doesn't deserve the down votes. For technical people who aren't programmers (or at least, not very good ones), LLMs are incredible.
Agreed, even if they are technical, vibe coding has been one of the reasons for getting dead project alive.
1 reply →
Bupropion. Not joking. I felt no different, but suddenly started to stay attached to things. If not for a personally unprecedented amount of output, I'd have assumed it was ineffective and stopped taking it.
Co-conspirator. Having someone you can bounce ideas, talk through things I found to be key. Even if it means talking to your toddler :) But in all seriousness, I found that's the only method that has in the past made me make the right decisions regardless of subject. They don't need necessarily need to hold you to your commitments but just the idea of telling them what you're trying to focus on helps tremendously. Currently, not having anyone yet having moved recently. Using my therapist ;-) One thing I found; the "co-conspirator" does not need to be a subject matter expect to any level. Just someone who's willing to listen is key.
Here are things I tried to do:
Maybe yet another AI focused idea to solely help you stay focused and on task.
I need all of this...
Thanks for your insights. So far I've always worked on solo projects, and there's a faint glimmer of hope that having a (accountability-) partner would allow me to finally ship.
I'm a father to a young child, recently moved, aged out of tech, paying for over 60 domains aka projects, ADHD/OCD. The struggle is real. Moved out of he rat race from silicon valley to slower but non-tech community. Having a hard time finding anyone to sound things off with. Virtual/pen pal never worked for me. Absolutely nothing like f2f over coffee, but finding that rambling about my tech problems just pushes people away. Actively working on being a "good" listener as I must learn this new behavior for my child. Although I listed what I say to myself can help. I actually can't seem to achieve any results that amounts to edging me towards better/higher productivity.
Anecdotally, finding a friend for me is WAY harder than it was finding my soulmate! Sad.
Claude.
I'm able to take my ideas to a good stage and actually do the justice now. I'm not limited by my own skill/time/patience.
I allow myself only two projects in flight. I do not allow myself to start another one until one of the existing two is finished or abandoned. Enforcement is easy because “starting a project” is a very clear point in time and it can be snipped right there.