This article will discuss the pros and cons of using a Low Code platform for legacy modernization. You may wish to refer to the previous articles in this series covering what constitutes a legacy system, and why you should consider modernizing them. Having identified your legacy system, (possibly written in Java or COBOL, and perhaps hosted on outdated hardware) you may have investigated the various approaches to modernization. You may also have conducted some envisioning sessions to define your desired future state.
Low Code tools and methods can give your team more bandwidth and your Legacy Modernization project the potential for better ROI. Low Code tools enable you to engage your business knowledge keepers directly in the development process which means you can get more workers tackling the challenging modernization project without hiring new employees. Additionally, after the modernization effort is complete, these new skills will let your company continue to innovate with the skills and tools they've already mastered.
At this point, the rubber is ready to hit the road, and the implementation strategy needs to be decided. Low Code has many potential advantages in this situation and a couple of potential pitfalls, so let's dig in.
What Is Low Code?
Low Code tools are software development platforms that allow programmers and non-programmers to contribute to software development projects. For non-programmers, the tools offer simplified user interfaces that let them work on the project without having to engage in direct programming language manipulation. For seasoned programmers, the tools offer a speedier way to handle a lot of the book-keeping and drudge work of software development, but still get under the hood when they need to.
Low Code platforms are an alternative to full-code approaches that entirely rely on seasoned developers and No Code platforms which don't require code but which usually lock you into a proprietary framework for the life of that software. They typically bring re-usable libraries of pre-packaged commonly needed capabilities, and efficiently generate code from easy to use modeling tools.
There are many Low Code platforms out there, but we strongly recommend you find one that produces open, portable code on the output side. By "open" we mean unencumbered by expensive license fees and by "portable" we mean that the code is in a language that is able to run on many, many different platforms.
Low Code Benefits for Legacy Modernization
There are multiple approaches to this kind of project but if you have chosen to rebuild or replace a legacy application, you will need to write new code. Low Code reduces the amount of code to be written by hand and so increases the speed of development. Additionally, Low Code usage engages more of your people in creating your solutions.
Prototyping
A vital part of the Envisioning phase of your project is prototyping. It is highly unusual for people to know (and to be able to describe) exactly what they want right off the bat. Prototyping provides a vital feedback loop while investment is still relatively low, short-circuiting the gap between what will actually work for the team and what they thought would work. Low Code is a great way to build high fidelity, functional (or semi-functional) prototypes quickly so that assumptions can be validated and the whole team's vision for the project can be unified.
Speed
Low Code development generally results in faster results. Time to first release and therefore first feedback is reduced, which decreases the risk. Common integrations such as SSO are usually available out of the box, accelerating the pace of development.
Cost
The core value proposition of Low Code solutions is that wherever possible, existing code or generated code is used instead of “hand-crafted” code. This reduces development time and cost, as well as having knock-on benefits like reducing testing effort and security risk. If we consider for example the development of a single REST API, industry estimates put the cost of fully developing, documenting, testing and securing an API at around 34 days or $17,000. An API-centric low code platform like Apex Designer will generate an equivalent API in a fraction of the time. If the resulting functionality is equivalent, it is hard to make the case for the “artisanal” hand-crafted API.
Get more innovation
As hinted at above, once you've trained your non-programmer knowledge workers in the Low Code tools, they will be able to help on future innovation projects with minimal training. This can be a powerful way to clean up your backlog of software projects that you want completed, but couldn't quite justify to the budget authorities. By lowering the cost and effort to get software solutions created, you will be able to build an arsenal of low cost, low effort, Low Code customized tools for automation and process improvement.
Modernize your legacy programmers
Another opportunity in Low Code is to retrain your legacy system programmers in a new language without having to start from scratch. For example, if you have COBOL systems and programmers who support those systems, having them work on Low Code modernization projects will expose them to newer languages with new capabilities. Their knowledge of the old systems will improve their ability to help build new ones, and their old programming understanding of loops, logic statements, and functions will translate nicely into the new software platform. You absolutely can teach an old dog new tricks.
Instead of having to learn multiple languages and stills (for example Angular, Node, Javascript, SQL, git, Kubernetes), they can apply their existing conceptual and business knowledge to quickly learn modeling techniques in the Low Code platform. Developers are scarce, and ones that know your business are even more scarce. Don't overlook your biggest knowledge asset.
Supports API First
Many Low Code platforms support an API-based approach. Many legacy transformation projects will take approaches where it can be highly beneficial to build an API facade in front of existing legacy applications or databases. Look for a Low Code platform where this API can be “discovered” from existing data structures. This API forms a secure and governed interface to legacy data while maintaining the integrity of legacy systems. The API allows front-end developers to build new applications with superior functionality and user experience, while back-end engineers simultaneously work on replacing legacy infrastructure.
Continuous Improvement and Flexibility
Some Low Code platforms support the continuous integration / continuous deployment (CI/CD) model. By leveraging these capabilities, and the knowledge of the experienced developers, Low Code also sets you up for continuous improvement. As process improvements are identified, effort that was previously spent on maintaining legacy systems can be used to implement changes in the new applications. Ultimately this gives you the flexibility to improve customer satisfaction and even enter new markets to improve the top line, which in turn means you are not building the next legacy system.
Supports a Hybrid Model
What if 70% of your legacy system is replaced by the new SAAS CRM system that your CEO has just mandated across all business units? What do you do with the other 30%? Low Code is ideal for building small applications that might not have been worthy of traditional development projects in order to bridge this kind of gap.
Supports Cloud
Most Low Code platforms offer the option of cloud or on-premises implementation, and some can produce a containerized application, which can run almost anywhere. This gives you the flexibility to build your application and move it to the cloud at your pace.
What Features Should I Look For in a Low Code Platform?
As we pointed out above, there are many Low Code tools out there in the marketplace but we recommend you find one with these features:
• Open source run-time license. Make sure your new software projects are free and clear from entanglement with expensive, ongoing license fees.
• Portable code base. Your Low Code solution should not lock you into some proprietary ecosystem where your software can only run on one particular platform. Portable code should run on a wide variety of systems of your choosing.
• API Centric. Your Low Code platform should give you easy tools for connecting to a variety of data sources so that you can connect to Legacy Systems and to other systems and platforms within your corporate ecosystem.
• Based on popular, modern language. Don't move from a Legacy System to a language that is on the way out. It may take decades for a language to fall completely from favor, but you want a platform that is active, powerful and gives you access to a robust developer pool if you need to recruit new people to your team.
• Built-in Testing Tools. Your Low Code tools should include at least some basic ability to test your code and interfaces. Many of the most basic problems with your code can be identified before you try and run it.
• Priced per-developer, not per-user. You are trying to build something to help you make money, not burn through it. Your Low Code tools should not charge your users for access to the software you build with it.
• Web-enabled output. Browser-based applications are so ubiquitous that it almost seems silly to have to mention this, but your Low Code platform needs the ability to produce software that will run on any platform in an attractive, mobile-ready format. Responsive-design, good styling, and the ability to customize your look & feel should be de rigueur. However, not every application has human users so you should also be able to produce...
• Headless output. Sometimes you need a worker-bee that has no human interface but does important work behind the scenes. Your Low Code platform needs to be able to produce this kind of portable industrial service as well as the pretty human-facing tools.
Case Study: Loan Documentation
A client approached us for assistance with a hybrid legacy modernization project. The legacy system, (COBOL/DB2 on a mainframe with green screen UI) was a custom loan origination system that was to be replaced with a commercial product. However, the system contained functionality for tracking and reminders related to trailing loan documents that were not covered in the new COTS application. Extending the COTS app was investigated but rejected on cost and risk grounds.
The goal was to build a new application to take over the document tracking part of the process and allow the mainframe application to be sundowned. The primary input to this process is new loan data, which would come initially from the legacy system, and switch across to the new COTS app as the company moved across to the new system.
Apex worked with the business and IT teams to envision the new solution. Using the Apex Designer Low Code platform, we developed functional prototypes to validate understanding and make sure envisioning was on track. With user stories established, the first iteration of the application was developed and ran through several rounds of testing with data feeds from the old and the new loan origination systems.
Further iterations added functionality to the application to bring it up to and beyond the capabilities of the legacy application, and the full set of data was migrated from the legacy system. The Angular UI is easier to learn and more user friendly than the legacy application, and the SQL Server database is in line with the company’s technology strategy. The application was deployed in conjunction with the new COTs app allowing the legacy system to be shut down.
Conclusion
You're going to be faced with a lot of choices if you decide to include Low Code in your Legacy Modernization project. Keep all of these features and requirements in mind when making your selection. The right choice can mean saving years of man-hours on your LM project and can also give you a smoother pathway to future innovation. The wrong choice can encumber you and cost you. Choose wisely. We've been using Low Code tools for years and can speak with confidence to their efficacy when you've picked the right platform.