Bugs: the impact of low quality code on innovation and reputation

As digital revolutionizes the world, offering buggy applications to consumers is less and less acceptable and less and less tolerated. The megaphone effect of social networks poses a real risk in terms of brand image to companies with suboptimal code quality that allows bugs to slip through.

Software is all around us, and so are software bugs. A simple and small visual defect on a website, a smartphone application that doesn’t open, a Windows error pop-up that hides a screen displaying plane schedules or, more seriously, a bug that can be exploited to hack into a company (as was the case with the bug that afflicted OpenSSL from 2012 and exposed millions of sites).[1]

Without going back as far as 1962 and the destruction of the Mariner probe after only 4 minutes and 53 seconds of flight or the even faster self-destruction of Ariane 5 during its first flight in 1996, the cost of a computer bug can be astronomical, especially when considering that the vast majority can be corrected in just a few minutes.

This May, Volkswagen announced that all deliveries of its new Golf 8 car in Europe would be stopped and that the 30,000 cars already delivered would be recalled due to a software bug in the “eCall” emergency call function. Because the same software was deployed across other brands, three other models of the VW group are now suffering the same fate: the Skoda Octavia and the new Seat Leon and Audi A3. [2] This issue comes at a particularly challenging time for the German carmaker, as deliveries of vehicles are slowly resuming after the lockdown and its brand new electric car ID 3 was already afflicted by software bugs and has been piling up in the manufacturer’s car parks since December 2019.

Software bugs can sometimes take an even more life-threatening turn. In December 2015, the French National Agency for the Safety of Medicines (ANSM) asked Stallergenes laboratories to suspend the production and distribution of their allergy treatments[3] as a software bug had led to errors in the allocation of medication to patients. 

If we draw a parallel with the automobile sector, cars in the 1970s and 1980s still frequently broke down. It was not uncommon to have to open the hood and repair a car on the side of the road while on holiday. Today, a properly maintained car no longer breaks down. The manufacturers in the sector have worked rigorously on the quality of parts and testing and have succeeded in dramatically lowering breakdown rates. Imagine: if there were still as many defects in a modern car as there are in software, your car would break down every 1,000 km!

Development best practices have yet to evolve

Tolerating so many software bugs may seem surprising when considering that billions of lines of code are now developed every year. Yet while modern applications are nothing like the applications developed on the first mainframes, many development steps have hardly changed in the last 30 years. While there are more bells and whistles (IDEs, continuous integration and continuous delivery tools, and other developer tools), and while some steps have been automated, others are still very manual. Therefore, the quality of the software still ultimately relies on the shoulders of the developers themselves. 

Most developers do not devote 100% of their time to writing code, far from it. According to a study by Stripe, developers spend around 60% of their time actually writing code, with the rest of the time spent modifying or debugging bad code or fixing technical debt.[4] In addition to writing a  program, a developer also has to test the code, do code reviews, and write documentation of the program. But if there has been one constant in the development world, it is the developers’ aversion to testing.

Practices in the world of development are constantly evolving, and continuous integration has been a revolution. In this context, test automation is going further and further, but writing tests for automation tools remains a burden for developers and many existing applications have not benefited from new approaches. The value of testing is twofold: on the one hand it serves to make sure that the code does what we expect it to do, and on the other hand it should help to detect bugs earlier. Above all, well-tested and well-functioning code allows developers to ultimately spend more of their time on writing programs and creating more value for customers, rather than fixing existing issues that were not initially detected. This is not trivial when everyone is desperate to hire developers.

When bugs go viral

In this age of social media and interconnectedness, companies cannot afford to offer buggy applications to customers. For example, the quality of the Android overlay on some smartphones has been judged as simply unacceptable by many users.  The more digital the world becomes, the less consumers will be willing to accept bugs, no matter how small.

The fifth edition of the “Software Fail Watch” study conducted by Tricentis estimated the impact of software bugs in the global economy to be $1.7 trillion in 2017.[5]. All industries are being hit with unavailability of applications and websites, product recalls, hardware failures and utility outages. The true cost of a bug is difficult to assess, but the study points to the increasing media coverage of software bugs. Even if in 2017 the number of bugs identified was decreasing, media coverage of these bugs was increasing. 

The rise of social networks now plays an amplifying role. Even with the smallest malfunction, consumers and sometimes even employees no longer hesitate to express their dissatisfaction by sharing it on social networks. A photo of a screen in an airport or train station can quickly become viral and permanently tarnish a company’s brand image. It is a real challenge to communicate a belief in innovation and modernity when social media is full of examples that demonstrate the opposite. It took Microsoft decades to overcome the image of buggy OS and the famous “Blue Screen of Death” of Windows. The image is still a cultural reference nearly 20 years after the launch of Windows XP.

When low code quality becomes a barrier to innovation

In addition to an impact in terms of image, the announcement of a major bug by a company can literally torpedo its share price. Provident Financial is a textbook case in point. The capitalisation of the British holding company fell by £1.7 billion the day the CEO announced that a software bug had prevented the collection of 43% of the loans granted by Provident Financial.[6]. This was the largest drop ever observed on the FTSE 100. 

More recently, the Zoom videoconferencing service has been the subject of a veritable bashing campaign on social networks, due to the phenomenon of Zoom-bombing by strangers into video conferences to which they were not invited. Although the cause was often a simple misconfiguration by the organizer of the meeting and not Zoom itself, the situation further damaged a brand image of a company already  battered by the discovery of bugs at a hackathon in 2019. Furthermore, in April 2020 when Zoom was facing a record number of daily users, it was forced to freeze all innovations and developments for 90 days in order to solve its security problems and reassure its customers and investors.[7].

Best practices in software development today dictate that quality code must be tested. As soon as a developer produces code, it must be systematically tested to avoid any surprises in production. However, we believe that this does not need to be done manually: software development processes could benefit from an industrial revolution leveraging artificial intelligence technologies to scale human ingenuity. 

Existing tools like IDEs and continuous integration and continuous delivery tools have provided a first answer to this problem. Today, Ponicode’s technology allows developers to automatically generate unit tests in order to follow unit testing best practices and improve code quality, the second answer to this problem. With this technology, developers will be able to focus on truly creating value for users, and above all companies can raise the quality level of their code and thus innovate more without taking risks for their e-reputation.