In September 2018, I made it my goal to publish and maintain three open-source projects by the end of the year. I wrote a blog post about it. I made a plan and a scoreboard. I was feeling bold and up to the challenge.

But then I didn't do the work.

I did keep writing code on my own time. However, that code didn't result in a single solid project. I'm not really sure why things turned out the way they did. Therefore, I'm not really sure how I should actually feel about this failure. Maybe I got lazy. Maybe I chose the wrong goal. I don't know. Let's try to find out.

Strong start, weak finish

After deciding on the goal, I tried to design a support system for it. I wanted to make it as easy as possible for me to work towards my goal, and conversely, make it as difficult as possible for me to slack off. The most important part of my system was a scoreboard which I used to track deep work hours (hours of coding without checking social media or taking unplanned breaks). I would also review my hours on a weekly basis.

The scoreboard did its job. During the first weeks, my deep work hours were very low. In the weekly review, I had to face my mediocrity. It wasn't fun. So I promised myself to commit to more deep work hours. Because of that, I actually saw the hours going up during the next weeks. This was great.

However, at some point, the weekly hours started dipping. I also stopped doing the weekly review altogether. First, I could see my results dropping–after that, my overall motivation. Eventually the whole scoreboard turned from a tool of self-management into a visual reminder of my shortcomings.

What happened? Why did those weekly hours start to dip?

Poor habits, stress, and career

First, it's normal to have higher levels of motivation and energy at the beginning of a project. There is this natural high that carries us through the first days of our new endeavors. We might stay up late and sometimes we even forget to eat.

However, at some point this high will start fading away. This is when the grind starts. And if you haven't taught yourself to show up even if you don't "feel like it", you're in trouble. You start putting off your work or looking for something new and fun to do.

I haven't committed to deep work as strongly as I would like to. I still struggle to fit deep work hours into my week. Not necessarily because I lack the free hours, but because I'm afraid to push myself to focus on something for long periods of time. I need to build better habits for deep work, and more importantly, I need to get more serious about it.

Second, life happens. Work got more stressful during the fall and early winter. There was suddenly much more stuff to be done than I could fit into my work week. Luckily, I worked at a company that didn't have a culture of overtime and therefore, my overall work hours didn't increase noticeably. However, I did find it harder and harder to turn off work mode even when I got home. I was feeling more exhausted and less thrilled to start working on my own projects after a full day of client work.

Finally, I started thinking more and more about my future career as a developer. Primarily, I couldn't decide whether I should try to specialize or be a jack of all trades (and master of some). This internal conflict affected my personal projects since I kept second guessing whether a particular project was a good fit in terms of my career development. I spent a lot of time spinning my wheels instead of doing actual work. In the end, I decided to prioritize my interests and curiosity over the interests of my potential employers. I wrote more about this in my post "What to Learn in 2019".

Final notes

I haven't actually set a goal like this for 2019. To be honest, I'm a little afraid of reproducing the demoralizing aspects of this experiment. I'm afraid of losing my joy of coding. And I do believe that play and having fun advance our learning and ability to ship much more than we give credit for it.