The cost of poor software quality in the US has grown to at least $2.41 trillion as estimated by the Consortium for Information and Software Quality in 2022 and will continue to rise in 2024
The Astronomical Price Tag of Poor Software Quality
The cost of poor software quality in the US has grown to at least $2.41 trillion as estimated by the Consortium for Information and Software Quality in 2022, and this figure is expected to continue rising in 2024. The cost of bad code is a known problem that creates a disparity between software development teams and their clients, where failure costs lead to defective systems that can negatively impact a client's reputation and project performance.
Multiple Arenas of Software Development
The software development landscape has evolved significantly, with various approaches gaining traction in 2024. Custom software development continues to offer specialized services through software for diverse domains. In parallel, the worldwide market for low-code development technologies is projected to reach $26.9 billion in 2023, and this estimate is expected to increase further in 2024 due to the growing adoption of enterprise-wide hyper-automation and composable business initiatives.
Moreover, the advent of generative AI has led to a massive investment by founding organizations to capture the market and drive software development through an assistive approach. With these diverse software development methodologies, it is crucial to have a meticulous design and validation process to prevent any kind of failure. Investments in testing real-time systems are no longer an option, as standalone systems must function as per the customer's needs.
Operational Maintenance Costs and Newer Validation Approaches
Project planning now includes a separate estimate for creating high-quality software, whether for a new project or an ongoing one. Operational maintenance costs are derived based on the cost of quality estimated during the project planning stage. Newer software development approaches, such as Model-Based Development, AI applications, and low-code applications, have also contributed to the focus on newer methods of software validation. Instead of organizations investing in opportunity costing activities, there are more reliable approaches to eradicating poor software code.
Software Failures: A Case Review
The latest insights into software failures come from high-profile incidents involving autonomous driving systems. On May 21, 2023, a self-driving Jaguar I-Pace car, operated by Waymo, ran over a dog due to an unoperative safety fail system, a poorly framed fail-safe system, and bad software. The system detected the dog crossing an unconventional path but failed to activate emergency braking, despite identifying the object and tracking its path.
A similar incident occurred in 2018, when an Uber ATG automated driving system detected a pedestrian 5.6 seconds before impact but failed to identify the object as a pedestrian, leading to a fatal crash. These incidents not only resulted in the loss of life but also raised significant doubts about the public's trust in autonomous driving systems.
Cruise, General Motors' subsidiary for autonomous vehicles, also issued a voluntary recall for 300 of its driverless cars in January 2023 after a bus crash involving a Cruise autonomous vehicle and a San Francisco Municipal Transit Authority bus. This incident was attributed to a software malfunction, where the system's prediction was inaccurate. Before deploying such systems to the public, rigorous safety plans, occupant safety, and backup measures must be identified and addressed.
The Minnechaug Regional High School is another example of a system failure, where a connected lighting system had 7,000 lights glowing for 2 years due to a software integration issue. The cost of changing the system design and software update was around $80,000, not including the electricity usage cost.
Optus, an Australian telecom provider, also experienced a major outage in November 2023, leaving 10 million Australians and 400,000 businesses without phone or internet for up to 12 hours. The company acknowledged its failure to design a fail-safe mechanism to address such a large outage, which had a significant impact on customer needs, traffic delays, payment systems, and emergency call handling.
Ethical Challenges with Generative AI
The recent incident where the generative AI chatbot Gemini from Google was sued for personifying a country's leader as fascist, triggered by its response to a question on misgendering Caitlyn Jenner, highlights the need for an ethical approach to AI development. Human biases should not be coded into the training algorithms, as there have been several allegations, misinformation, and penalties associated with faulty responses from chatbots.
These cautionary tales emphasize the importance of strategic alignment with the customer's focus and safety as the top priority when building any system. In the current technological landscape, where outsourcing and cost-saving measures often take precedence, a transparent approach to system building and the associated third-party responsibilities is crucial to mitigate the risk of failure.
Strategies to Improve Software Quality
To address the poor software quality problem, the following strategies are likely to be the most effective:
Adopt Emerging Software Quality Standards and Tools: Utilize standards such as ISO 21434 (road vehicle cybersecurity), ISO 21448 (SOTIF - Safety of the Intended Functionality), UNECE WP.29 (vehicle cybersecurity), and Automotive SPICE, along with related measurements and tools.
Scrutinize Third-Party and Open-Source Components: Analyze and assess the quality of all third-party or open-source software components to be included in any system, and monitor them closely during operation. Apply patches in a timely fashion.
Integrate Continuous Quality Engineering Practices: Adopt DevOps and CI/CD models that include continuous quality engineering best practices and tools.
Incorporate Continuous Technical Debt Remediation: Integrate continuous Technical Debt remediation into the software development lifecycle (SDLC).
Invest in Software Engineer Professionalism and Knowledge: Invest in the professionalism and knowledge of your software engineers, and consider having them certified for critical code and architectural weaknesses in ISO/IEC 5055 when the "Dependable Developer" certification test becomes available in late 2023 or 2024.
By implementing these strategies, organizations can take proactive steps to address the growing cost of poor software quality and build more robust, reliable, and trustworthy software systems.
#SoftwareQualityCost #SoftwareDevelopmentChallenges #TechDebt #ContinuousQualityEngineering #CertifiedSoftwareEngineers #AutonomousVehicleSafety #GenerativeAIEthics #EmergingSoftwareStandards
Comentarios