When you’re doing automation work, ROI is an extremely important topic. You need to be able to clearly articulate what something is costing you, and how long you can possibly work on making it better before you’re spending more time than its worth.
With apologies to Randall Munroe of xkcd, I blatantly stole this idea from Monday’s comic: http://xkcd.com/1205/. If you don’t read xkcd, go do it now. I hope you didn’t plan on getting much done today lol!
Monday’s comic was a chart called “Is It Worth the Time?” – I quickly recognized that what he’s really measuring here is kind of an inverse ROI – how much can I possibly spend on something before there’s no chance of recouping that investment? But there were some issues with the chart and applying it to our business model; the frequencies don’t exactly match up to what we do at Inmar, the times taken are too granular at the small end and not well spaced in general (xkcd made the chart in part as a humorous thing; the author is a big fan of hyperbole to make a point, methinks) In addition, he used a 24 hour day – for business purposes, you need to use an 8 hour day. Worst thing though was it was for a five year ROI! If there’s one thing my nearly two decades in the industry has taught me, its that in five years, 95% of what I do this year will be obsolete, re-written, tweaked, or just plain out of service.
A far more useful term to measure in would be one year; something like 18 months or 24 months would be ok from a “do we get enough benefit through the total life of the product to justify creating it in the first place” perspective – but 12 months feels real nice to me, in that it aligns with budgetary realities. If you can get your ROI in 12 months or less, there’s a chance that the entire cost of development is compensated for in the current fiscal year. You don’t have to amortize the investment or have potentially troublesome conversations with CFOs about how you justify your value – its clear and apparent in whatever timeframe anyone is likely to care about.
So I reworked the chart. Randall is pretty open and allows people to republish comics for non-commercial purposes, so I decided to post the re-worked chart. Feel free to print it out, hang it in your cube, or even re-publish it – just leave the attribution in place and make sure to give xkcd credit for the original.
I do want to point out before we continue, ROI is far from the sole reason to automate something. Firstly, this chart doesn’t cover Service Level Agreements. Automation can certainly help you meet SLAs consistently, and there’s usually both a fixed cost (fine) and a variable cost (support hours) associated with missing an SLA. If you do something that takes you one minute once a week, but missing it costs you thousands of dollars, that’s obviously something that you’re going to want to automate, especially if you’ve missed it a couple times in the same year. Automation can help with quality, perception of quality, overall user/client satisfaction, employee morale, and numerous other reputation and transparency metrics that are typically difficult to measure in dollars and cents, and are certainly perfectly valid reasons to invest your time and money into making something work better.
Click the image above for a high-res printable version. Print at 600 dpi in landscape mode without scaling, it should fit most printer margins as-is.
While the focus when I made this chart was to measure how automate-able a specific process is, my wife wisely surmised when I showed it to her that it is also a measure of how much time you spend on a particular activity annually.
To use this chart, find how many times you do thing x along the top (for all employees – if 50 employees all have to do one thing daily, that’s 50x/day), and how long thing x takes on the left. Just as you multiply the top axis by how many people do the thing in that time period, you need to divide the ROI figure by the number of developers that will be working on it in parallel.
If you’re not closing the automation loop 100%, you should instead look for how long you can save off the current process, instead of the total time taken. You can probably do the math in your head for minor variations; if you have something that you do 3x/week, you can multiply the 1x/week column by three to determine the ROI figure to use. You can do the same thing on the how long does it take parameter – if the thing you are automating takes 10 minutes on average, use the 5 minute line and multiply by 2.
Likewise, if you do care about an 18 or 24 month ROI instead of the 12 month, multiply the appropriate figure by the number of months you are concerned with, divide by 12, and that’s the ROI for the timeframe you want.
To actually calculate your ROI, take the amount of time it took you to do, divide by the time from the chart, and multiply by 12. The result is the amount of time (in months) till you recoup that investment.
Some interesting areas of the chart:
On the top-right corner, the gray areas are things that take so little of your time, you’re not likely to ever be able to justify automating them. If you do something once a month but it only takes you a minute to do it, the most amount of time you can save in a year is 12 minutes. It takes me longer than 12 minutes to open UC4, create basic objects, and document the user story. It takes my company longer than 12 minutes to approve and promote a finished piece of software. It takes our testers longer than 12 minutes to do their test planning, much less execute those tests, even for the most simple cases. Even if the actual development and unit testing was free, I’ve spent three times what its worth just by getting started thinking about automating it.
Just below and to the left of that area, we have the automation in hours. For one of these to be worthwhile, it has to be quick. It has to be so quick its practically free to automate. It might be worthwhile to go down that road, but if its a complicated user story or there are a lot of difficult to work with technologies, or an abundance of business rules – this is a good sign this is a job for a human intelligence.
Continuing down and to the left, you get to the meat and potatoes of automation. With good tools like UC4, or whatever your workload engine of choice is, you should be able to complete simple automation in a matter of days. 90% of the automation that comes across my desk is a matter of finding/loading parameters, hooking up command lines, and notifying in case of errors. If you can’t get that done in a week, you’re in the wrong toolchain! When you find tasks in the 2 days <= task time <= 2 weeks time frame, add them to a list to tackle in the future. For best results, you’ll want to tackle several related tasks serially – the command lines you need will still be fresh in your mind, you’ll be able to copy/paste a lot of the utility jobs to load data or notify users, as it will likely be similar / the same databases and users for each.
Keep on going and you get to the automate immediately tasks. These are tasks that if you can automate at all, you are likely to spend far less time than the automation costs the company. Even if its complicated or requires some process engineering to get done, you’re still getting a great discount for your time. Let’s say you have a 30 minute task that gets performed on average 5 times a day – that’s a total of 11 weeks you’re spending as a company doing it annually – even if it takes 4-8 weeks to automate, your still getting fantastic value.
Finally we have the bottom-left gray areas; in the original chart, these were gray because he was considering one man performing the tasks; none of them were something you could get done in the time period alotted – its pretty obvious, for instance, that one person can’t do a 1 hour task 50 times a day. For our purposes however, I left them gray just to point out their special status – the ratio of time saved to the time-period you’re measuring is > 1.0. If you can do it at all in the timeframe you’re measuring ROI in, its worthwhile to automate. Stop staring at charts, and go staunch the bleeding already! If all you do this year is automate something your company was previously doing 50 times a day for an hour, that’s so clearly a win that the actual ROI measurement; as justification to automate, at least; is completely irrelevant.
I hope you find this chart useful; if you’re going to print it out or share it with your co-workers, clients, or vendors, please leave a comment and let me know!
- How much time should you spend automating a routine task? (boingboing.net)
- When and why I automate (leancrew.com)