Transform your legacy apps with a ‘lean modernization’ approach
Niall Moran
EMEA Application Modernization Go-to-Market Practice Lead
As companies are increasingly reliant on digital services to interact with their customers, business partners and employees, application modernization projects are getting higher priority due to the inability of older applications to meet the current demands of the business.
In a recent ESG survey1 86% of organizations stated that they run production workloads on public cloud infrastructure, clearly demonstrating that public cloud is seen as a route to modernizing applications and the underlying infrastructure. It is also clear that a move from virtual machines to container-based platforms is enabling this transformation, with 68% of organizations using containers for production applications.
However, just moving applications to the cloud may not be enabling organizations to achieve the results they expected. In the same ESG survey, 56% of organizations say they have moved applications back on-premises with 29% saying it was due to inability to meet scalability and elasticity expectations and 34% citing unexpected higher costs.
At Google Cloud, we have worked closely with customers to help them design and build digital services in a way that significantly improves developer productivity2 whilst driving down infrastructure costs3, enabling them to realize more benefits from their cloud strategy.
This blog post explores the concept of ‘lean modernization.’ Rather than attempting to modernize complete legacy applications, this approach focuses on building new digital services aligned with specific use cases using modern software engineering principles and cloud-native technologies. Lean modernization complements the strangler pattern and leverages DORA metrics to improve developer productivity to ensure success with the approach.
The case for change
It is worth noting up front that no one approach to modernization will suit all applications. There is no replacement for assessing your estate and identifying the correct strategy for each application type. But for applications that are becoming increasingly important to your business, the idea of rebuilding can be overwhelming. Nor can you just move them to the cloud, as they were likely not designed to take full advantage of what the cloud has to offer.
A use case that comes to mind is real-time payments. As banks grapple with moving from batch processing of payments to offering real-time solutions, they need to implement significant architectural changes. But unscrambling a network of interdependent batch jobs and rebuilding with modern event-driven, serverless architectures in a way that allows changes to be propagated quickly and securely is not a simple task.
This use case, and many others, will require significant changes in engineering processes and culture, not just the technical architecture.
Lean modernization
At Google Cloud, we are passionate about modern software engineering and the process of continuously improving how we engineer great software and hardware. Through our DORA research and findings we have discovered, for example, that shifting security left in the software engineering process is critical to success, and that businesses that master modern software engineering principles are 2.5x more likely to achieve business goals4.
How does this knowledge help modernize older applications? It can inspire you to adopt a lean modernization approach. The fundamental concept is simple:
Apply a “build new” approach to all new business requirements that require faster time to market instead of slowing down their delivery or waiting for them to be modified. This way, you avoid adopting older methodologies and technologies that would create more technical debt.
Build small teams — minimum viable organizations, as it were — that comprise the minimum number of people from each of the required stakeholder groups. Everyone on the team should have the same mindset: it is possible to deliver this new capability fast, now how do we do it? Give these teams the freedom to work with new processes and capabilities, and deliver great software that meets business and regulatory requirements faster. Learn from these lean teams and integrate findings into enterprise architectures for the next project.
The potential benefits of this approach will be dependent on the industry and environment in which your company operates but could include:
Faster time to market for new capabilities.
Reduced carbon footprint and cost by leveraging managed or serverless technologies
Avoiding disruption from companies that don’t have the baggage of legacy systems and processes
Improved engineering processes that continuously adapt to new requirements and regulations
Less technical debt over time
An easier time attracting engineering talent as you are constantly using the latest practices and technologies
With the latest development in cloud based messaging architectures and serverless capabilities, new services that can easily interact with legacy systems, enabling both to co-exist
Of course, these benefits will create some areas to consider closely:
Regulatory requirements can seem to force us to continue to do things the ‘old’ way, which is what creates legacy software and technical debt over time. This is why considering the most appropriate use cases up front is critical; adopting a ‘can do’ approach by default will help push the boundaries.
Outsourcing software engineering and delivery is always a great way to manage costs and fit into existing procurement and operational processes. But as you build up your software engineering muscle, how do these relationships look? Many Google partners have expertise in software engineering excellence, so including partners in your minimum viable organizations could be the future rather than outsourcing everything.
Build-versus-buy decisions are always a part of considering new digital capabilities. As your software engineering muscle grows, maybe it’s time to consider this again, as building will provide more flexibility and agility for certain use cases.
Conclusion
As digital services become a more important way for companies to engage with their customers, building expertise in modern software engineering principles becomes a more critical organizational imperative.
Google Cloud is an industry leader in DevOps research and assessments, site reliability engineering, and open serverless cloud infrastructure, and is well placed to help you build the software engineering muscle required for now and into the future.
If you want to talk to Google Cloud about our approach and how we can help your organization, please contact us here.
1. Source: ESG Complete Survey Results: Distributed Cloud Series: Application Infrastructure Modernization Trends
2. Accelerating DevOps with DORA Deutsche Bank
3. SAP SE Adopting containers and reducing infrastructure costs by 70 percent
4. ROI of DevOps Transformation