A systematic approach to replacing old technologies and applications with new can save you time and money, improve continuity of operations, and allow you to keep up with your competitors.
I often work with clients that have dated technologies and infrastructures, stuff that was modern and based on (mostly) good decisions, say 10-15 years ago. Even if there has been continuous investment in revising and updating the tech (which often is not the case), it eventually reaches a point that it just needs to be replaced in order to meet the needs of the business going forward.
The reality is that we now operate technology in an ubiquitously connected environment, from employees and contractors to customers, partners, and even frenemies. Supporting this capability in a reliable and secure manner requires a modern technology infrastructure and set of capabilities that are just too complex or expensive to deliver using older technology and architectural models.
Yet, nobody has the luxury to build out an all-new technology layer and then port the litany of applications, data, reports, and APIs all as a collective. The hit to the business would be way too great, and the delays in getting to the features needed now much to long to be even close to feasible.
The good news is that there is a rationalized approach to modernizing technology capabilities that allows the features needed to be delivered while incrementally evolving the legacy technology. The key concepts that allow this involve isolation of the dependent technologies and decoupling of architectural concerns. This is accomplished by spending some time up front to build a façade with an internal API that delivers the needed capabilities while isolating the features from the messy stuff underneath.
Usually, the first features delivered rely in majority on the existing legacy tech, with glue liberally applied to composite in the new capabilities required. This approach does a few important things:
- Leverages existing technology and investments while isolating the new stuff from becoming coupled to to the old
- Significantly reduces the time to availably for new features and capabilities
- Bootstraps the architectural pattern of a façade and composite services on which the technology will evolve into
Evolving in place, however, is not a project for the uninitiated or faint of heart. These projects are complex, tedious, and require a host of specialized skill-sets to deliver successfully. In addition to project planning and project management that is based on experience with such projects, one needs system, application, and data architects as well as an experienced API designer. This is also the right time to introduce continuous delivery into the development operation so that everything built is repeatable and reliably deployable.