Red Squirrel Reflections
Dave Hoover explores the psychology of software development


[Previous entry: "Raising the Bottom"] [Main Index] [Next entry: "New Arrival"]

Timing and Rhythm
Friday, April 16, 2004

"Good programmers are a little bit lazy: they sit back and wait for an insight rather than rushing forward with their first idea. That must, of course, be balanced with the initiative to code at the proper time. The real skill, though, is knowing the proper time. That judgment comes only with the experience of solving problems and reflecting on their solutions." --Programming Pearls, Jon Bentley

One of the lasting insights that I gleaned from Ron's Extreme Programming Adventures in C# was the importance of timing and rhythm in programming. "Pairing" with Ron revealed to me how integral these concepts are to his craft. Many of his micro-decisions were based on his sense of timing.

The rhythm of Ron's programming reminded me of my experiences with martial arts. I spent three years studying Kenpo. I remember watching advanced students and being impressed with their timing. They had the ability to control not only where their strikes and blocks would land, but also when. There is an optimal moment for each movement that maximizes effectiveness. I have a tendency, in martial arts and in programming, to unleash a flurry that can overcome most ordinary opponents. But when I am facing a more advanced opponent, an uncontrolled flurry leaves me tired, frustrated, and unsuccessful. I know where to focus my power, but I often fail to pay attention to when I should focus and when I should hold back.

I have noticed since finishing Ron's book that I have been more attentive to my timing. I find myself taking more breaks. It has helped keep my mind fresh and focused. Are you aware of your programming rhythm?

Posted by Dave

Powered by Greymatter