July 06, 2016
Software projects typically fall into two categories: maintenance of legacy applications and development of new applications. Naturally, each presents its own unique challenge. For example, legacy applications are often under-tested and overly complex, and understanding where to start is the biggest challenge to improving quality. With new development, the challenge is typically release readiness – the task is determining how much work has been done and how much remains to be done.
Posted by Bill McCaffrey in Software Quality
June 28, 2016
The tragic news of Star Trek actor Anton Yelchin, crushed to death when his Jeep Grand Cherokee rolled backward down his driveway, has prompted Fiat Chrysler to speed up its recall plans to modify electronic gearshifts on more than 1.1 million Jeep and Dodge vehicles. The recall has been linked to hundreds of reported accidents and injuries.
In 2015, the National Highway Traffic Safety Administration (NHTSA) opened an investigation, after some Jeep Grand Cherokee owners alleged their vehicles would roll away after being shifted into Park. Initially, the NHTSA treated the issue as a mechanical defect. Since then, the NHTSA has determined that the issues... Continue reading »
Posted by Bill McCaffrey in Automotive
June 07, 2016
Competition in the automotive industry is intense. Successful companies must constantly innovate by introducing new features, many of which contain significant amounts of software. The automobile has been transformed from primarily a mechanical device, into an integrated machine with embedded software in all major systems including: engine control, power train, suspension, braking, and entertainment.
While not all automotive software is critical to the safe operation of the vehicle, systems that perform functional safety operations must be safe, secure, and reliable. Issues caused by malfunction of code can be prevented with software verification and validation testing. MISRA and ISO 26262 are the two software standards that apply to the... Continue reading »
Posted by Bill McCaffrey in Automotive, Software Quality
June 03, 2016
I’ve been invited to speak at the upcoming Internet of Things Expo in New York City about why software quality is an increasingly critical concern in the Industrial Internet of Things environment. Here’s my take on it: the Industrial IoT has been around for some time in applications such as transportation, factory automation, smart buildings and more. However, as the industry continues to rapidly grow, there will be new vendors providing applications, middleware, and connected devices to support the thriving ecosystem. This essentially means that these electronic device manufacturers will also now be in the software business.
Posted by John Paliotta in Software Quality
May 31, 2016
A wide variety of medical devices incorporate embedded software. Some of these devices such as: X-ray scanners, heart rate, blood pressure, and breathing monitors, are used for analyzing patients. Others such as defibrillator and medication pumps are used to treat patients. In both cases, patient health and safety depend on the medical software deployed being reliable, safe, and bug-free.
In order to provide thorough and rigorous examination of the software systems on these devices, developers must comply with the guidelines outlined by the U.S. Food and Drug Administration (FDA) and/or the ISO standard IEC 62304.
Posted by Bill McCaffrey in Medical Devices, Software Quality
May 24, 2016
The volume of software worldwide continues to grow exponentially, and software quality has simply not kept pace. This has caused the industry to reach a crisis point in terms of mounting technical debt that has been caused by the continual development of software without the correct quality control processes in place.
The four biggest contributing factors of technical debt are bad architecture choices; overly complex code; lack of code documentation; and inadequate testing. As technical debt increases, developers spend a majority of their time fixing bugs and struggling with fragile code, rather than building new features. Compounding the technical debt and related quality issues are the following: