Although John Considine, CTO of Verizon Terremark, is right in saying “we are headed toward software defined everything,” the concept of software-defined systems is kind of unnerving. To place your faith in software that controls your operations means placing your faith in the developers and designers of the technology. These individuals are qualified to create incredible, game-changing software solutions that are reshaping data center environments. However, when they are pressed into creating more sophisticated systems and applications at a rapid-fire pace, problems will naturally arise.
One example of these potential problems would be the way mobile applications are being created. Apps are being generated as quickly as the concepts and ideas are being brainstormed. Everyone wants to win the race to produce the latest and greatest app that will lead to a coronation of some sort. When it comes to producing apps, the software lifecycle is reflecting Ricky Bobby’s motto from Talladega Nights, “If you ain’t first, you’re last.”
While the rush may be on to develop and launch software, if the quality assurance and testing phases are compromised during the lifecycle, the consequences for the end users can be catastrophic. This is especially true for critical software-based systems. EDN covered Toyota’s most recent loss in a court case in which faulty firmware of the Engine Control Module (ECM) led to the death of at least one occupant. The software design and development process was cited as the main culprit in this tragedy.
According to Michal Barr, CTO and co-founder of the Barr Group (and a primary expert witness for the plaintiffs), the software miscues included:
- Toyota’s electric throttle control system (ETCS) source was of unreasonable quality
- Toyota’s source code was defective and contained bugs
- Code-quality metrics also predicted additional defects and bugs
Now, you may be thinking, “This is an extreme example and software use is normally confined to areas where public safety isn’t compromised.” But it really isn’t. Software is tied to every facet of our well-being—from food and water consumption, to the medical care we receive.
While software automation can make our lives easier and can certainly help businesses overcome error-prone and labor-intensive processes, developers and designers should be advised to proceed with caution and refrain from stepping down too hard on the gas pedal.
Stay tuned for our upcoming Part II discussion of the influence of virtualization on software-defined networking. Contact The Tech Zone to learn how software-defined systems can impact your business.