How do you finish big side projects?

2018 in Review

Every year since discovering bullet journaling I like to reflect on how I spent my time. In 2018 there has been noticeable improvement: I’ve been sleeping more, working closer to 40 hours a week, and more consistency with my schedule. There is however one major problem: I did not complete a single major side project!

How did I not complete a single major side project in 2018?

It comes down to my work habits. Looking at my how I spent my time I have two modes: Sprinting towards a finish line at a ridiculous pace or sloth mode, criminally chilling between projects. I did finish some smaller side projects, ones that could be sprinted through in a few late nights and a weekend. The problem appears to be a cycle I’ve created: Sprint through a small project, sloth it up until I recover and move on to the next project to start the cycle again. Now how do I fix it?

How do you manage your time for side projects?

In researching a few articles, books, and a bit of discussion there are some simple steps to make 2019 the year of the side project:

  1. Break down your projects into the tiniest goals. If you know a project is going to take months: compose it down into 20 minute tasks. Working on a month long project is terrifying; working on a small task for 20 minutes sounds like a good way to start or end the day.

  2. Be consistent when you work on side projects. It’s much easier to plan your day when you know 10:30 to 11 am is your side project time.

  3. Try to work a little bit on a side project many days in a row. Once the habit forms, it feels weird not to spend mornings on a side project. Once you stop it feels weird to resume working on a side project.

  4. Don’t sprint and exhaust yourself. Instead try working on side projects a little bit at a time from 20 minutes to an hour and half. That way you can keep the pace up for longer stretches of time without burning out or loosing interest.

  5. Ensure you are taking time for yourself or having designated time that can’t be spent on side projects. I have the tendency to get really into a project and missing out on sleep, eating, and relaxation to try and sprint through it until completion. I’m basically begging for death, while metal as fuck 🤘, that is not really how I want to go out.

  6. Accept the outcome and let it go. This is where I shoot myself in the foot the most, when the 20 minute timer comes up and I impulsively start the timer immediately again telling myself “I’ll be able to finish it this time.” Then again. Then again and oh look, 3 hours just passed by. The gym is closed, the heat at the office has been shut off, and I haven’t eaten for 6 hours. Instead you need to retrain your mind to accept the result, whether the task is finished or not you made progress. Do something else and come back to it at the appropriate time.

Does this advice actually work?

This blog is the proof that applying those practices did help me complete at least one project this year. I wasn’t perfect, there have been stretches where I overdid it but it was still more sustainable than any other project I tried to work on in 2018. Other project ideas even came up while working on this blog but I did my best to write them down so I can return to them later. I imagine with more practice using the above strategy I may improve further. Still though how do you stop when you are enjoying yourself the most?

How do you stop when you want to keep going?

My biggest issue is stopping myself when those 20 minutes are up. There were parts of this blog I really enjoyed working on and felt compelled to see features through so I kept working on them. The consequences of doing so are fairly minor but they will add up. It almost physically hurts to stop working on a task that seems reachable within a few minutes to an hour, I think there’s some latent fear that I will not be able to solve it later even though historically I do. I don’t have a great solution for this yet but after asking the community in the Clojure slack I got some good advice:

  1. Set a physical alarm somewhere you have to get up and stop. This way you can’t just keep working, you have to physically move to turn it off.

  2. Reward yourself for being disciplined. Go ahead, put in your 20 min then get a fancy hipster coffee. You earned it!

  3. Switch gears to a more enjoyable activity. If your problem is that you are “hooked on fun” (as it was put in the channel) then watch a movie, play a game, go on a date, eat, it just has to be something you will enjoy more.

  4. When the timer is up, make sure you take a break or switch tasks. Treat it as an equally important part of the process as the task itself.

Of course I accidentally thought up of another side project in the form of a CLI tool that closes a tmux environment or other shell command after a time limit (likely killing any running development REPLs and servers). It still needs fleshing out but check out the wireframes:

Side Project Wireframe

What’s next?

If you’re like me, we simply need to practice discipline. After more than a decade of working like this on personal projects I need to really put some time and effort into breaking those habits. There are three ways I’m going to approach this:

  1. Read books on building habits and discipline. Learning how to influence the brain’s decision making and reactions to stimuli will be very valuable in figuring out a more actionable plan.

  2. Practice using the advice above to develop a better sense of pace and consistency.

  3. Track side project time in my bullet journal so I can observe improvements or patterns