Parsia-Clone

'Documentation is a love letter that you write to your future self.' - Damian Conway

12 minute read - Automation

Time Management for System Administrators - Notes

Github Link

Preface

  • Keep all your time-management stuff in one place.
  • Develop routines for things that happen periodically.
  • Improve your social life by applying these tools outside of work.

Chapter 1. Time Management Principles

Similar to the points in the preface:

  • Develop routines and stick with them.
    • Reuse code.
    • Setup a recurring meeting with your boss or your employees.
  • Develop habits and mantras
    • Habits: Routines you do without having to think.
    • Mantras: Mental triggers for rules of thumb.
  • Maintain focus during "project time."
  • Manage your social life with the same tools. Social life isn't an optional feature.

Chapter 2. Focus Versus Interruptions

  • Interruptions mess with focus.
  • Remove all those "need to remember" from your brain by recording them.
    • Write them down.
    • Add reminders to your calendar.

Change the Environment

  • Remove desk and computer desktop clutter.
  • "When in doubt, throw it out. If I ever do need it, I can ask the source for a copy".

Multitasking

  • Be aware of which tasks to multitask and which not to
    • Good tasks to multitask are "hurry up and wait."
  • Be aware of your stress and sleep level
    • If stressed, pick one thing and only do that instead of multitasking.
  • Use virtual desktops for different things. E.g., email, chat, etc.
    • Organize your windows the same way every time so you do not have to think what program is where.

Peak Time for Focus

  • Figure out when your mental capacity is best and do your projects then.

Chapter 3. Routines

  • Routines give us a way to think once, do many.
  • A good routine saves you work and reduces the amount of time you spend making decisions.
  • The more routines we develop, the less brain power we have to put into small matters.
  • The key to a good routine is that with enough practice you start doing it without having to think about it.
  • If it has to be done every day, do it early in the day.
    • Feels good to accomplish things right off the bat.
  • Always backup a file before you edit.
  • Write a "things to pack" list on the right hand side of the TODO list for the day of travel.
    • Check off items as they go into the suitcase.
    • Second list of things to have in hand before leaving.

Good routines:

  • Develop a routine that solves your problems.
  • Perform the routine on a predictable schedule, and others will plan their schedules around you.

Going around and asking customers for issues:

  • Fix: Fix the problem if it's quick there and then.
  • Redirect: If it's longer, ask them to make a ticket or ask "help."
  • Sympathize: If it cannot be fixed or if it's a known problem.
    • Don't be condescending.
  • Do not employ this technique if you have a problem saying no to customers.

How to Develop Your Own Routines

Look for:

  • Repeated events that aren't scheduled
  • Maintenance tasks
  • Relationships and career networking:
    • Keep relationships with these groups:
      • Customers
      • Staff/Reports
      • Peers
      • Bosses
    • Schedule lunch once a month with your mentor or a person who is part of your network
  • When procrastinating takes longer than action
  • Things you forget often
  • Inconsequential or low-priority tasks that can be skipped occasionally but shouldn't be
    • You can skip them a few times but after that something bad happens.
  • Developing new skills
  • Keeping up-to-date

Deleting Old Routines

  • Sometimes you have to update your routines.
  • Routines delete themselves by becoming obsolete.
  • Routines evolve as time goes by.

Chapter 4. The Cycle System

  • Your customers value your ability to follow through more than they value any other skill you have.
  • The secret to perfect follow-through is to record all requests and track each request until completion.
    • Good follow-through is the key to good raises and promotions.

Chapter 6. The Cycle System: Calendar Management

Recurring Meetings

Some meetings happen at intervals. Some appointments do the same.

  • Your company's quarterly reports.
    • This is an interesting thing noted in the book. Most of us are engineers with stock options and ESPP but not part of the board. It's worthwhile to track these.
  • Weekly meetings
  • Deadlines
  • Birthdays and anniversaries
  • Conferences
  • Vacation plans for yourself and team members/reports.

Chapter 7. The Cycle System: Life Goals

  • Successful people set goals and work toward them.
  • To achieve your long-term goals, you need to know what they are and work toward them.

Write Down Your Goals

The big secret is to write down your goals.

  • In your head your goals aren't as fleshed out as you think they are.
  • Writing them down forces you to make them concrete.
  • Written goals can be shared with others.
  • Make a goal significantly more concrete by answering these questions:
    • What do I want to achieve?
    • When do I want to have achieved it?
  • It's important that goals are measurable.
  • There are other people you might want to consult when setting goals. Partners, bosses, mentors, etc.

Goal Planning Sheet

Step 1: Write down your goals.

