The Hidden Cost Of Efficiency
We also take pride in writing software that is robust. Programs that recover gracefully when the unexpected happens are not just ideal, but real world requirements. Add security and privacy, and the cost here would be extensive testing, longer periods between roll outs, and a hit to performance.
This tension between efficiency and robustness is something developers wrestle with all the time, and a popular saying among programmers (and engineers) is "Good, fast, or cheap. Pick two."¹
The impact of Covid-19 has prompted a bit of soul searching regarding efficiency and resiliency in the economy, supply chains, and manufacturing. Evidently, the world has tilted too far toward efficiency, and now finds itself vulnerable to shocks.
For example, Will Oremus explains on Medium that there really is a toilet paper shortage. It's not that manufacturing has slowed or that we're using more. The problem is that separate supply chains feed the commercial space and the consumer space, and that demand in the consumer space has dramatically increased as more and more of us work from home.
Willy Shih writes in Forbes that China has optimized electronics manufacturing with a large, low cost, and flexible work force, to the point of making it difficult for companies like Apple to establish alternate supply chains in other countries, including domestic production.
Bringing us back to programming, Moshe Y. Vardi ponders in ACM what Covid-19 teaches us about computing. While fault tolerance has been part of our discipline for decades, our frictionless sharing on social media has led to "filter bubbles, fake news, and extreme content."
Perhaps a little friction, a bit of inefficiency, a sprinkling of built-in costs, are good things... vital even. Banned from our vocabulary ought to be just-in-time inventory, friction-free economy, and a perfect informationally efficient market.
¹ Street food comes closest to picking all three, but that's a subject for a foodie blog.
Comments