Once upon a time, software application engineering success was measured by whether the team delivered a solution “on time and on budget.” Today, that’s no longer enough. Digital business transformation is changing what success looks like for everyone. Software and application engineers are expected to deliver working solutions that offer a compelling user experience and contribute to business value. In fact, three out of four respondents to the Gartner 2020 Digital Business Platform Survey said their team is expected to generate revenue.
Yet few application and software engineering leaders feel able to do that, in part because of antiquated development and testing approaches.
Teams lack the skills to build robust and resilient applications, deal with unexpected failures, and deliver value faster than they create technical debt. They cannot handle the accelerated rate of change or the complexity of systems, and therefore they fail to meet customer expectations. This exposes organizations to operational and business risks.
Software engineering leaders are looking for new practices and approaches to mitigate these risks and deliver a high level of business impact. The digital immunity concept provides a roadmap. It comprises a set of practices and technologies to develop resilient software applications that offer a superior user experience. With this roadmap, software engineering teams can detect and respond to a wide variety of issues, from functional bugs to security vulnerabilities and data inconsistencies.
Digital immunity enables these key changes to the software and application engineering approach:
The five elements of the digital immune system outlined below enable teams to make the adjustment.
Five elements of a digital immune system
Autonomous testing. The use of artificial intelligence (AI) and machine learning (ML) based technologies to conduct software testing without human intervention. It extends beyond the automated execution of test cases to include fully automated planning, creation, maintenance, and analysis of tests. It orchestrates those activities and enables independence and autonomy for them.
Chaos engineering. The use of experimental failure or fault testing to uncover software bugs and points of failure, among other weaknesses. A Gartner survey found that 18% of participants were using or planning to use chaos engineering. Teams ideally do so in preproduction environments and then apply the lessons to normal operations.
Autoremediation. A software system or ecosystem is equipped to monitor itself and correct issues automatically without involving operations staff. Examples of issues that can be autoremediated include restarting an application that crashes or reverting a faulty configuration of an application to a previous configuration.
Observability. A characteristic of software and systems that allows them to be “seen” so that software developers and engineers can more quickly and confidently isolate the root cause of a problem. Observability tools can spot a relevant anomaly and then link possibly related bits of information, such as from log files/metrics. With observability built directly into the application, teams can achieve greater uptime for it.
Continuous validation. The ability to monitor the integrity of data and systems in a live environment with the goal of identifying inconsistencies or anomalous behavior before they create problems for the user.
For the most effective digital immunity, focus on what constitutes a compelling user experience (UX). Don’t just ask, “does it work?” but also “how could it work better?” and “how could it be more resilient?” This requires a mindset of innovation, a shift toward building quality into the product, and a plan for the reality that defects will slip through into production software.
The original article by Joachim Herschmann, senior director analyst at Gartner, is here.
The views and opinions expressed in this article are those of the author and do not necessarily reflect those of CDOTrends. Image credit: iStockphoto/Mark Dymchenko