A Legacy Transformation project as the perfect catalyst for leveraging DevOps
By Jayson B. Goldman
As an IT Leader you may be responsible for a house divided when it comes to categorizing your portfolio between legacy and modern systems processes. This may mean that you must maintain completely separate Backup, Disaster Recovery, Change Control, Source Control, Security and Network protocols.
It may also mean that the latest, innovative processes such as Agile Development and DevOps are only implemented in the modern part of your shop while the other legacy part continues to stay with traditional methods for updating and maintaining legacy applications.
In fact, if your most mission critical, enterprise applications are still maintained in procedural COBOL then the opportunity to implement Agile and especially DevOps procedures may still seem unobtainable against the backdrop of a primarily legacy infrastructure.
The good news is that whether you have already implemented Agile or DevOps within a limited scope of your operations or if you have only been waiting for the right opportunity to implement it to begin with, any initiative you would undertake to transform your legacy applications becomes an ideal opportunity to finally get going with or extend your DevOps approach.
According to Wiki: https://en.wikipedia.org/wiki/DevOps
DevOps (a clipped compound of “development” and “operations”) is a culture, movement or practice that emphasizes the collaboration and communication of both software developers and other information-technology (IT) professionals while automating the process of software delivery and infrastructure changes. It aims at establishing a culture and environment where building, testing, and releasing software, can happen rapidly, frequently, and more reliably.
According to Gartner IT Glossary – http://www.gartner.com/it-glossary/devops/
DevOps represents a change in IT culture, focusing on rapid IT service delivery through the adoption of agile, lean practices in the context of a system-oriented approach. DevOps emphasizes people (and culture), and seeks to improve collaboration between operations and development teams. DevOps implementations utilize technology — especially automation tools that can leverage an increasingly programmable and dynamic infrastructure from a life cycle perspective.
Why do Legacy Transformation projects lend themselves to DevOps? To get the answer, consider the most basic steps for conducting any Legacy Transformation:
- Analysis – Analyzing your legacy environment goes far beyond looking at source code. It requires getting a full and complete picture of the “As-IS” environment including the source code, databases, OS, files, interfaces, security, jobs and scripts, documentation, network, infrastructure and more. That means from the very beginning of a legacy transformation, you need to pull together all of your experts from all aspects of your IT and Line of Business and hence sets the stage for a DevOps oriented project.
- Planning – Here is where you are going to decide which of your in-house or contracted resources will be needed and at what points throughout the projects they must be available in order to make the transformation project a success. If you are able to leverage a formal PMO or QA/Test organization, it will be easier to establish a sophisticated plan equal to the complexity of the project. However, at minimum it will be important to ensure that the DevOps model is apparent in the RACI and resource scheduling. From the first meetings to translate the analysis results into the requirements specifications/functional design (as needed) through the remainder of the project including training, the DevOps model must be clear and emphasized in the way resources are allocated. In fact, it is highly recommended that the DevOps approach even be leveraged in the creation of the plan as Operations will surely have some vested interest in the various (sandbox, test, staging, training, pre-prod and prod etc..) environments that will need to be procured and set up to house the transformed workloads.
- Transformation – This is the heart of the Legacy Transformation process where the old world will be mapped to the new. Whether through rewrite, lift-and-shift, code transformation, business rules extraction or other common processes for replacing legacy, it is necessary to decide, plan, and execute how every aspect of the legacy environment will be replaced in the target environment. For instance, when looking at how legacy batch programs were created, deployed, scheduled, run, and troubleshot, it must be that those same functions are replicated. Yet the rules, processes, even the areas of responsibility may be different and require some adaptations for them to be successfully replicated. This can only be accomplished with the complete communication and cooperation that is the optimal characteristic of the DevOps culture. It is also worth mentioning that the more your legacy transformation initiative strives to adhere to a fidelity or a “like-for-like” model of replicating the legacy in the new environment, the more effective a DevOps approach will be.
- Testing, Testing, and Testing – As anyone in the Legacy Modernization business will tell you, while the transformation is the heart of the project, testing takes up the most time and effort and therefore is arguably the most important phase of the project. Again, as with the transformation, testing does not focus solely on the code/functions being replicated in a vacuum but rather it determines whether the workloads run in the context of the organization. Source and change control procedures (if applicable) security, system and network administration, database administration, help desk support and documentation all must be tested out to ensure that the workloads are fully functional in the new world and that nothing has been overlooked. Testing of these aspects must happen together and not in series. Here again is the perfect situation for ensuring deep and consistent cooperation between the Developers and Operators throughout the testing process. In fact, it is not just cooperation between Developers and Operators that is an essential part of Legacy Transformation but it is also the need for Legacy Developers and Operators to share their tribal knowledge of the As-Is world while also getting support from the IT organization as a whole to make the transition into the target open systems/distributed world. Such a transition can be extremely difficult for the IT organization. A DevOps culture can serve to significantly reduce the pain points of the change.
- Operational Readiness and Deployment – The moment of truth. – Deploying the transformed system into production and retiring the legacy environment (whether in a phased approach or big bang). Imagine just for a moment that you had not leveraged a DevOps approach and instead elected to run the project in series, first ensuring all the applications code and data was properly transformed and tested and then at the end involving the Operations/Systems Administrators to ensure that the transformed workloads would work in context of the target infrastructure. It becomes obvious that such an approach could have serious backlash organizationally as Operational aspects may have been overlooked and make what seemed like a functionally replicated workload no longer viable if it fails to perform or meet the new security standards etc… this could even send the migrated applications back to the transformation and testing stage to be reworked and can cause significant delays or even project failure.
- Post Go Live – Long term support and maintenance. – The goal of most legacy transformation projects is to yield a new system that ideally preserves the best parts of the legacy and unlocks that value by deploying it into a new environment where it can take advantage of the latest technological innovations. In other words it is meant to last. Therefore if the resulting system, while functional, is not maintainable by the developers or is difficult to administrate then the project cannot truly be called a success. In the end most IT leaders consider it a hard requirement that any new/modernized system must be aligned to the organizations current development and operational standards and do not want to replace one isolated/segregated/non-compliant system with another.
In conclusion, DevOps, like legacy, can mean different things depending on the factors specific to your organization. However, there are some universal conclusions that can be drawn regarding how these topics are compatible. There can be no doubt that getting your Development Team collaborating closely with your Operations/System Administration team is one key success factor for achieving your legacy transformation (migration and modernization initiatives). While there is always the possibility that your organization has already leveraged the legacy equivalent of a DevOps culture and therefore would have no trouble continuing that process within the context of a legacy migration and/or modernization project, the truth is that most organizations find that their legacy systems are a roadblock not just technically but also operationally and would be well served to take an immersive/comprehensive DevOps approach as they transform their legacy workloads into future proof solutions.
Successful Asysco Legacy Transformation/DevOps projects
At a Government organization Asysco worked closely together with Fujitsu on a large legacy transformation project. Fujitsu kicked off the project by bringing all the different teams, development, testing, operations, etc. together in a workshop. This workshop was aimed to ensure recognition of each other’s requirements and challenges so that these could be taken into account from day one, in order to build a close and effective cooperation.
Insurance Company, the Netherlands
At a Dutch insurance company agile was common practice and they were already experimenting with DevOps when they started the legacy transformation project with Asysco. With a tight project duration of exactly one year for migration of the mainframe environment and implementation of the new Windows based environment this project is very challenging. Therefore they have chosen a phased and ‘agile’ approach in which the exit criteria are more critical in each phase (‘learning by doing’). DevOps helps to improve multi team cooperation and collaboration, even on an international level. The results are very promising.
Retail company, USA
Fred’s Inc., a southeastern United States discount retailer recently worked with Asysco on a large legacy transformation project. Fred’s brought their internal development and operations teams together to collaborate as a part of Fred’s 2.0 strategy to optimize their team along with their technology. Leveraging DevOps was a key factor to the successful migration onto the Windows platform and a launch into continued development that aligns with their business processes including Finance, Sales, Inventory, Purchasing, and more. As a result, Fred’s was able to increase efficiency, maintainability, and the predictability of their operational processes.