Time Management (Computer Metaphors) Part 1 – Streams

Good time management is a bit like computer programming, in some ways at least … How do you handle large tasks, without being overwhelmed by their size? Large Burger Streams Computer programs generally read data from some location, process it, then output it somehow. For example, a video player will read data from the disk, decode it, then draw frames on the screen. Now, what is the best policy for this? How much data should be read from the disk, before it’s processed and flung out at the screen? In reality, it’s best to read a bite-sized chunk of data into a small buffer area, process it, output the result, clear the buffer, then proceed with the next chunk. If instead an entire video file was read in one go, on-board memory would be quickly exhausted or at least severely compromised. Streams provide this kind of functionality.  When you read from a stream, you just get the next chunk, without concern to how much input is yet to come. We often stream things from the net.  You can play an infinitely long audio stream (e.g. net radio), even with a relatively small amount of memory.   The audio player periodically engages in a buffering process - reading the next chunk of data from the network.  Therefore, an infinite audio stream should be just as “challenging” to process as a tiny sound file. It scales nicely.

Bucket Brigade

Another analogy is eating. “Don’t bite off more than you can chew”. To perhaps stretch the metaphor absurdly, your mouth is a “buffer”, which can only hold a small amount of food. You don’t shove the entire meal into your mouth and then swallow. Like a culinary Von Neumman “fetch-execute” machine, you consume a meal in a number of small “fork-masticate” cycles … Overall, it really shouldn’t matter how big the workload is.  A project can always be progressed continuously, even with the limited amount of “working space” our minds have.  This is true as long as we only focus on one small thing at a time. Trying to “think of everything at once” is stressful. It blows your memory limit. You only have so much working memory, so you have to work on a single task at a time to use your faculties most efficiently. With a good time management approach, it shouldn’t matter how big the project is. It shouldn’t matter how many undone tasks and “things to remember” are buzzing around your head. It shouldn’t matter how fast new work is coming in. With a scalable approach to organisation, you have a well-organised “to do” list dumped to “secondary storage”, out of sight.  This task list ought to be 100% reliable - you always have it with you, and it has pretty much everything on it.  Then you can concentrate effectively on one item at a time.  All the other tasks are recorded and patiently waiting for you (in priority order of course). Endless Queue This isn’t just about keeping a “to do” list.  Generally we like to think we’re good at this already - take a task from your “to do” list and focus on it until it’s done. But what can happen is that a number of sub-tasks emerge from the process, and these compete for attention. “Oh that reminds me, what about *this*?” Or you get a phone call asking about some new problem. If you immediately move onto tackling each new concern, you’ve just doubled your working memory overhead, and things get stressy. You have the niggling concern of knowing you never finished the first thing you were working on, so you have to remember to “unwind the stack”, and find your way back to what you were doing before. We often end up spending half a day on one small thing (which is now in some vague state of partial completion), and wonder where all the time went …. Instead, whenever a new task emerges from the fog, add it to your list (which you can rely on 100%), then forget it and carry on with what you were doing. After all, you can only do one thing at a time.  At a later point (according to priorities), you can focus on that new task to your satisfaction.  The addition of new tasks should not make the project seem “bigger” or “harder”. Remember, working on a big project is just like listening to net radio - well, sort of! - you only work on one buffer at a time, never biting off more than you can chew, rendering a theoretically endless task very manageable indeed, at least in terms of continual progress.  There is only the “next action” to consider. The book “Getting Things Done” recommends one way of achieving this kind of “scalable throughput” in your work. Ultimately you keep a single “Next Actions” list, which you can rely on 100%, so you never worry about forgetting anything.  You dump everything on your mind onto this list, freeing you to focus clearly on one task at a time.  This results in a lot less stress, and sometimes even that elusive sense of progress …