One of the things that has been a recurring theme in my world is what I call an ebb and flow of natural distractions. Often I don't intend to do this, but what happens is I get so many balls up in the air and I try to juggle so many things at the same time, that I end up driving myself to literal distraction. Sometimes, it's fun, but other times it can have adverse effects on both my family life and my professional life if I'm not careful or if I'm complacent.
There's also a flip side to this, too, in that I sometimes bury myself in so many good "to do" items that I hide from myself (for a time at least) that I am procrastinating on a huge project or commitment, and I am fighting to try to find time to make it happen. The difference is that, often, I am finding the excuse to use the other important things I want to do manifesting as a distraction and a procrastination effect on the things that I really need to do.
I've written in the past about the fact that I often procrastinated because I was bored. I can truly say that's not the case this time around. I'm genuinely enjoying all of the testing advocacy that I'm involved in. It feels like I'm fighting a good fight, and I love that aspect. Sometimes, though, I feel like I'm being faced with something that my pride won't let me put down. Right now, that's automated testing. I admit it, I'm not great shakes when it comes to programming. I will likely never get hired to be a software developer because it's just not something I like doing enough to commit to being excellent at it. I do, however, like to solve problems, and I feel elated when I can solve them, and frustrated when I can't. Thus, I find myself in the situation of having to learn so much, feeling like it's hopeless and never ending, and thus, not meant to happen. This situation keeps repeating itself until I find I'm spending an inordinate amount of time trying to do something, being ineffective in the process, and dropping the ball on other things that are just as important, but not getting the attention they deserve.
Does this sound familiar to anyone? I know I can't be the only one that deals with stuff like this, but yet I feel like it comes up regularly enough that I need to try to approach is somewhat differently. It's through this that I'm trying an idea called "Constraints and 'The Hours'". During certain hours of the day, I put certain efforts into different piles. Active exploratory testing I consider hugely productive time. Reading blogs to get testing ideas and insights, I consider productive, but not as productive as actively testing. Dealing with email from my work account I consider neutral time. It's neither productive or distracting. Email from my personal accounts I consider very distracting during this time. Social network like Twitter and Facebook I consider to be very distracting during this time as well. The truth is, they may be either distracting or productive, depending on what is going on. For the most part, though, I try to maintain as well as possible the idea that anything that is not work related during work hours is to be treated as a mega-distraction.
By doing this, I give myself constraints, and then it becomes almost like a game. How long can I keep true to the constraints I have set? How long can I keep the chain going? Still, even with this mental play, I have deliverables and things I need to do from many different quarters. How can I make sure to give them all time? This is where my game I call "The Hours" comes in. The goal of "The Hours" is exactly as it sounds. Make up a list of things I want to or need to focus on in a given day, week, month, etc. Once I have the list, then it's time to prioritize the list and decide when in the day I want to do the various things. The constraint this time? I have exactly one hour to do it. It doesn't matter if it's something I really enjoy doing, or it's something I am struggling with. I get ONE HOUR to focus on the thing at that particular time, and then I have to set it down. Do I want to learn more about RSpec? Cool, then set an hour for it at 6:00 PM to focus on just doing that, and stop at 7:00 PM. If it's something I enjoy doing, that forced stop means I do so wistfully. If it's something I'm dreading, well, at least I only have to put up with it for an hour.
What I've found interesting about this approach is that I find myself willing to do things that otherwise I would find arduous or taxing with a greater sense of desire and interest. It also allows me to not get burnt out on things I'm actively enjoying, too. Of course, sometimes you just need more than an hour. What to do then? Ideally, I stagger activities. If I have to do something I know is going to take me several hours in a given day to accomplish, I schedule hour long breaks to do other things, with the idea that, as soon as that hour is over, I can get back to what I was doing before. For technological things (writing, coding, testing, etc.) this actually works pretty well; it's like applying Session Based Test Management to multiple endeavors. There are, of course, some things you just can't break from. If I'm setting concrete or digging up something in the yard, I can't just say "Oh look, my hour is up, I have to go do something else now. No, in that circumstance, you just have to dig in and do what is necessary. Most of the time, though, especially with computer related activities, that level of focused time is not required, so playing "The Hours" makes sense and works pretty well.
Sometimes it is helpful to put constraints on the things that you do, as well as to limit your immediate exposure to them. By doing so, you open up the prospect of making time for things that have been languishing, and you also open up the possibility of making and committing more time to activities that are just a lot less fun than others, at least at first. Once we make the commitment to focus those hours individually and routinely, we may find that "The Hours" dealing with something challenging and irksome, may over time become some of the best hours of any given day.