“Software engineering leaders are under continuous pressure to adopt modern architectures and technologies. To do this well, they need to know which trends have the greatest potential impact for their digital business efforts within an actionable planning horizon,” said Joachim Herschmann, VP analyst at Gartner.
The top strategic technology trends for software engineering fall into three distinct categories (see Figure 1). The developer enablement theme brings together trends for enabling developer teams to release their full potential. The second theme focuses on enhancing teams with AI technologies and the third theme focuses on trends in scaling software development.
Figure 1: The Gartner top strategic technology trends for software engineering
InnerSource
InnerSource is a software development strategy that applies open source practices to proprietary code.
By adopting an open source mindset to software development, organisations can close gaps and break down silos, leading to a stronger and tighter software development lifecycle.
“Ultimately, InnerSource helps teams build software faster and work better together—resulting in higher-quality development and better documentation,” said Herschmann.
Developer experience
Developer experience refers to all aspects of interactions between developers and the tools, platforms, processes and people they work with to develop and deliver software products and services. Improving developer experience is critical to succeeding with digital initiatives and building high-performing teams.
Gartner believes that developer experience extends beyond developer tools and technologies. Herschmann says the tools used in day-to-day work play a role in improving the quality of developer workflows. "However, developer experience also depends on nontechnology factors. These include having dedicated time for deep, creative, meaningful work, as well as personal freedom to try new things without the fear of failure,” he added.
AI-augmented software engineering teams
AI-augmented software engineering leverages AI technologies to aid software engineering teams in creating and delivering applications faster. They can quickly generate different types of artifacts including design elements, application code or test cases that they can then refine and reuse thereby accelerating the overall process.
"AI-augmented software engineering calls for making software engineering teams more efficient in their work by relieving them of tedious work, rather than letting the technology replace them," said Herschmann
AI-empowered applications
The combination of available enterprise data, advanced model-building capabilities, and generative AI services will result in data-enhanced applications that drive better business decisions. AI-empowered applications can enrich the information available in enterprises and applications, automate workflows and build models that assess risk or recommend the next best actions.
For success when using AI, software engineering leaders should treat AI model development differently from application development and coordinate activities between development and model-building teams.
Platform engineering
Platform engineering is the discipline of building and operating self-service internal developer platforms for software delivery and life cycle management. It helps developers discover, operate, secure, improve and build upon complex, distributed IT systems — especially when they are not technical experts in the underlying systems.
Platforms improve the overall developer experience with a curated set of tools and services. They also improve the consistency and quality of IT solutions reduce redundant tools and processes, consolidate parallel efforts by multiple teams, enforce security and compliance standards, and include pervasive automation.
Digital Immune System
Digital Immunity interlinks practices from the areas of observability, software testing, chaos engineering, software development, site reliability engineering and software supply chain security to ensure high resiliency and quality of applications.
“Many software engineering organisations are already using some of these strategies, but none of these practices by themselves will be sufficient to achieve the goal of building highly resilient systems,” said Herschmann.
He concluded that together these practices constitute a powerful continuous quality approach to ensure that complex digital systems keep running even if the ‘house is on fire’.