24 Jan, 2022
A large financial services institution with an assertive strategic focus on acquisition (ABC Corp) engaged Midnyte City to assist with integrating one of their recent additions (XYZ Co). XYZ is a specialist provider of services to the wealth management industry including superannuation and investment management.
Midnyte City’s role was to assist with migrating XYZ’s products and customers to ABC’s well-architected, robust, secure and scalable platform built on Amazon Web Services (AWS). The skills required to uplift the legacy services into modern development patterns required specialised knowledge of architecting applications in AWS, Terraform, Docker, CICD and observability tooling.
From a technology perspective, ABC is a relatively mature organisation. Over the past five years they have invested heavily in agile ways of working, making significant progress in organisation-wide adoption of modern software delivery approaches like test-driven development, continuous delivery and building poly-skilled, cross-functional teams with end-to-end responsibility across the stack.
XYZ had a starkly different delivery approach and culture. Most of the architecture and development decisions had been made by the former CTO, who preferred a top-down, hierarchical management style and resulting culture. This put the engineering team on a “need to know” basis regarding decision making and created an order-taking mindset right across the team. A consequence of this style of leadership was limited problem solving capability and a reluctance to collaborate, take initiative or troubleshoot issues when they arose.
This created significant integration challenges for the ABC team responsible for the integration including:
A lack of documentation made understanding the design and architecture of XYZ’s platform unnecessarily complex and difficult
XYZ’s CTO was a critical single point of failure, and a good deal of organisational intellectual property resided, and left, with him
A lack of capability in the XYZ engineering team increased the urgency of capability uplift so that the team could go on to become ABC team members after the integration
The mindset shift from order-taking to empowered poly-skilled, cross-functional teams was a difficult challenge for XYZ’s developers
Adopting modern software development practises like pair programming, test driven development, continuous delivery and writing documentation was a steep learning curve for XYZ’s developers
The Midnyte City team supported the XYZ development and operations teams in migrating to ABC’s platform built on AWS. In order to deploy services on this platform, uplift was required in how XYZ’s teams built and deployed software. Some of the initiatives the Midnyte crew led and supported included:
Leveraging ABC’s existing patterns to introduce Infrastructure as Code to the team, and ensuring all infrastructure deployments/updates to ABC’s platform were managed as code (all XYZ’s infrastructure prior to this has been deployed manually via the AWS console)
Migrating to new CICD deployment tools, including improvements in how software is built and tested, and integrating into ABC’s automated security and compliance toolset to provide a better view of the applications security posture
Introducing the use of containerisation to test and deploy applications, and moving away from long-lived deployments
Improving, and in some cases creating, documentation for the applications that have been migrated, ranging from troubleshooting tips to high level architecture diagrams
Introducing new observability tooling and patterns to provide teams with better visibility of the health of their applications as deployed in the new world
Work breakdown and planning for the service migrations, as XYZ teams were upskilling in many new technologies and ways of working
Upskilling and coaching teams in modern software development and agile practises
The engagement was initially focused on the migration of as many applications as possible within the time constraints. Due to the differences in platforms and approaches to work between XYZ and ABC, our goals became focussed on helping the teams become self-sufficient in deploying and running software on ABC’s platform. In addition to this, the Midnyte City team supported the teams in moving from a waterfall approach to development to agile ways of working.
The benefits the XYZ’s teams gained can be summarised as:
Accelerating Application Migrations: Successfully migrated four of XYZ’s applications (serving production traffic) to ABC’s AWS platform, resulting in fully automated deployments and reduction of risk with security and compliance tools
Technology Upskilling: Facilitated the teams in learning new skills across all the technologies in use in ABC’s technology stack (including Infrastructure as Code, build pipelines, Docker, shell scripting, AWS and observability tools). By the end of a six-month engagement, teams were confidently deploying and running applications in production with little to no support
Agile Ways of Working: Coached teams in adopting ABC’s agile ways of working, as well as their approach to new problems and tracking and measuring progress as a team. This largely included instilling a collaborative, open approach to solving problems, and collective learning through knowledge sharing sessions, showcases, and pairing
Improving the technical capability of the team, while simultaneously making big changes to the ways of working was a huge challenge for XYZ’s development teams. It took diligence and regular prioritisation and communication with team members, and across teams, to ensure we were investing time and energy into the most valuable outcomes for ABC.
The two main goals were to help XYZ’s development teams “learn to fish” with agile ways of working, and to migrate workloads to the ABC platform. We succeeded in migrating four applications, and starting the XYZ teams on their technical upskilling and agile ways of working journey. ABC will see compound returns on this investment with the XYZ team's increasing ability to accelerate the application migration work.