Automating because you can
I like to automate things I do. It’s generally good practice to find ways to avoid repeating yourself. especially as a programmer. However, I find it easy to fall into the trap of automating just because you can (or assume it is always better to).
It helps to take a step back and consider the facts before automating:
- How long will it take to do this manually?
- To your best knowledge, at this present point, how many times are going to repeat this?
Note, that you are looking at historical data ONLY when you decide to automate. No wild guesses about what you need in the future (keeping in mind how bad we all are at predicting the future).
This gets you out of the trap of automating something that takes 30s by spending 15 minutes writing a script to do it. Sure, after 30 times you make up the cost, but do you really?
There’s a hidden cost with automating, and that is distraction. You stop what you are doing and go off and start something else in order to automate the step. So you end up losing focus and getting side-tracked.
Remember there is an opportunity cost to automating. So if it will only take you 30s to type out what you need, and it will get you to the next point in your project, then perhaps, you should skip over the automating and keep going (at least the first few times anyway).
Auditing your time
A time audit is a review of how you spend your day with the goal of identifying where you might be wasting time, or otherwise not being as productive as you would like to be.
There’s a good article about how to perform a Time Audit at Productivity501.
My previous post on RescueTime is a good place to start to see what you do on your PC (assuming it is where you spend a lot of your time).
A few tips on the process:
- The first step is to figure out what is important to you. What do you want to be spending your time on? If you can’t answer that, then stop and figure that stuff out first. You know, the usual goal setting, evaluating your life etc.
- Spend some time, just collecting data. Don’t try to adjust your routine too much. Some things will be obvious (and areas where you can change) but, its nice to have a baseline to know how things were when you started.
- Once you have adequate data, address ONE thing at a time. As suggested in the article, one of the first things to look at is simply the order in which you approach things each day. Perhaps the most fundamental change I made, was to make sure I work on what I consider to be the most important thing first thing in the morning before, I do anything else.
- Review how much time you spend creating (e.g. writing code) vs consuming (reading blogs). Make sure you aren’t spending too much time consuming.
- Batch things together. If there are a number of related things you do during the day, can you do them all in one hit?
- Apply Pareto principle (80-20 rule) to your day. Are you spending 80% of your time on the 20% of things that create 80% of the value?
- Do you do one thing at at a time? Or do you jump around through the day? One of the biggest (but often hidden) ways to waste time is to be constantly context-switching.
Remember, a time audit is an operational step in your “productivity”. It is purely to see where you might be losing time in your day that you can reclaim. It helps once, you have got your stuff together and know exactly why it is you need more time in your day, and what you plan to do with that recovered time.