The long five-month winter in Wisconsin left me with a few kilograms too much and I knew I needed to get back out there and exercise. I usually preferred listening to music during my long runs but I couldn't find anything enjoyable this year. Since my girlfriend pointed out that she's listening to podcasts on her runs and it could be a good way to keep up with new things for us as a developer I was looking for good IT-related podcasts.
I found a few interesting ones and just picked a random episode for my first podcast-driven run. I thought the Getting Back Up episode by Get Up And Code was a good match. Luckily, even though I immediately liked the style of host John Sonmez, I didn't expect that the podcast was about fitness for software developers. Nevertheless, the content was a very valuable lesson not just applicable for my fitness goals.
Consistency
John talks in the episode about the importance of consistency in your workouts and work life. He emphasizes that we should not focus on being perfect. If you are trying to be perfect, it will necessarily slow you down, since you are spending part of your energy to avoid mistakes.
This also includes not to overwork yourself. Last year, at the beginning of my first full-time job experience I often put in my full eight, nine hours on Monday and Tuesday and went home to do more work on other side projects. Inevitably, I was unproductive and exhausted towards the end of the week. A marathon runner doesn't win by running the first part extremely fast, he's consistent with his speed over the total distance. It's the same thing with software development. Don't try to implement everything on one day - not that there is anything wrong with having super productive days - but always keep your overall productivity and energy level of the week in mind.
Getting Back Up
While the goal of having a very even, balanced productivity is desirable, it's not very realistic. Everyone has an hour, a morning or even a day which wasn't fruitful at all. We all have bad days once in a while. It's important that it doesn't drag you down. If you can't get a bug fixed in the first three hours of the day, don't be like "I really don't need to try for the rest of the day anymore." The podcast host John gives a diet example: if you are on a diet and eat a big meal, just because you are missing your calories goal, that doesn't justify eating ice cream on top of it. When we screw up or are unproductive, let's leave that behind us as fast as possible.
This also means not to put all of our effort into making up for it. If you have a bad day and try to work twice as much on the next day, you'll burn yourself out and ruin your energy level for the following day. Of course, you've to make up for the lost day again and you'll start a vicious up and down circle of unproductive day — productive day — unproductive day!
Be a Consistent Runner
In summary, try to imitate a runner during your work. Don't run too fast at the beginning, do keep an even pace. Don't give up when you fall down, do get up right away. Don't try to make up for lost time, do go back to your original speed. Once again, if you want to dive deeper in the topic, here is a shout out to John's excellent episode.