Cloud Good for Humans- I once subscribed to the YouTube channel of a guitar instructor who used a phrase that stuck with me: “practice doesn’t make perfect, practice makes permanent”. Doing something wrong more quickly, efficiently and consistently doesn’t necessarily improve the quality of the action ; sometimes, it could even make it worse, as bad practice becomes entrenched habit.
Technology is a facilitating tool, not evil or good in and of itself—it’s about taking whatever the intent (or the error) was into the real world more efficiently and effectively, for better or worse. Consider this effect in areas such as Cloud Computing (and related technologies): whether it’s a bug or an exploitable feature or vulnerability, I argue that even without malice the ethical stakes are uniquely high.
While ethics are as old as civilization itself, in the technology industry, I would argue that personal ethics are still very much an emerging topic. Consider a recent StackOverflow survey in which 80% of developers said they wanted to know what their code is used for—but 40% would not disqualify writing unethical code, and 80% did not feel ultimately responsible for their unethical code. (You can explore the psychological drivers for this in this great talk by Andrea Dobson.)
I am not referring to the obvious and very visible meta-discussions about things such as data privacy, anti-trust, the morality of machines or Yuval Noah Harari’s theory of Digital Dictatorships. I’ll even put corporate malice aside for now, so we can explore how Cloud can take our individual bad habits and errors to a global scale very, very quickly .
In the red corner: how can Cloud make things worse?
When your app is live in multiple cloud regions with five-9s availability, anything bad that is baked into it will scale accordingly. The glaringly obvious example of this from the past two years: political radicalisation and deliberate disinformation campaigns that took advantage of social media platforms to influence democratic elections and referendums. For a debrief, please contact the offices of Mssrs. Zuckerberg and Dorsey.
Speaking of Facebook FB +1.39%, remember “Move Fast and Break Things”? Speed (or ultimately, agility) is arguably the greatest benefit of using Cloud, as well as being a key tenet of agile methodologies. But that also means that mistakes in code can get into users’ hands within minutes. Indeed, the “Break Things” part of that sentence assumes you can “Move Fast” again to issue a fix, but even if you are as agile as Facebook, some damage is already done, and probably at scale.
If the system moves too fast, perhaps a useful approach for each of us to overcome our personal speed bias is the one developed by Nobel laureates Daniel Kahneman and Amos Tversky, and popularized in Kahneman’s book, “Thinking, Fast and Slow”. By engaging ‘System 2’, the more analytical side of our brains, we can focus on how we make decisions at least as much as we do on what gets decided.
Microservices architecture is great way to empower smaller teams to release independently, and drive software development in a much more dynamic way—resulting in more resilient apps. Consider, however, that if each small team only owns a small part of the picture, it might not feel responsible for any damage done at the end of the line. Philosopher and political theorist Hannah Arendt famously explored how breaking down evil into ‘digestible’ bits detaches contributors from feelings of blame, but even when we talk about honest mistakes, that principle can easily be applied to software development when we lose sight of our place in the bigger picture.
Perhaps a mitigation here is to always know how your code fits into the big picture of the app, and stay close to your users, even if you are far-removed to the left.
In the long term, robots may or may not take some or all of our jobs. This might create a motivation for people to ‘stretch’ their morals in a vain effort to keep their jobs. In the short and medium term, the focus in Cloud and DevOps seems to be on abstraction, task automation and the creation of self-service experiences for developers. While this drives the industry forward professionally, a message of “you just focus on your code” implicitly encourages the removal of overall responsibility from each small part of the chain—as we’ve seen above, this can be a bad thing. Again, being conscious that you are delivering part of a whole, and caring about the outcome, can help.