Have you ever wondered why there are so many bad drivers on the streets of Edmonton / Calgary / wherever you live? There are multiple reasons.
Reason #1. It is human nature to assume that the generation before you wasn’t as good at xxxx as you are and that the generation after you isn’t as good at xxxx as you are and since the number of drivers is increasing that must mean that the generation after you is flooding the streets with bad drivers. Not necessarily true, but people do think this way.
Reason #2. Here is the somewhat controversial viewpoint. There is this idea that because cars are safer and do more of the driving for you, people pay less attention to the road and are more likely to get into accidents. If you think about it, this does make some sense. If the danger of you being seriously hurt in an accident is lower tomorrow than it is today, then you are going to pay less attention tomorrow because it’s less dangerous. As the days go on, you become increasingly desensitized to the dangers and … BAM.
This idea of becoming complacent isn’t just restricted to driving, however, as it is applicable all over the place. As technology has progressed, as technology has changed the world around us, things that were once complicated are now simple. Things that were dangerous are now less hazardous. Once an item falls below a certain threshold of danger, you stop worrying about it. And it doesn’t necessarily have to be a danger threshold; it could be almost any threshold.
For instance, in the IT world, we used to worry about how much CPU a process consumed because we were billed by our consumption. When we went to dedicated servers that changed because we now paid a set price and could consume all of the CPU on that box. Changes to the environment brought caring about performance below that threshold. I mean, back in the good old days when we worked on the mainframe we ran things at night because it was cheaper to do so. And thus was born “batch processing”.
But today’s world is different, very different. With dedicated servers for which you pay a set price, you can write code as well or as poor as you like, as long as you don’t exceed the parameters of the box.
But there’s going to be a shift soon. A big shift. There is a technology called “serverless computing.” That is a really bad name as there is a server involved, but it is no longer dedicated to you. Essentially serverless computing is discrete pieces of functionality (some have called it “functions”, amazing how the English language works, isn’t it) that exist outside of a specific server and just reside in “the cloud”. When you call the function it runs, and you pay for how much processing you consumed. When it is not running, you don’t pay. So, for many of our applications that support internal processes, when everyone goes home at night the functions aren’t running, and we aren’t paying. That sounds good: not paying.
However, yes, there had to be a “however”, remember that for the past decade or so we haven’t been concerned about performance because we bought the server. In this new model of computing we haven’t bought the cloud, we pay on a consumption model, so if we write poorly performing code, we pay for it. If we take a piece of code that took 3 seconds to run and reduce it to 2 seconds, we’ve cut our cost by 33%. One second may not seem like a lot, but if that code is called 10,000 times a day we’ve saved almost 3 hours of processing time per day. That could turn out to be a lot of money.
Technology has helped us, it has allowed us to do many things that we couldn’t before, but there is a downside. Someone needs to understand, someone needs to pay attention so that things don’t go awry, so that we don’t get into an accident, whether that is a physical accident of driving into someone else’s car or by paying too much for a small piece of code. We need to fight human nature; we need to pay attention to all of the little details, all of the little pieces. All those little pieces mean a lot, whether you are driving or writing code.