ProfessionalPersonal
1 MonthTypically smaller projects on your mind.
1 YearBigger projects. Have milestones.Get into shape.
5 YearsLife-changing goals.Marriage. Having children.
Lifetime goalsRetirement.

Step 2: Make sure each goal is measurable.

  • Could another person decide if a goal has been met?
  • Goals need a tangible result or numeric measurement.

Step 3: Assign a priority to each goal.

  • A: Absolutely must do.
  • B: Next most important.
  • C: Good ideas or "would be nice" items that are low priority.

Step 4: Determine the steps to achieve each goal.

  1. Decide when the goal deadline is.
  2. Break each goal down to specific tasks.
  3. Break tasks into steps.
    • Don't worry about writing the steps in chronological order. This can be changed.
  4. Write down all tasks and steps.
  5. Schedule the tasks in your calendar according to the deadline.
    • Do not schedule any single item too far in advance, it gets lost.
    • Mark your next steps in your calendar like an appointment.

Step 5: Revisit your goals regularly. On the first day of each month, take a moment to plan your goals.

  • Digital: Set a repeated event in your calendar called "Goal and Next Step Review."
  • Paper: Set up a sheet of "repeating events" that is reviewed at the start of each month.
  1. Goal review: Review and update your goal list.
    1. Cross-out completed goals.
    2. Decide if new goals are worthy.
    3. Prioritize all new and old goals.
  2. Step review. Review and update your next steps list.
    1. As steps are marked "done," schedule later steps into your TODO lists.

Chapter 9. Stress Management

  • Often, the causes of stress are:
    • Being overloaded
      • Relaxing is important.
    • Pulled in multiple directions by multiple bosses with different priorities.
      • Put everyone into the same room/meeting and/or communicate with them.
  • Vacation time is not a gift from your employer, it's part of the relaxation regiment.
    • Don't use it to run errands or catch up on delayed work.
    • Take a long vacation to see how the system works without you.
      • This will show you the gaps in documentation, processes, etc.

Chapter 10: Email Management

  • Taking control of your email == taking control of your time.
  • Use email filters to automate tasks.

Every time you read an email you need to take action on it.

  • Delete Unread
    • Send things you do not need to read to other folders.
      • E.g., corp patch cycle emails, office building newsletters (paths are blocked etc), ticketing system update emails.
      • I have a list of filters on our internal knowledge base that says what comes from where and how to filter it.
    • Mailing lists
      • Every month review your mailing lists and unsubscribe from the ones you do not read.
      • If you aren't sure if an email list is useful, it isn't.
    • Mailing lists that you do not read.
    • Office building emails and newsletters.
      • Sender: "EA Vancouver Action" and subject contains "NOTICE."
    • Ticketing system automated messages.
    • "Your password/data has been updated" emails for test accounts.
  • Read and
    • Delete: Things that require no action from you.
      • If these are frequent, consider adding them to the "Delete Unread" filters.
    • File: Put them in a specific folder. Don't worry a lot about creating 200 folders. Email storage space is cheap and we can search for emails.
      • Expenses/Receipts. These are needed to file expenses.
        • Emails about the corporate credit card.
      • Onboarding
        • All the emails from systems during onboarding.
          • Later used to create an onboarding checklist on the knowledge base.
      • TODO:
        • Emails related to tasks.
        • You will not need this if you use Microsoft TODO and the tech stack
      • Save
        • Anything that needs to be saved
      • Feathers
        • Good feedback. This can be used later during annual review.
    • Add to task
      • If it becomes a task, it can be added to tasks.
      • If using Outlook and "Microsoft To Do" you can flag emails with a specific due date and they will appear as tasks in the To Do app.
      • Reply to acknowledge receiving the task (if applicable) and the due date.
    • Reply
      • If the email needs to be replied to.
    • Delegate: If someone else needs to do the task.
      • Forward the email to the other person.
      • Create a task if you need to review the result.
      • Delete the email.
    • Do now: If needs to be done now.
      • Do it.
      • Respond that it has been done.
      • Delete the email.

Jump Starting the Process

You already have a few thousand emails in your inbox.

  • Do it for every new email.

For the old emails you can do two things:

  • Move all of them to an archive folder. If they are important someone will follow up.
  • Process a few every day or so.
    • By date
    • By person. E.g., process all emails from Mark in on go.

Chapter 11. Eliminating Time Wasters

Time waster: Any activity that has a low ratio of benefit to time spent.

  • Set an alarm before doing something "just for a minute."

