Information technology managers and professionals are constantly being called upon to "modernize" their systems and processes, yet, often don't receive the support they need from everyone else. Remember, IT can never do it all alone. Modernization is more than simply moving applications to the cloud; it requires cultural change as well. And, alas, that's the hardest part.
It's time to "reframe your perception of 'legacy modernization' and stop considering it in terms of 'technology' or 'replacement' rather, reimagine your future business," urge Angela Bishop, Ashok Subramanian, and Dilraj Aujla, all with ThoughtWorks. In a recent series of posts (parts 1, 2, and 3), they explain what it takes to overcome legacy mindsets. Here are six of their suggestions:
Fight complexity. "Complex systems often become slower and slower to change. Because of this, we see that there slowly emerges a 'them-and-us' attitude in the organization, where business and IT divide starts becoming a chasm that feels impossible to bridge. Usually due to the frustration of the business thinking something is simple when actually it's not," Bishop and her co-authors observe. Accidental complexity -- which builds up technical debt -- creates unsustainable systems. "It is sometimes possible to hide bad code behind good UX for a short duration, but the shortcomings soon surface and soon you stop delivering what customers' need." They urge enterprises to "focus on building a continually improving engineering culture, and support and invest to improve understanding of how the quality of code improves the ability to build newer, more delightful products."
Move from a project-to-project mentality to a continuous flow of improvements. Software relentlessly requires patching, upgrading, and building. But technology leaders and professionals these days need to look far beyond these day-to-day tasks. "Add in the complexities of a changing competitive landscape and evolving consumer behavior and needs, then the requirement not only for software but the entire organization to continually evolve becomes table stakes," Bishop and her co-authors state. "From an engineering perspective, there needs to be a focus on quality and automation, which are the building blocks for teams to be able to adopt the practice of continuous delivery with confidence." A question that needs to be asked is: "when you make changes to your system, is it modular for the area you want to change (flexible) or does that become a project of work in itself as so many other changes need to be made also?"
Leverage data. The most critical asset in enterprise modernization is data. "A transformation today that fails to incorporate data strategically could be viewed as a failed transformation or at the very best a sub-optimal transformation." This not includes customer and market data, but also data about the performance of internal processes, including IT.
To do more, do less. This is probably a lesson learned by many enterprises during the Covid crisis, as teams held a laser-sharp focus on what was needed to be done to support digital activities. This is a way of thinking that extends well beyond Covid. "You can protect your margin as a business -- and allocate the budgets required -- by stopping or pausing less important work to fund the transformation," Bishop and her co-authors state. "What we tend to see is businesses cutting from the wrong places or making small cuts to lots of different initiatives but the danger is you can spread your people and resources too thinly and expect the same outcomes for less. This just means you end up doing lots of things badly and not actually funding your legacy transformation properly, making it sustainable over multiple years."
Think before rewriting. "Rewriting code to keep the same functionality is the worst strategic mistake that an organization can make," the ThoughtWorks analysts state. "You are giving a gift of at least two or three years to your competitors, as you will be unable to make any strategic changes or react to new features that the market demands." Of course, a lot of legacy code does have a viable future, but they advise "avoid replacing your software with a new version of the same thing but build something new next to it without throwing away what you have."
Throw away unneeded features. "One antipattern we keep seeing is legacy migration feature parity, the desire to retain feature parity with the old. We see this as a huge missed opportunity. Often the old systems have bloated over time, with many features unused by users and business processes that have evolved over time. Replacing these features is a waste."
Granted, it's not easy to get an organization of people to move in the right direction all at once. "Beyond legacy technology, there may be history, sentiment, teams and whole divisions impacted by discontinuing something which is no longer economically viable," Bishop and her co-authors warn. "However, short-funding a transformation - or worse - missing out on the future of the organization for the sake of the past is nearly always even more damaging."