Modernizing legacy systems is complex and risky, but you can avoid common pitfalls and enable success by following our first principles of modernization. These principles are the core of our modernization approach, and we found success when applying these principles to clients’ modernization challenges.
Start with a Small Win
Achieving an initial win demonstrates success, builds buy-in, and exposes potential future challenges. Focus on regularly delivering small improvements and understanding throughout the modernization effort instead of going live with everything at the end. One large release delivered at the end of the project often means setting the effort up for failure because risks are put off until they’re practically insurmountable. This increases anxiety and is susceptible to the sunk cost fallacy. Releasing small improvements on a regular basis mitigates risk by forcing teams to tackle challenging aspects of the modernization upfront to deliver working software. Ultimately, this increases the chances of success.
Deliver Value First
A successful modernization effort delivers the highest value first, rather than all the features at the same time. As your business evolves, you continuously expand your understanding of the product value. First, identify the key value propositions of your modernization effort. Then focus on exploring and experimenting with the intent to understand them. After that, focus on delivering value to the customer first rather than trying to modernize the entire application. As the modernization progresses, you will identify a point of diminishing returns. Many features in enterprise applications don’t see much use and only make the overall system harder to understand, test, and maintain. If you can implement analytics on the usage of the current system, it may help provide visibility into these items. You can stop when you hit the point of diminishing returns, confident you have delivered the most value.
A Key Reminder: Value Can be More Inclusive Than You Think it is
In the earliest stages of a large modernization effort, value doesn’t necessarily mean “items delivered.” There is a strong incentive to tackle the “low-hanging fruit,” the “easy wins” first. But the reality is that the highest overall risks to the success of a development effort are rarely in the easy parts. The unknowns that hide critical risks are generally in the hardest, least understood parts of the system. Leaving those unknowns to the end to address—when deadline pressures and waning budgets constrain much of the work—massively increases the risk of critical failures. From this perspective, “information value”—real, validated insights and understanding about high-risk system components—early on can be as important as the delivery of end-user features. In addition to technical feasibility concerns, this rapid, iterative learning approach can also provide valuable information. For example, you’ll more quickly identify the areas where modernization will have the greatest impact. You’ll also identify areas where there may be pitfalls necessitating a deeper look to avoid waste. In the earliest stages of a modernization effort, learning and information value can absolutely be considered wins, as they pave the way for success in the rest of the effort.
Create Feedback Loops
Emphasize learning throughout the modernization. Create feedback loops with your customers, your stakeholders, and your teams to identify new, emerging knowledge and respond to it. The best way to do this is by delivering small, but “functional” increments that can be validated early and often. These can include proof of concepts, high-value production features, or even shared conceptual models like mockups or other visualizations. Set up focus groups, testing, and user interviews to create opportunities for improvement and help you refine your ideas. You can be confident your modernization is on the right track when feedback is integrated into the process.
Your organization is unique; your modernization should be, too. Duplicating the legacy system in the modern system doesn’t lead to success. Your business needs and your customers’ needs change over time, and they will continue to evolve as you modernize. Aim to deliver a modernized system aligned to these new needs, not the needs targeted by the old system. This liberates your system from past constraints and empowers innovative ideas. Doing this successfully requires deeply understanding your business, its domain, and its customers.
With a big bang modernization, you only deliver once. In a continuous delivery environment, changes flow regularly to production after passing through a series of automated tests. This improves product quality. Customers will enjoy a responsive development process. Defects can be addressed and deployed in hours or minutes, rather than days or weeks, which builds trust. This helps your organization evolve to experimental learning, testing new features and functions on well-structured subsets of users before rolling them out to everyone. In time, you’ll deliver faster than your users expect.
Create Operational Visibility
Healthy production systems require strong metrics which create operational visibility. Create a layered system that monitors all aspects of the system, logs relevant details, alerts when necessary, and helps to correlate all this information into an accessible format. Identify leading indicators of trouble, measure them, and design systems to respond proactively, either with automated routines or well-defined manual processes. We employ the helpdesk ‘Hollywood’ principle—don’t tell us there’s a problem, we’ll tell you there’s a problem, and ideally, we’ll have already fixed it.
Modernization efforts can be challenging, but we’ve seen success from abiding by these principles. They help organizations embrace change and create the necessary visibility to modernize effectively. If you commit to these principles, you will avoid many common problems that cause modernizations to fail.