Increasing Complexity Threatens Software Stability
As lines of code continue to replace humans and physical devices, quality control is essential…and often overlooked.
An article review.
Looking back over the last decade or two it is easy to see how computers have changed physically as they shrank in size, spreading to our pockets and beyond, but another change was going on beneath the surface. As computers grew in processing power the software that ran on them has increased in complexity to take advantage of that power, and a recent article submitted to us by our friend Wes Pollard of Home Bank describes some of the problems that additional complexity may cause.
One of the biggest problems lies in testing: unlike physical objects which can be tested in practically all the conditions it which it will be used, it is extremely difficult if not impossible to foresee all the different ways a piece of software will be interacted with. From the hardware it will be running on, the other applications running on that system and even how the end user behaves there can be a potentially infinite combination of elements at work…and when a failure does occur, it can be very difficult to track down.
There may also be more code out there than you realize, as many of the things you use daily have been enhanced while you weren’t paying attention. The accelerator in your car behaves the same as it always has, but if it’s a recent model it likely has no physical connection to the engine, instead sending a signal to the car’s engine management computer to be interpreted by software. Changing a battery used to be a job one could do in a few minutes in their driveway, now it can require a trip to the dealership to reset the car’s battery management system. And unlike with many computers, the software running in your car can go without seeing updates for the entire life of the vehicle, though automotive recalls involving a reflash of the computer are becoming a common experience.
Going forward it is hard to see society deciding that they’re comfortable enough, so it’s reasonable to believe that software will continue to be involved in our day to day life. Without a focus on quality, though, that involvement might become increasingly negative.
Original article by James Somers writing for The Atlantic.