I was recently reading Stuart Stent’s CIO.com article, “The Crucial Role of Application Management in a Cloud Operating Model,” in which he notes that the “IDC predicts that to gain business agility, enterprises will need to modernize over half of their existing applications by 2022, using turnkey cloud-native development and deployment services.”
Organizations are looking for all the advantages of moving both their software development teams and their software products to cloud-based platforms, including:
- Lower-cost, hosted offerings for customers
- Improved application performance and customer satisfaction
- Enhanced application agility, scalability, and maintainability
- Secure, developer-ready cloud environments to accelerate innovation
- Increased developer productivity through use of cloud-native architectures and services
Applications that are targeted for movement often require modernization to fully leverage how cloud can help achieve the advantages listed above. Modern application architectures employ microservices, serverless computing, containerization, multi-tenancy, cloud-native services, and other cloud features. Many applications require refactoring, often with significant architectural changes.
HPE
Modernizing an application to take advantage of the appropriate cloud-native architectures and services can be complex and requires expertise in cloud technologies, processes, and tools. Each application requires a detailed assessment and a determination of the appropriate refactoring to meet business needs. Decisions need to be made regarding critical refactoring vs. enhancements that can be included later. Unless an organization has already performed multiple cloud application modernizations, there may be a steep learning curve and possible missteps before you achieve success. Often organizations don’t know where to begin.
Planning for success: A 7-step blueprint
1. Assess application cloud-readiness and design the cloud architecture to support modernization
Both manual and automated code analysis can be used to assess an application’s cloud-readiness. Key determining factors include hard-coded connections, remote method invocations, and thread management. In addition, review the application architecture to assess applicability of decomposing business logic into cloud frameworks, such as microservices and serverless, and the suitability of incorporating cloud-native services to meet business, performance, and scalability needs. A thorough evaluation of non-functional requirements is necessary for driving the design of an appropriate cloud infrastructure to support the modernized application. When designing the infrastructure, consider best practices such as common shared services for logging, monitoring, and security. The infrastructure design should also include the frameworks and tools your development team needs to accelerate innovation and facilitate agile processes.
2. Re-imagine the user experience in ways that are customer-centric and market-relevant
While most organizations understand the technical benefits of refactoring their application codebase, many don’t consider one of the key factors driving customer loyalty: the user experience. Experience design techniques (expanded in this article by M Safder) – or empathy workshops that uncover what customers really want and design sessions that quickly turn ideas into interactive prototypes –drive the most creative solutions. These workshops and design sessions should include real customers who can provide iterative feedback as prototypes are developed and refined. Using these techniques ensures that the modernization effort includes not only modernizing the technology but also the customer experience. Take this opportunity to delight your customers. If you don’t, your competition will.
3. Quickly validate technical decisions and end-to-end functionality using a Proof of Concept
An organization’s stakeholders often want a high degree of comfort that their software product will perform as expected in the cloud. There may also be technical decisions that need to be evaluated and validated. A Proof of Concept (PoC) is a cost-effective way to quickly demonstrate end-to-end functionality to stakeholders, investors, and even customers; validate emerging technologies; and/or prove value. A PoC is also a good way to create and validate the foundational infrastructure and technical components needed for the refactoring sprints. Time to market is critical. Build out only the minimal cloud infrastructure needed to support the PoC, and develop only the PoC elements that are critical for the decision to move forward.
4. Define the minimum viable product (MVP) and development roadmap
Modernization requirements, driven by the application assessment results, architecture design, and experience design, should be translated into high-level User Stories that will be decomposed into project backlog during the refactoring sprints. The User Stories can then be prioritized to define the MVP in order to accelerate time to market. Keep in mind that not all modernization requirements need to be implemented during the initial refactoring. Choose those requirements for the MVP that will provide the best return on investment and that will address the most critical business needs. The goal of defining the MVP is to get the cloud-based software product into the hands of customers as quickly as possible. The remaining User Stories become part of a phased plan that serves as a roadmap for achieving longer-term business goals.
5. Build out new or optimize existing cloud infrastructure to support modernized applications
A new cloud environment will need to be built or an existing cloud environment modified, as designed during the architecture assessment, to support the given, modernized application. Wherever possible, Infrastructure as Code should be developed to define the infrastructure. This will enable automated, repeatable, ease of provisioning. Start with the development environment so that the refactoring sprints can begin and then build out test, UAT, and production environments as development progresses. To speed development cycles, deploy a CI/CD toolchain that includes the integration of automated testing and code promotion, along with any cloud frameworks and tools the development team may need.
6. Modernize the application using an agile, MVP approach
Once the MVP is defined and the development environment is built, refactoring can begin. Use an agile, sprint-based approach that allows rapid response to changes in requirements and priorities, facilitates continuous delivery of working features to stakeholders for feedback and acceptance, and drives time to market. Continually validate the user experience with real customers to ensure the end-product will keep them engaged. Optimize the infrastructure, through updates to the Infrastructure as Code, and maintain the CI/CD scripting and automated testing pipeline throughout the development lifecycle.
7. Make automated testing an integral part of your modernization strategy
Move testing as far left in the process as possible. Leverage automated testing in your CI/CD tool chain to maintain feature parity before and after the modernization process. Testing should include unit, functional, destructive, and load testing. Testing should include applications, configurations, and infrastructure, providing confidence as you work through the release process.
Are you ready?
There is tremendous value wrapped up in organizations’ existing applications; they power the business. Modernizing those applications while maintaining that value increases business agility and improves application scalability, resiliency, and usability. By following this modernization blueprint, organizations can get started on a successful modernization initiative and see results against their business goals as quickly as possible. Following this blueprint will provide the significant business value that’s motivating you to undertake wholesale application modernization.
For further information please visit www.hpe.com/greenlake/cloud-adoption-framework.
To find out more about Digital Next Advisory or engaging with an HPE Digital Advisor please contact us at digitaladvisors@hpe.com
____________________________________
About Debbie Mounts
Debbie Mounts has over 30 years of experience in software development, cloud solutions and services, and product management. She currently leads the Content Strategy and Enablement Team in the HPE Pointnext Services Advisory and Professional Services organization. She is responsible for developing strategic, thought-leading content and learning programs that empower HPE to meaningfully engage with clients.