Six ways to shake the cobwebs out of legacy technologies and processes
Don't just replace technology; reimagine your business
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."
摆脱传统技术和流程的六种方式--不要仅仅替代技术,重新构想您的业务
不断地要求信息技术经理和专业人员“现代化”他们的系统和流程,但是,往往没有得到其他人所需要的支持。请记住,IT永远无法独自完成所有工作。现代化不仅仅是将应用程序迁移到云中。它也需要文化变革。而且,这是最难的部分。
现在该是“重新构建”对“旧式现代化”的认识,而不再考虑“技术”或“替代”,而是重新构想您的未来业务,”敦促Angela Bishop,Ashok Subramanian和Dilraj Aujla一起加入ThoughtWorks。在最近的一系列帖子(第1部分,第2部分和第3部分)中,他们解释了克服传统思维方式需要采取的措施。
以下是他们的六个建议:
应对复杂性。 “复杂的系统经常变得越来越慢,因此,我们发现组织中慢慢出现了一种'别人-自己人'的态度,业务和IT鸿沟开始成为无法弥合的鸿沟。通常由于业务思维的挫败感,有些事情在实际上并非简单的时候就变得简单了。” Bishop和她的合著者观察到。偶然的复杂性-累积了技术债-造成了不可持续的系统。 “有时可能会在很短的时间内将错误的代码隐藏在良好的UX之后,但是缺点很快就会浮出水面,并且很快就会停止交付客户的需求。”他们敦促企业“专注于构建不断改进的工程文化,并支持和投资以提高对代码质量如何提高构建更新,更令人愉悦的产品的能力的理解。”
从项目间的心态转变为持续不断的改进。
软件不懈地需要修补,升级和构建。但是,如今,技术领导者和专业人员需要远远超出这些日常任务的范围。 Bishop和她的合著者指出:“加上不断变化的竞争格局和不断变化的消费者行为和需求的复杂性,不仅对软件的要求,而且整个组织不断发展的要求也变得举足轻重。” “从工程角度来看,需要重点关注质量和自动化,这是团队能够自信地采用连续交付实践的基础。”需要问的一个问题是:“当您对系统进行更改时,它是您要更改的区域的模块化(灵活的),还是本身成为工作项目,因为也还需要进行许多其他更改?”
利用数据。
企业现代化中最关键的资产是数据。 “如今,无法从战略上整合数据的转换可以被视为失败的转换,或者最好是次优的转换。”这不仅包括客户和市场数据,也包括有关内部流程(包括IT)绩效的数据。
多做事,少做事。
这可能是在Covid危机期间许多企业汲取的教训,因为团队对支持数字活动需要做的事情持锐利态度。这是一种超越Covid的思维方式。 Bishop和她的合著者说:“您可以通过停止或暂停不太重要的工作来为转型提供资金,从而保护企业的利润,并分配所需的预算。” “我们倾向于看到的是,企业从错误的地方裁员或对许多不同的计划进行小规模裁员,但是危险是您可能会分散您的人员和资源,而期望的结果却更少,这意味着您最终会做许多事情很糟糕,并且实际上没有为您的旧式转换提供适当的资金,从而使其可以在多年内持续使用。”
重写之前要三思。
ThoughtWorks的分析师指出:“重写代码以保持相同的功能是组织可能犯的最严重的战略错误。” “您将给竞争对手至少两年或三年的礼物,因为您将无法做出任何战略改变或对市场所需的新功能做出反应。”当然,许多遗留代码确实有一个可行的未来,但是他们建议“避免用同一事物的新版本替换您的软件,而要在其旁边构建一些新东西而又不要丢掉所拥有的东西。”
丢弃不必要的功能。
“我们一直看到的一种反模式是旧版迁移功能奇偶校验,这是与旧版本保持功能同等的愿望。我们认为这是一个巨大的错失机会。随着时间的流逝,旧系统经常膨胀,用户和业务流程未使用许多功能,随着时间的发展,替换这些功能是一种浪费。”
当然,要让一个由人构成的组织同时朝着正确的方向前进并不容易。Bishop和她的合著者警告说:“除传统技术外,终止某些在经济上不再可行的东西可能会影响历史,情感,团队和整个部门。” “但是,为过去而缺少转型的短期资金(或更糟糕的是,错过了组织的未来)几乎总是更具破坏性。”