My dog, Irwin, and I share many common interests, including playing frisbee, going on trail runs, eating good food, and participating in hardcore coding sessions. OK, maybe that last one is just me, but when I do dive headfirst into a serious software development task, I try to take some inspiration from my canine friend.
When Irwin puts his mind to something, he is focused and persistent. For example, when we play fetch at the park, he makes it his mission to retrieve his favorite ball and return it to me as quickly as possible, and he ignores all of the other dogs around us. Normally, he’d be interested in socializing with his doggy buddies, but fetch time is fetch time, and nothing gets in the way of that.
I try to take a similar approach to my coding sessions. I do everything I can to eliminate outside distractions during these focused times. Working as a developer at a fast-paced charge capture and secure messaging company means that there is always a lot to be done on a number of different fronts. However, to be able to tackle tough software problems, I need my entire brain to be concentrated on the task at hand. Much like Irwin, I ignore for a while all the things around me that I’d normally engage with, and throw all of my energy at my code.
There is a lot of research out there, including a study reported by the BBC, which argues that multitasking of any kind makes us less productive. I personally believe that there are certain times when multitasking is OK and even necessary to get the job done. However, like Irwin, I know that certain tasks are just more productive, more efficient, and more fun when I devote my full attention to them. My coding sessions rank highest on this list, which is why I like to refer to my approach to software as Dog Driven Development.