The first focused on ‘incremental change’. In this example, a system had been built up with a particular set of purposes in mind and a specific architecture that made responding quickly to market conditions difficult. The code was complex, requiring long test windows and faced frequent production issues - “turning on the light in the bathroom also rang the doorbell” - it wasn’t sustainable.
Outlining a clear roadmap of small changes involved breaking up the monolith into smaller, manageable chunks that utilised modern technology and de-coupled complex dependencies. Ultimately this allowed a standard Sprint approach (e.g., a two-week timeboxed development cycle) to provide benefit early and target features with a high priority to the client.
The second case study introduced a different approach. Here the team focused on picking the correct tools and jigsawing the right ones together to target the Client’s specific needs of automation, strong architecture, clearer strategy, and modern CI/CD pipelines.
Here the Agile tool kit was key. The team first aimed to understand the client’s specific pain points and goals. The main pain point for this client was the cost of delivery – it was slow, cumbersome and took a lot of investment, so in demonstrating the value of a targeted, Agile approach that used sprints and rapid iteration, the team quickly won trust.
This example gave us a chance to describe six tools important to utilise in legacy transformation:
- Establishing strong and clear Product Ownership that focused on the ‘what’ with a mindset of potential value
- Strong underpinning architecture that reduced complexity
- Automation to build in assurance and reduce risk upfront
- Synchronisation, that aligned practices, processes and behaviour that support people working together
- A mindset and framework of incremental delivery that allowed small changes often
- CI/CD tools that provide the ability to check quality and self-inspect regularly.