27 March 2017

Staying in Context

So I've always had issues staying in context. That is, when I take a break from what I'm doing I sometimes forget what I was doing and then, when I return, I have to sort of reboot whatever it was. This has been particularly difficult after a long break, like a two week vacation or sometimes even a four day weekend.  So over the years I've developed a couple of techniques to keep me sharp and on task when I return.

First, I try not to leave anything undone. If I'm preparing for a trip or some time off I work very hard to make sure I leave my work in a stable and understandable state. This has lead to a few long nights prior to departure, but it always pays off. Once, about 17 years ago, I worked straight through the night to finish up my task list before going on a two week vacation. My wife thought I was nuts, but when we returned from vacation I was able to jump right back into work like I hadn't been gone at all. This was simply because my todo list was empty when I left. There was no context to pick up. 

Now obviously that approach isn't going to work for everyone. First, who really wants to stay up all night working before a vacation. Second, sometimes the todo list is much too long to knock it down the night before you go someplace. But if you can manage this arrangement, its the number one way to come back ready to go.

So what about those times when I can't get the todo list done? Well, start with taking notes. I use Trello and Evernote to keep myself organized. I have 73 Trello boards at the moment and hundreds of notes in Evernote. Thats a lot of stuff to keep organized, but the advantage I have (usually) is I can come back to something I haven't touched in months and take off pretty close to where I started. It isn't a perfect system, but it usually works out. 

Some of the boards I use most often are my Personal ToDo list, my Client ToDo list (I have one for each client), my Client Priorities list (again, one for each client), my Home Projects list, and anywhere from one to three boards for each software project. It sounds sort of ridiculous, but because I have all those boards, and I keep them up to date, I can walk away at any time and come back to where I was. When I get back, all I do is open up the board and look at the last card I was working on. That is usually enough to get me pointed in the right direction.

I use Evernote to keep track of the details. Trello is great, but it has its limits, especially search-ability. So I keep notes on the things I'm working on in Evernote and that helps me reset my context quickly. I can also tag things and lump things together in notebooks. It gives me a leg up on staying organized. I also like the fact that I can run it on anything with a web-browser.

Beyond the electronic stuff I have one last trick up my sleeve. Post-Its! I work from home and I get interrupted by stuff on occasion; the doorbell, dog needs to go out, Orkin guy shows up to spray for bugs, whatever. Those little interruptions cause me to lose focus and sometimes that can be very disruptive. So I keep a pad of Post-Its next to my keyboard, I can leave myself a little note about what I was doing. Simple, two or three word reminders. So if I have to answer the door I might just write down 'Plan Foo App' and drop the note on my keyboard. When I come back I know what I was doing. Its nothing more special than that. Before post-its were so easy to get I used printer paper and just wrote on that. It doesn't have to be post-its, anything you can write on will work. 

OK, so why did we go through all this? Well, I'm showing you what I do to stay in context. All of these things help keep me in context for everything I do. When I come to work, I'm in context for what I'm doing. When I go out with my family I'm in context there too. And in keeping myself in context I am much more effective and focused. 

Why is that important? Well, for one thing, I get paid to deliver. Weather you like it or not, you probably do too. If I take too much time to deliver, or I deliver the wrong thing, I risk losing my job. So its important that I stay focused on what the client wants. Thats hard when you have more than one client or project to deal with. Its even harder if you have a busy personal life. So I use all these tools to optimize the performance. 

There is one last thing about staying in context that I think is really important. When you are in context with what you are doing, you tend to do a better job. You make better choices about what you are doing presently in order to be more effective overall. Paying close attention to what you are doing now so that you have greater success in the long run pays off big. In practical terms, building one module of code well, and in context, today, will pay dividends later when you go to reuse it.