A couples of incidents this week have highlighted one of the problems with the agile, software-driven world we live in. While it's great that new features are delivered to us quickly, it also means that problems are reaching users that we simply didn't experience when software development cycles were less intense.
Apple's FaceTime issue is one example of a significant problem that arose because of an error in software. This fault potentially made every iPhone on the planet into a private listening device. Apple promises to fix the fault but it was a significant problem.
Interestingly, it was discovered by accident by a 14 year old kid playing Fortnite. He told his mother who reported it to Apple who didn't do anything about it for a week.
Then, today, there's news that an over-the-air update to an electric car in China resulted in the car becoming stranded. The software update kicked off while the driver was in traffic and it took an hour before the car was drivable again. Although the car was in testing and not commercially available, it highlights the kinds of things that can go wrong when software controls everything.
One of the challenges of software development is testing. But what seems to be less rigorously tested these days is regression testing. This is where functions that used to work, but haven't been altered during a development cycle, are checked to ensure they still operate as expected.
There are huge benefits in the agile approach to development and software delivery. We get new features faster, the increments between updates are smaller so we can more easily adapt to new features or changed interfaces, and we can better react to environmental factors such as new research, emerging competition or shifts in the business direction.
But there is a cost and we are seeing it through security issues, terrible bugs and other problems.
I'm old enough to remember the impact of the Pentium bug back in the 1990s and how Intel had to recall processors as everything was handled in bespoke hardware. More recently the Spectre and Meltdown issues, which continue to be a problem, were handled through software fixes. There has been great cost in this through reduced processor performance and patches that made things worse before they got better.
Our software driven world might move faster. But perhaps we need to take a breath so better testing can happen and we don't rely on teenagers to find major problems.
What do you think?