This Computer Weekly Developer Network series is devoted to examining the leading trends that go towards defining the shape of modern software application development.
As we have initially discussed here, with so many new platform-level changes now playing out across the technology landscape, how should we think about the cloud-native, open-compliant, mobile-first, Agile-enriched, AI-fuelled, bot-filled world of coding and how do these forces now come together to create the new world of modern programming?
This contribution comes from Jeff Cherrington, VP of product management at ASG Technologies — the company is known for its work providing technology for what it calls the information powered enterprise.
Cherrington writes as follows…
Legacy craft & tribal customs
Software development is at times art — even high art — and just like fine art, its foundation is craft.
Developers must consider that they will sometimes have to work with the craft of those who preceded them, particularly for those enterprises that have been in business for a number of years. On the other hand, a brand-new startup is, most likely, starting with a blank canvas, giving them the opportunity to code as artistically as they would like. While starting with a blank sheet is an ideal situation for software engineers, most must start from a sheet containing legacy craft and tribal customs that cannot be abandoned without putting the enterprise at risk.
Not all legacy systems should be seen as splotches on a canvas.
The mainframe remains the most reliable, available and serviceable platform and is the best for achieving some types of processing, such as electronic payments, to ensure enterprises are servicing their customer’s needs. There are some software developers who have hailed the end of the mainframe over the years and who want to rewrite the history of systems development for the benefit of shifting from the mainframe to the cloud.
The mainframe is dead… no, wait
This shift [to end the mainframe era] has not happened yet… and the main reason for that is that there are programs that have been developed, refined and enhanced over decades that have many business rules attached to them. These rules represent the enterprise’s policies and unique value propositions that would be almost impossible to redeploy on another platform. Redeploying would present too much risk and cost for organisations, yielding very little incremental value and too many opportunities for the new technology silo to be found wanting.
Even though the mainframe is most suited for some of an enterprise’s processing needs, the mainframe isn’t the answer to everything… and neither is the cloud – so then, looking forward, organisations should make sure to deploy the best technology for their microservices. Microservices can provide the opportunity for organisations to move some of their processes off the mainframe but also retain parts on it to continue to reap the benefits of the platform.
Consequently, modern development success is based on encapsulation and the value it can bring to those enterprises that have legacy applications. Encapsulation is a great tool for developers who want to insulate and isolate between components. This process ensures that the engineer has isolated anything that will be integrated with an application through a layer, providing an air gap between the application delivering the capabilities or the data that is being consumed, and what generates it.
The road to encapsulation
A traditional application on the mainframe, or even a legacy two-tier client-server application, can be encapsulated with the appropriate technology. These traditional applications can then be deconstructed using complexity analysis tools and, as the complexity is deconstructed, parts can be recast into microservices.
These microservices can then be deployed from the best-fit technology stack suited for the enterprise’s needs, whether that be public, private, or hybrid cloud, traditional open systems, or even an on-prem or outsourced mainframe.
Encapsulation is a critical first step as enterprises work to modernise their IT systems. As software developers lean more towards low-code, no-code or robotic process automation (RPA) solutions, enterprises need to recognise that even though they are putting these solutions into the line of business, that in no way isolates them from their obligations imposed by best practices and statute. They need to ensure they have the same protocols in place for logging audits and are adopting the appropriate security controls and oversights to avoid abuse.
It is clear that RPA will be increasingly used in software development, especially to bridge the gap between the archaic presentations of the mainframe platform, but there is no indication that all programming will be run by machines any time soon.
Ultimately, enterprises need to support legacy systems while reaching toward the future.
It’s as much a balancing act as it is art.
(Approved image source: ASG Technologies)