Commit to your code: a month of pushing in December

Lately I’ve noticed something. As much as I think about my side project and dream about quitting my day job to pursue it full time, I haven’t actually worked on it that much in the last few months. When I come home in the evening, instead of heading for my laptop and banging out a few lines of code, I head straight for the TV and zone out for the rest of the night. In the latter half of 2017 I spent considerably more of my attention juggling between Netflix, Facebook and Instagram than I had on the one thing I thought was my life’s purpose. I almost felt as if I was floating through my life rather than taking control of it. So I decided to do something about it.

The challenge

I’m a big fan of Austin Kleon‘s. Every week I look forward to reading his newsletter and picking up all sorts of inspiration from them. On December first I opened his newsletter, cup of coffee in hand, like I do every Friday and in the very first paragraph the gauntlet was thrown. He was challenging me to take on a 30-day challenge for the remaining days of 2017, and for inspiration he added a couple of links. The first link to his article on how being an artist (or anyone who does creative work) is like living in the movie Groundhog’s Day, how you just have to put in the hours every day until one day you notice that you’ve actually built something worth having. The next link was to a printable 30-day challenge tracker.

Now I know that none of this is in any way profound. Probably since the beginning of modern humanity people have preached the gospel of putting in the work every day. We’ve all heard it a million times, but for me this time it finally sunk in. So I vowed that when I got home I would finally print out that simple page with its 30 boxes and get to work.

My challenge was straightforward: push code (any code) to my side project on GitHub every day in December. I didn’t set any parameters around the length of code or the time spent, but I just wanted to make sure that by the end of every day I had one line of functional code to add to my git repository. I was motivated and I was finally following the sage advice of Shia LaBeouf.

Okay, so I sputtered at the beginning. I got distracted by the logistics of actually printing the tracker itself as I struggled with my home printer, and then I made a last-minute trip to Dallas to see some friends. Immediately I was off to a bad start, but I was determined that for the rest of the month I would have stick to the plan. So after those distractions I began the challenge on December 3rd and through sheer force of will I was able to push code to my side project all of the remaining days in December. For 29 days I did not break the chain.

Photo Jan 13, 10 25 46 AM

What happened

Immediately I noticed that I was spending a lot more time coding than I usually would have. Instead of coming home and vegging out in front of the TV I went straight to my computer. I reasoned with myself that I could spend 30 minutes or an hour, add some small feature or fix a bug, then I could watch a couple of episodes of my latest Netflix obsession. But what I found was that I would become absorbed in whatever I was doing and before I knew it it was midnight and I needed to go to bed or risk sleeping through my morning meetings at my day job. And I didn’t miss TV. On nights I finished with a little time left I’d slip into bed and read instead. I felt like I was living the way I always wanted, finally doing something instead of just zombying out with TV and social media.

But it wasn’t all sunshine and daisies.

About halfway through the month I got a horrible cold. The kind of cold where all you want to do is lay in bed and cuddle with your dog and a box of kleenex. Despite the cold though I was determined to both show up at my day job (I was out of days off anyway) and to continue with the challenge. But since my body – and my brain – were waving the white flag at around 8pm every night I needed to bang out something fast. I did small tasks like adding some small stat to the dashboard or fix a layout bug that I’d been ignoring for a while. And it got worse from there.

Even after I was on the mend I felt too directionless to know what to do. I focused entirely on adding simple tests that, although needed, were not that important. Each test I wrote was the most obvious code path and added little value, but at least I knew I could finish in the little time I had between walking the dog, buying and wrapping Christmas gifts, and spending time with family for the holidays. I couldn’t focus on the important things because I was worried that I wouldn’t have anything that I could actually push at the end of the day.

Toward the end though things did start to turn around. I continued to just write tests, but I took the opportunity clean up the areas I was testing as well, even fixing some previously-undiscovered bugs along the way. Still, I was glad for the break when December was over. I flew out to California to visit a friend for a few days and I left the laptop behind. I didn’t even think about code for the five days I spent in Los Angeles.

Results and lessons learned

Nearly a quarter of my commits for 2017 were in December, with 31 commits for the month and 104 for the rest of the year. I added a net of over 1,700 lines of code to my project, many of which are for tests that should ensure the project remains stable. I also finished the challenge with a better understanding of the code I have because by staring at it every day for 29 days I didn’t give my brain enough time to forget it.

Chart of GitHub contributions

But there are a few things I will change for the next time. First, I will allow myself a few cheat days. There were a few days where all I wanted to do was curl up on the couch and binge watch season 2 of The Crown, but I felt chained to my desk. I feel like having a little room to breathe would allow my mind to reset and reenergize so that I could return to my code the next day with renewed interest. Next, I will change the challenge so that it’s not necessarily hinging on pushing code, but instead I should be content with writing code. That way I can work on big projects where I won’t necessarily have pushable code every day, but that I can chip away at each night. Maybe the challenge can be to code for one hour every day. Or to write (or delete!) at least 10 lines of code per day. Or add at least one new view a week. Additionally, I would like to do similar challenges for my side project that are not code related, such as reaching out to contacts, getting user feedback, and researching competitors.

Through it all I did learn some important lessons. I learned that I do have the time to work on my passion project, despite the excuses I give myself. I learned that even if I only have a very short amount of time available, I can still add value to my project with a few lines of code. I learned that writing tests is a great way to find bugs in your old code (duh!). And most importantly I finally realized that small bits of code written every day really do add up to a sizable (and usable) amount of work.

Here’s to a future full of many small pushes.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s