Common Time Wasters

  • Junk items in your TODO list
    • Show your TODO list to your boss. Some things might not be necessary.
  • Too many email lists
    • Email management chapter has tips on how to deal with them.
  • Reddit, Twitter, etc.
    • I removed the Twitter mobile app from my phone.
    • I sinkholed reddit on my machine for a while but the answer to a lot of my tech questions were on reddit so I had to undo it.
  • Chat systems
    • Slack has replaced email, this is bad. Turn off desktop and sound notifications. Check Slack every hour or so.
    • Mute or leave Slack channels that are not important.
  • Manual processes
  • Office talk
    • Depends on the talk. Some short talks with your team members are refreshing but long ones that are not usually about work are bad.
  • Wasteful meetings
    • Status meetings: People announce their progress.
      • Do not use them for problem solving. It wastes everyone's time.
    • Work meetings: People use it to get work done. E.g., troubleshooting.
      • Make one of these if the status meeting turns into problem solving.
  • Cutting your losses when trying to troubleshoot
    • Give yourself X minutes for each task.
    • If it does not work out, ask the helpdesk or the vendor.
    • Same if someone else asks you to troubleshoot something, set a time limit for it. If it does not work out then back out.

Chapter 12. Documentation

Document what matters to you.

We need two repositories:

  • Customer-facing: For users of your products, network, and tools.
    • Makes customers self-sufficient.
    • May evolve into self-service systems.
  • Internal IT: Internally to help you and your team to do your job.
    • Record all the processes, procedures and references.
    • Record things digitally so they do not take up space in your brain.

See also my blog: Documentation Writing for System Administrators - Notes

Use a wiki:

  • Easy to add new pages
  • Centralized and accessible: Everyone with a web browser can use them.
  • Everyone can contribute: Open to everyone in your team.
  • Stay up-to-date through editing.
  • See this clone.

Chapter 13. Automation

Is It Automated Enough?

Adam Moskowitz litmus test: Can you delegate it to someone less knowledgeable?

What to Automate?

  • Simple things done once
    • Don't automate it. It probably takes longer to automate than do it.
  • Hard things done once
    • Automate this at least by writing the steps in your knowledge base.
  • Simple things done often
    • Obvious category for automation.
    • Always automate the boring repetitive stuff.
  • Hard things done often
    • Documentation helps but often it's probably cheaper to buy a commercial product or get new employees.
    • This is probably more complex than what you can develop in any free time at work.
Simple ThingsHard Things
Done OnceDo it manuallyAutomate it - All or some of the steps in 'Manual Work is a Bug'
Done OftenAutomate it (see above)Buy or write software

Automating tasks get you:

  • Repeatability: Can do something consistently many times.
  • Replace the need to memorize something complicated that is done rarely
  • Scalability: Code scales, manual processes do not.
  • Automation can help replace error-prone procedures

How to Automate?

This is where Manual work is a bug should be used.

  1. Do it manually
    1. Write step by step documentation in the knowledge base.
    2. If you can't write down the steps, you'll never figure out how to automate them.
    3. You can show the steps to other people to get feedback, catch errors, etc.
    4. The Simple Genius of Checklists, from B-17 to the Apollo Missions
  2. Code each step
    1. Create a 'Do-Nothing Script'.
      1. https://blog.danslimmon.com/2019/07/15/do-nothing-scripting-the-key-to-gradual-automation/
      2. It's a script that generates commands based on input but does not run them.
      3. Then run each command == PasteOps.
    2. Turn each step into a command line equivalent.
    3. If it's using a GUI see if you can find an API first.
  3. Bring the steps together
    1. Add one step at a time and then test.
    2. "When debugging only change one thing at a time."
  4. Test it all together
    1. We have tested each step, now we will test them all together.

Programming Language vs. Scripting Language

Scripting languages are nice but it's better to use a programming language to do automation tasks. Manual Work is a Bug suggests Go but for infosec Python is more popular. In short, use whatever you are comfortable with. Programming languages have the added benefit of being able to do more things than scripting languages. They have 3rd party modules/packages/libraries that allow you to do many things.

Simple Things Done Often

  • Alias for long commands.
    • E.g., alias mydir = 'cd /long/path/to/directory'
    • Windows:
      • Create bat files and put them in PATH.
      • Create functions in PowerShell.
  • Short names for long hostnames
  • Make files

Hard Things Done Once

  • Using Microsoft Excel to Avoid Writing a GUI
    • Make users enter their data in Excel and then parse the Excel file and do something with it instead of creating a front-end with a database and so on.
  • Letting Others Do Privileged Operations
    • Write code that others with their own privilege will run, don't do the privileged tasks that do not concern you.