I just came across this article on CodeProject about Programmer Momentum (Why a 15 minute side track actually costs an hour) over at medium.com.

This article pretty much puts into writing my biggest frustration – not being productive enough with the amount of time I have available.


If you read through it and take a look at the graphs, it seemingly presents exactly how I find my productivity - best at night.  A little further down it talks about gaining experience - learning to debug and searching for answers on google etc. But lets not get into that now.


I wanted to comment about the section called Time's Up which deals with working 10 hours in a row, being "in the zone" and amazingly efficient.  I can fully relate to those 10+ hour streaks of programming that are discussed here; and I know that when inspiration hits me, walking away to spend some rightly demanded time with the family is the hardest thing in the world to do.


But there are a few things we can do to help us get back into the flow of things, picking up where we left off:

  1. Comments and TODO Lists - Many tools have functionality that can reach into your code and generate a list of things that need to be completed from your carefully constructed comments - in Visual Studio it's the task list generated by any comments starting with TODO:
  2. Schedule a reminder - make a note to yourself in your calendar on what your next steps will be.  Include a list of steps to complete if it's a particularly complex task; the more information you brain dump here the easier it will be to pick up where you left off.
  3. When starting again, make sure you have a good amount of time available to review what you did in the previous session; compare notes with yourself and look at your list of TODO items.

The thing to take away from this section in the above article is to know when to stop, walk away and go home.  Often times when stuck on a problem, a good night's sleep will bring the answer to you the instant you look at it again.  So learn to compartmentalise and “hibernate” your work so you can pick up where you left off with a minimum amount of time; relax and get some rest.  You're no good to anyone if you burn out.


Related Articles

Consuming HttpModule events in Umbraco
23 October 2015

Consuming HttpModule events in Umbraco

Umbraco provides the ApplicationEventHandler class to derive from when connecting to events in modules, but it's not immediately obvious.

Indexing content in complex Umbraco data types
25 September 2018

Indexing content in complex Umbraco data types

The Umbraco CMS is a very flexible and open platform for building an expressive and intuitive Content Editors interface, but sometimes that comes at a price when it comes to indexing the produced content for Lucene/Examine based searching.  A bit like looking for the needle in the haystack. In this article, Rob takes a look at ways to clean that content up while indexing to surface keywords and presentation without any messy artifacts.