Uncharted Waters

Sep 29 2017   11:42AM GMT

Saving The World From Software

Justin Rohrman Justin Rohrman Profile: Justin Rohrman

Tags:
Agile
Software development

We seem to have gone from software is eating the world to being terrified of being eaten. As if software were a tiger in a pen at the zoo just waiting for someone to fall in and be devoured. The author of this article on The Atlantic thinks engineers need to start thinking about saving the world from software.

The author is a journalist and recalls several important software problems — Therac-25, recent hacking of car software allowing the hacker to take control,  911 system failures. There is a lot of strange things to unpack about what is wrong with software (developers not prototyping their code first) and how to fix it (developers go extinct and software is made through WYSIWIG editors). I want to add a dash of realism to the argument that is actually based in industry experience.

The first programming languages appeared some time around the 1950s. Doing some math, that means software has only existed for 67 years. I started working in software around 2005. The industry was nearing the end of the waterfall craze at that point in time. When we shipped new software to customer, it was actually shipped, or delivered by one of our implementations people, on a disk of some sort. We weren’t shipping very often back then, maybe 3 or 4 times a year, max. Today, I see companies (yes, this is an extreme example) delivering software hundreds of times every day. Instead of having managed server farms on site to host that software, customers open a web browser, navigate to a URL, and log in. How much has medicine, or bridge building, or architecture changed in the past 15 years? Probably not that much.

software is eating the world

The change it takes to go from delivering every few months to daily is massive. This isn’t just a technology stack problem where we went from directly managing memory to abstracting nearly everything away, and from actual hardware to virtual everything. There was also a massive shift in mentality. Early software development was focused on the idea that getting everything specified up front resulted in better software. Today people like the idea that we probably shouldn’t define things at the point when we know the least about what the customer wants.

Software development has been undergoing radical changes, like the earth during it’s formation, for the past 50 years. And this has probably become increasingly faster (worse?) in the past 20 years. Our main problem isn’t that developers aren’t prototyping, or there isn’t enough regulation around automotive software, or that a developer didn’t make a variable big enough causing a system shutdown. Our problem is just that we are young as an industry and still figuring this thing out.

Meanwhile, the VCs funding these companies keep pumping quarters into the slot machine hoping to hit a jackpot. They understandably are interested in products that can be sold, not talks on craftsmanship.

The author of this article mentions that the main goal of developers today should be writing software that writes software. Basically, automating themselves out of a job. This isn’t going to happen any more than bridges will start building other bridges. Software is definitely eating the world. Hopefully our methods of making it will mature enough in the future to reduce some risk. The world doesn’t need to be saved from software, but we do need to be very careful that there isn’t too much damage done while we figure out what we are doing.

 Comment on this Post

 
There was an error processing your information. Please try again later.
Thanks. We'll let you know when a new response is added.
Send me notifications when other members comment.

Forgot Password

No problem! Submit your e-mail address below. We'll send you an e-mail containing your password.

Your password has been sent to:

Share this item with your network: