Dealing with legacy systems might sound like a subject connected with technology on the surface. The truth is that it relates to a lot more than just software, hardware, code refactoring, architecture redesign. Businesses of all sizes must adopt a balance-first approach to foster growth and avoid the risk of becoming obsolete.
As digital products inch towards the end of their presumed five-year lifecycle, profits plateau or begin to decline — this is usually the point that companies begin to evaluate the need for an upgrade. This involves stocking up on technological or human resources to implement more product features. It also means ramping up the range of available services to beat out the competition.
But should companies begin dealing with modernization processes and disruptive transformations in the first place?
A digital product can only be efficient if it can drive business growth in a controlled and manageable manner. All too often, however products and their complementary processes can be engineered in such a way that its efficiency can be
As Smart IT CTO, Michael Astashkevich puts it,”The problem of legacy software is in the complexity of its maintenance. For different products complexity will be different. Some products critically rely on being maintainable because of the business model, which requires the rapid roll out of new features, testing hypotheses etc. For other businesses this may be irrelevant. The issue in actually defining efficiency. Experience shows that a balanced solution is one where design engineering and backlog refinement are accounted for, apart from the roll out of new features”.
Defining efficiency and complexity
When it comes to technical tools and processes, companies are responsible for defining how they use them. Whether a software application or a digital product becomes a legacy software product is largely up to how well it is maintained and how well it keeps on performing what it was designed to do.
As Michael points out above, many businesses are happy to have a product expand the feature range, without investing into software architecture scalability and system stability. Over time, feature release leads to increase in the complexity of the product. Pushing it to do what it was not designed for to begin with, will also lead to a build up of technical debt.
In an ever-changing market the definition of efficient software (and, ergo, businesses) should unequivocally line up with the customer expectations. In other words it is the type of software that satisfies the end-users needs. However, to maintain the efficiency of the software, a business should also learn to efficiently pivot before technological complexity increases, not after it has become unruly.
Michael A. also adds, ”From the point of view of scalability, if there is no balance between “thinking” and “doing” (less refinement and more output), there is a higher chance that acceleration and growth will not be achieved by pumping more resources into the product. On the other hand, if you spend too much time thinking and little time doing, then you are robbing your product of a competitive advantage.”
Digital products are never static. They are always in a state of change, just like the requirements towards them. At the end of the day, a company that designs a technology product cannot expect it to be profitable and sustainable without addressing scaling and stability from the onset.
How to navigate change and when to modernize
Opinion from McKinsey experts suggests that empowered product owners, business leaders, and teams on the whole can effect change. It cites not only technology, but mindsets, cultures and business processes that are responsible for implementing change. So, a company that does not embrace change and innovation is the one that will attain legacy status.
As such, a business that wants to make the most of short-term profits, while ignoring the long-term profitability and not embracing change is more at risk than any other.
No kind of disruption usually happens overnight. Change is most usually gradual. Whenever a product makes waves in the market, it is because it was meticulously researched and engineered to fulfill a niche goal. Companies that want to navigate change, need to do so gradually and comprehensively too.
In terms of product engineering trends and best practices, most software and technology strives to be:
- Open to integrations, in the sense that it is open-ended and is interoperable in some shape or form with other systems
- Secure, in that it protects the data it processes and works with
- Scalable, in the sense that it can change and grow with the rise in demand
- Up-to-date with business needs to guarantee good business performance
All in all, legacy software modernization services would not be a service if software did not need re-engineering. Some signs when your software system needs revamping, migrating, updating or reverse engineering are:
– Growing downtimes. Critical bugs and errors pose a threat to business continuity and operations.
– Lack of manageability. Few of your current software engineers are able to uphold the stability of the system.
– Critical bottlenecks. The system cannot be updated with new features and performance improvements are impossible to make.
– Rising costs. The business is not able to cope with or is experiencing losses due to the costs of simply maintaining the operation of its current software.
– Excessive technical debt. The system has grown too complex because the latest use cases were not factored into initial product design.
For companies that are experiencing a decrease in the rate of growth or who have run up against a brick wall with their legacy software system, our CTO Michael recommends a Business-Value or Business-Focus Approach to modernization.
This can mean something as simple as relying on another team to surface roadblocks, find manageable solutions, integrate new processes, and eventually pivot towards positive transformation.
This implies onboarding a dedicated team of developers with their own mindset and workflow processes, who can establish baselines to help blend with and fine tune existing processes. Essentially this allows for an efficient knowledge transfer and exchange between teams and a gradual change in development practices and processes.
Legacy technology examples
The list of legacy technology examples can run rampant as it can include anything from hardware made redundant, to specific software applications or systems (such as operating systems), to even programming languages. We are looking at you COBOL.
Microsoft XP or Vista are on the list as vibrant examples of technologies that went out of use. Some belong to the list because they came to the end of their natural product life-cycle, while others did not perform well with their target consumer base.
Nokia’s case study is perhaps the best known one for a company that did not anticipate change. Sitting right next to its case file of companies that became deprecated is MySpace, which did not see the competition sneak up on it in the form of Facebook.
The list extends across industries and verticals and is easily searchable on the netscape.
Change requires a transition not only from legacy technology, but also from legacy mindframes and cultures. That is key to modernizing not just technology, but your business.
Large enterprises and small-medium businesses fear that legacy software systems impede the coveted objectives aimed at business growth. Businesses of all shapes and sizes practice transformation and innovation with varying degrees of success. What businesses find surprising is that growth is not achieved through upgrades and modernizing legacy systems and applications alone. Growth means achieving balance in an ever changing playing field.
24 March 2020