back

October 2016

What an interest rate is in finance, automation is in programming. Time spent upfront to automate pays off with interest.

I sat down to run the math of how productive one would be if they invested a bit of time automating. Let's run a conservative calculation to see the time savings.

If writing a script can save 5 minutes a day and you work an 8 hour day, you save 1% of your work time a day. If the next day you improve the script to save an extra 5 minutes beyond the 5 minutes it started saving daily since yesterday, the time savings now compound exponentially. The script now saves 10 minutes daily. The initial value in the exponent is small, only 1.01, but it grows fast as time goes by. If you work only 40 weeks a year, 5 days a week, after 200 days this 1% of work time saved daily compounds to a productivity of 7.9x.

This jump to 7.9x isn't much when you take into account the effort needed to produce it. It's exhausting to constantly automate. To add a new feature, most times you can't just call the script from the outside and be done with it but also have to change the insides of the script to work differently. Automate for only a couple of months and productivity hasn't doubled (it's only 1.86x) while it increased the risk.

Because there is risk involved too. When something that moves forward at an exponential speed breaks, it sets you back exponentially too. Which means you must drop everything you're doing to go fix it immediately, however long it takes, possibly losing all the extra productivity gained so far. For high exponential gain, not fixing a broken script is not an option. And the more you automate the more there is to break. Time is both on your side and against you. The more time passes the higher the productivity and the higher the chance that something breaks.

The power of automation is more obvious if one manages to save 10 minutes a day. Whatever the risk, after 200 days you become 61x more productive and it's probably worth it.

It gets harder to argue against automation if one saves as much as 30 minutes a day, even if it comes at the cost of completely neglecting every other responsibility. If all you do is continue to automate the same script, and somehow the script continues to grow and eat up more of your time, in just a couple of months you are 38x more productive. Keep the pace of saving a whole 30 minutes each day and in 200 days you're 184,411x more productive which roughly equals the productivity of a small city. [1]

This is an increase of five orders of magnitude in productivity: 100,000x. I doubt most people are ready to gauge if such a big jump is within reach. Especially if they've done no hard automation before. But I know it's a mistake to dismiss the possibility. A less frightening question to ask is: which productivity multiplier might be within reach? Some number must be.

The limits of productivity aren't a complete mystery. Some claim 100x productivity as the lowerbound. Probably no one knows where the upperbound is today and where it will be in the future. If I had to guess I'd say it depends not just on the person but also on the nature of the problem solved. [2] The bottleneck often isn't a hard tech problem being unsolveable but some human getting in the way.

Note how conservative the calculation is. It excludes working weekends, and it comes with 12 weeks of not working at all. It's not working for two more days per week that will make a difference. It's automating that script to continually save more minutes each day. If you had to pick between continually automating like this for 200 days, or not automating but working a full 365 days, automating yields higher gains.

Because the key to productivity is achieving exponential savings, not working for a long amount of time. If the savings were merely additive, meaning you only saved 30 minutes per day and that's it, and worked 365 days a year with no break, you'd save 22.8 days. Which is a paltry 1.0625x in productivity gains. (A script that saves 10 minutes a day surpasses this in just four days, at 1.09x). [3] It's better to work smarter than harder.

After a certain point you could not work at all and still be productive. If one saved 15 minutes for 5 months, losing 1x of productivity daily from that point on by not working doesn't hurt much in the bigger picture. You're on cruise control. There's a surplus of more than 1x productivity in the exponent that the process is now self sustaining. Just make sure you don't break anything. [4]

The flurry of work involved in writing new software is partly due to not having reached yet the point on the exponential curve where everything is done by computers for you.

So if you're looking to become more productive with software, don't just try to do a lot. Also try to do nothing. Shoot for the point in the curve where exponential savings do all of the work for you.

Day0min5min10min15min20min30min
111.011.021.031.041.06
211.021.041.061.091.13
311.031.061.11.131.2
411.041.091.131.181.27
511.051.111.171.231.35
611.061.131.21.281.44
711.081.161.241.331.53
811.091.181.281.391.62
911.11.21.321.441.73
1011.111.231.361.51.83
1111.121.251.41.571.95
1211.131.281.451.632.07
1311.141.311.491.72.2
1411.161.331.541.772.34
1511.171.361.591.842.48
1611.181.391.641.922.64
1711.191.421.6922.8
1811.21.451.742.082.98
1911.221.481.792.173.16
Day0min5min10min15min20min30min
2011.231.511.852.263.36
2111.241.541.912.363.57
2211.261.571.972.453.8
2311.271.612.032.564.03
2411.281.642.092.664.28
2511.31.672.162.774.55
2611.311.712.232.894.84
2711.321.742.33.015.14
2811.341.782.373.145.46
2911.351.822.443.275.8
3011.361.862.523.46.16
3111.381.892.63.546.55
3211.391.932.683.696.96
3311.411.972.763.857.39
3411.422.012.854.017.86
3511.442.062.944.178.35
3611.452.13.034.358.87
3711.472.143.124.539.42
3811.482.193.224.7210.01
3911.52.233.324.9110.64
Day0min5min10min15min20min30min
4011.512.283.425.1211.3
4111.532.333.535.3312.01
4211.542.383.645.5512.76
4311.562.433.765.7813.56
4411.582.483.876.0214.4
4511.592.533.996.2815.3
4611.612.584.126.5416.26
4711.632.634.256.8117.28
4811.642.694.387.0918.36
4911.662.744.527.3919.5
5011.682.84.667.720.72
5111.72.864.88.0222.02
5211.712.924.958.3523.39
5311.732.985.118.724.86
5411.753.045.279.0626.41
5511.773.115.439.4428.06
5611.793.175.69.8329.81
5711.83.245.7810.2431.68
5811.823.35.9610.6733.66
5911.843.376.1411.1135.76
Day0min5min10min15min20min30min
6011.863.446.3411.5838
6111.883.516.5312.0640.37
6211.93.596.7412.5642.89
6311.923.666.9513.0845.57
6411.943.747.1713.6348.42
6511.963.827.3914.251.45
6611.983.97.6214.7954.67
67123.987.8615.458.08
6812.024.068.116.0561.71
6912.044.148.3616.7165.57
7012.064.238.6217.4169.67
7112.094.328.8918.1474.02
7212.114.419.1718.8978.65
7312.134.59.4519.6883.56
7412.154.599.7520.588.79
7512.174.6910.0521.3594.33
7612.24.7910.3722.24100.23
7712.224.8910.6923.17106.49
7812.244.9911.0324.13113.15
7912.275.0911.3725.14120.22
Day0min5min10min15min20min30min
8012.295.211.7326.19127.74
8112.315.3112.0927.28135.72
8212.345.4212.4728.41144.2
8312.365.5312.8629.6153.22
8412.395.6513.2630.83162.79
8512.415.7613.6832.12172.97
8612.445.8814.133.45183.78
8712.466.0114.5434.85195.26
8812.496.131536.3207.47
8912.516.2615.4737.81220.43
9012.546.3915.9539.39234.21
9112.576.5216.4541.03248.85
9212.596.6616.9642.74264.4
9312.626.817.4944.52280.93
9412.656.9418.0446.37298.48
9512.677.0818.648.3317.14
9612.77.2319.1850.31336.96
9712.737.3819.7852.41358.02
9812.767.5320.454.59380.4
9912.797.6921.0456.87404.17
Day0min5min10min15min20min30min
10012.827.8521.759.24429.43
10112.858.0122.3761.71456.27
10212.888.1823.0764.28484.79
10312.918.3523.866.95515.09
10412.948.5324.5469.74547.28
10512.978.725.3172.65581.49
106138.8826.175.68617.83
10713.039.0726.9178.83656.44
10813.069.2627.7582.11697.47
10913.099.4528.6285.53741.06
11013.129.6529.5189.1787.38
11113.169.8530.4492.81836.59
11213.1910.0531.3996.67888.88
11313.2210.2632.37100.7944.43
11413.2610.4833.38104.91,003.46
11513.2910.6934.42109.271,066.17
11613.3210.9235.5113.821,132.81
11713.3611.1436.61118.561,203.61
11813.3911.3837.75123.51,278.84
11913.4311.6138.93128.641,358.76
Day0min5min10min15min20min30min
12013.4711.8540.151341,443.69
12113.512.141.4139.591,533.92
12213.5412.3542.7145.41,629.79
12313.5712.6144.03151.461,731.65
12413.6112.8745.41157.771,839.88
12513.6513.1446.83164.341,954.87
12613.6913.4248.29171.192,077.05
12713.7313.6949.8178.322,206.86
12813.7613.9851.36185.752,344.79
12913.814.2752.96193.492,491.34
13013.8414.5754.62201.552,647.05
13113.8814.8756.32209.942,812.49
13213.9215.1858.08218.692,988.27
13313.9615.559.9227.83,175.04
13414.0115.8261.77237.293,373.48
13514.0516.1563.7247.183,584.32
13614.0916.4865.69257.473,808.34
13714.1316.8367.74268.24,046.36
13814.1817.1869.86279.374,299.26
13914.2217.5472.04291.014,567.96
Day0min5min10min15min20min30min
14014.2617.974.29303.144,853.46
14114.3118.2776.62315.775,156.8
14214.3518.6579.01328.925,479.1
14314.419.0481.48342.625,821.54
14414.4419.4484.03356.96,185.39
14514.4919.8486.65371.766,571.98
14614.5420.2689.36387.256,982.73
14714.5820.6892.15403.397,419.15
14814.6321.1195.03420.197,882.84
14914.6821.5598437.78,375.52
15014.7322101.06455.938,898.99
15114.7822.46104.22474.929,455.18
15214.8322.92107.48494.7110,046.13
15314.8823.4110.84515.3210,674.01
15414.9323.89114.3536.7911,341.14
15514.9824.38117.87559.1512,049.96
15615.0324.89121.56582.4412,803.08
15715.0825.41125.36606.7113,603.27
15815.1425.94129.27631.9814,453.48
15915.1926.48133.31658.3115,356.82
Day0min5min10min15min20min30min
16015.2427.03137.48685.7416,316.62
16115.327.59141.77714.3117,336.41
16215.3528.17146.2744.0618,419.93
16315.4128.76150.77775.0619,571.18
16415.4729.35155.49807.3520,794.38
16515.5229.96160.34840.9822,094.03
16615.5830.59165.36876.0223,474.9
16715.6431.23170.52912.5124,942.09
16815.731.88175.85950.5326,500.97
16915.7632.54181.35990.1328,157.28
17015.8233.22187.011,031.3829,917.11
17115.8833.91192.861,074.3531,786.93
17215.9434.61198.881,119.133,773.61
1731635.34205.11,165.7235,884.46
17416.0636.07211.511,214.2938,127.24
17516.1236.82218.121,264.8840,510.19
17616.1937.59224.941,317.5743,042.08
17716.2538.37231.961,372.4645,732.21
17816.3239.17239.211,429.6448,590.47
17916.3839.99246.691,489.251,627.37
Day0min5min10min15min20min30min
18016.4540.82254.41,551.2454,854.08
18116.5241.67262.351,615.8658,282.46
18216.5942.54270.551,683.1861,925.12
18316.6543.422791,753.365,795.44
18416.7244.32287.721,826.3469,907.65
18516.7945.25296.711,902.4374,276.88
18616.8646.19305.981,981.6878,919.19
18716.9447.15315.542,064.2483,851.64
18817.0148.13325.412,150.2389,092.36
18917.0849.14335.572,239.8194,660.64
19017.1550.16346.062,333.12100,576.93
19117.2351.2356.882,430.32106,862.98
19217.352.27368.032,531.57113,541.92
19317.3853.36379.532,637.03120,638.29
19417.4654.47391.392,746.89128,178.18
19517.5355.6403.622,861.33136,189.32
19617.6156.76416.232,980.53144,701.15
19717.6957.94429.243,104.7153,744.97
19817.7759.15442.653,234.04163,354.04
19917.8560.38456.493,368.77173,563.66
Day0min5min10min15min20min30min
20017.9361.64470.753,509.11184,411.39

Notes:

 [1] It's rare to keep saving 30 minutes a day for 200 days straight all from the same script. What eats up time with the script ceases and something else takes its place. When that happens switch focus and start automating that. [2] What makes it hard to gauge the limits is that while we know a lot about the productivity of people who came before us, so we can compare our productivity to theirs, we don't know as much about the nature of the problems ahead. Innovation in technology during the past century errupted unlike any other time. The nature of the problems solved now is unlike that solved centuries ago. [3] When asked to do something manually, I used to find ways to give myself two or three days as a buffer to do it. I'd finish stuff and not tell anyone so I could then say "sure, as soon I finish x", to give myself this buffer. Or I'd pick a task that takes at least three days if done manually, to have enough time to automate it. I didn't know why three days worked well until I ran the math here. Save 10 minutes a day and by the fourth day automation catches up. [4] Another advantage of not working at all is that it leads to boredom and boredom generates ideas. Like ideas on how to improve the script.