Skip to main content

A summary of Time Management for System Administrators

A summary of "Time Management for System Administrators"
My summary of the book Time Management for System Administrators. Good advice for people who otherwise get interrupted a lot to make time for project work. Works for SRE and DevOps too. [5 minutes]

I bought and read Time Management for System Administrators by Thomas A. Limoncelli because I've ended up running a lot of systems at work. Thomas has a blog called Everything Sysadmin. Note: I have no affiliation with Thomas Limoncelli or Everything Sysadmin.

Most of these points are out of the first half of the book, which I found more relevant than the second half. I've grouped the points by principle instead of by chapter:

The Five Principles

The book outlines five main principles expressed with computer analogies:
  1. Minimise context switches / deflect interruptions: deflect or efficiently process to reduce context switching costs.
  2. Lock critical sections / dedicate project time: to shield yourself from distractions.
  3. Conserve CPU / develop routines: caching decisions by cultivating routines, "Think once, reuse the result many times", so you can allocate more of your thought-cycles to projects.
  4. Conserve memory / write down tasks: if working memory = CPU cache,  short-term memory = RAM, long-term memory = failing hard disk... then digital task-management is an SSD. Free up memory by offloading the to-do's.
  5. Prioritise like QoS : when flooded with too many packets, drop the low-priority packets from the  queue.
Let's expand on each of the principles:

1. Minimize context switches

Deflect Interruptions
Interruptions take time for context switching, time to deal with it, another context switch back, and any time to fix mistakes you made due to broken concentration.
  • Dedicated Interrupt Handler: have one person on the team on-call for interruptions. Perhaps same person on-call for the pages.
  • Interrupt Routing: three main responses you can make while interruptor is present, then say "thank you" and the interaction is over:
    1. Delegate the task to a specific person.
    2. Record the task in your ticket system for later.
    3. Do the task there and then, as they watch.
Worst case is for for the interruptor to leave you there as you go on with their task, unfinished.

2. Lock critical sections

Dedicate project time
Set aside large time blocks for large projects. Do not use them for varied unrelated tasks - instead squeeze those in the smaller gaps.
  • Peak Brain Power hours for Tough Projects. Often the first hours, before the office is full and people are interrupting (or late at night, if you lack a social life).
  • Email after lunch because first hour is totally wasted if you use it to catch up on mail or news. In any case people can wait, important stuff will be messaged.
  • Remove distractions blocking IM, email, feeds, notifications, distracting sites and apps.
  • Deflect interruptions using the "Delegate, Record or Do" rule.

3. Conserve CPU

Develop routines
Routines save memory because they are in long-term habits, and "CPU" because they are automatic not effortful. Trigger routines more reliably by finding "if this, then do that" rules to attach them to events or actions you already do daily. Some good "think once do many" habits:
  • Daily task list.. when arriving at desk.
  • Interrupts and emails... schedule for last hour or half hour before lunch.
  • Manager meeting ... schedule weekly.
  • Floor walk around... schedule weekly.
  • News catch-up... schedule last hour to catch up news.

4. Conserve memory

Write down tasks
Bad systems include the Pile of Post-it Notes, and the Giant Ever-Growing Todo List of Doom. Limoncelli presents a "Cycle" system much like a Bullet Journal, with a list for each day of the year. You can feel good after completing the just a day's tasks. The list includes both work and personal tasks.

Limoncelli stresses having one task system, but I find it infeasible: I have multiple apps providing lists of tasks. I end up repeat the most important ones in my daily on-paper list, and the rest peruse in interrutps time.

If the queue for the day is too long try punting low-priority tasks to tomorrow, splitting up large tasks, reducing the scope of large tasks, asking the boss for priorities, or delegating some tasks.

5. Prioritise like QoS

Assign priorities and drop lowest priority tasks when overloaded. Some ways to prioritise:
  • Impact: first rank tasks by the Return on Investment for your time and effort. 
  • Latency: if you have to wait for response, do your action as early as possible.
  • Relationship: direct requests from the boss get a special priority to skip the queue.
Thomas suggests managing your boss by (1) sharing your career goals, (2) delegate upwards only when it requires the boss's authority, (3) understanding the boss's goals and help accomplish them.

Miscellanous Advice

I also picked out a few interesting miscellany:
  • Fall asleep like a PC: dump RAM to disk then hibernate, by writing down your tasks for tomorrow.
  • Don't trust your brain: if someone asks you verbally to do something, record it or ask them to email / IM / file a ticket. Don't just say "yes" and forget.
  • Don't work late: most people have 4 or 5 productive hours in them each day, and the rest is spinning your wheels.
  • Long vacations: because weekends are not enough! You need to be away long enough to actually miss some work. No computer no phone.
  • Quick email actions: Filter, Archive Without Reading, Read and Archive, Read and File, Read and Reply, Read And Delegate, Do It Now And Delete. Anything you can't do now, add to task management... because email sucks at everything.
  • Time wasters are anything with low reward for time spent.
P.S. now that you're making the most of your time, check out some advice on increasing your chances of living longer.

Do you have any advice for time management when faced with interruptions? Comment below!


Popular posts from this blog

Optimize Wordpress for tiny free tier VMs

In which I show how to optimize Wordpress on Apache to handle a reasonable continuous load on a tiny free tier virtual machines, with only standard Ubuntu packages. [6 minutes]

The keys to doing long-form Narrative Improv

Here are some key ingredients for full-length improvised plays known as Narrative Improv. Providing tips on story structure, normalcy, the protagonist, consequences and clarity. [4 minutes]

How to write Bad Python

A controversial post about bad code that I observed on an unnamed Python project, in which I describe outdated idioms, Java-style code, and bad programming practices. [3 minutes]