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.
Download eBook: 3 Key Goals for Software Engineering Leaders to Sustain Digital Momentum
Yet few application and software engineering leaders feel able to do that, in part because of antiquated development and testing approaches.
Read more: 3 Digital Priorities for Software Engineering Leaders
“Teams lack the skills to build robust and resilient applications, deal with unexpected failures, and deliver value faster than they create technical debt,” says Joachim Herschmann, Senior Director Analyst, Gartner. “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 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.
Read more: Upskill Software Developers With a Six-Step Talent Development Program
Digital immunity enables these key changes to the software and application engineering approach:
- Promote an ecosystem-wide view of quality to replace the traditional application or project-centric quality focus.
- Integrate quality, as defined by end-user needs, into every part of the application development process, rather than treating it as an afterthought.
- Identify the required roles, technologies and practices needed to build resilient applications and appoint staff with the necessary skills.
The five elements of the digital immune system outlined below enable teams to make the adjustment.
Download now: Improve Software Quality by Building Digital Immunity
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.