Enable javascript in your browser for better experience. Need to know to enable it? Go here.

Embracing the Strangler Fig pattern for legacy modernization

Part two: Overcoming people and process challenges

Transitioning to a new system is as much about people and processes as it is about technology. In this second part of our three part series, we address the human and procedural aspects of employing the Strangler Fig pattern. From selecting the right-sized slices for migration to managing scope changes and ensuring smooth communication, we explore strategies to navigate the organizational dynamics and process challenges that accompany system modernization. While part one laid the foundation, in the upcoming part three we will delve into the technical challenges and the strategies to overcome them for a successful modernization journey.

Finding the Goldilocks zone

Choose thin slices that are "just right"

 

In the Strangler Fig approach to system migration, finding the "Goldilocks' zone" of complexity and value in the components selected for replacement is crucial. Components that are too simple might offer limited learning and business impact, while overly complex components could risk prolonging the process, increasing errors and discouraging the team and stakeholders. Similarly, components of low value may not justify the replacement effort, whereas high-value components, although beneficial, could cause disruption if replacement goes awry. 

Thin slice scorecard

In addition to complexity and business value, other factors, such as functional dependencies, technical debt, stakeholder priorities, regulatory compliance, skills availability, risk and alignment with long-term strategy may need consideration. Employing a scorecard where ranking features against these criteria can go a long way towards promoting transparency and objectivity to the exercise. The image on the right demonstrates a simple matrix depicting a sample set of criteria.

Identifying components that strike a balance among the varied set of competing priorities, especially at the outset, ensures a more effective and beneficial migration. Achieving this balance necessitates a thorough understanding of the system, the business context, careful planning and prioritization. Applying domain-driven design principles and breaking down functionality into coherent bounded contexts become all the more important when making these choices.

 

Embrace and manage scope changes

 

Implementing the Strangler Fig approach while meeting ongoing business needs can be a balancing act akin to "changing the wheels while the train is moving." It’s crucial to acknowledge that changing requirements and scope are inevitable and need to be managed effectively. Here are some key techniques:

 

  1. Prioritizing critical functionality: Concentrate on the most valuable system components first to deliver significant value early on.

  2. Short iterations: Use brief development cycles to regularly deliver new functionality, offering the flexibility to accommodate changing business priorities.

  3. Feature flags: Develop and release new features without system disruption, providing the agility to respond to changing requirements.

  4. Close collaboration: Regular communication with business stakeholders ensures a mutual understanding of changing needs, expectations and priority shifts.

  5. Dual track development: Having separate teams focused on new system development and existing system enhancement allows for a balanced response to emergent business needs.

  6. Restrict enhancements in the legacy system: Managing enhancements in the legacy system is crucial during modernization, as excessive changes can add complexity and extend the migration timeline. A smoother and more efficient transition to the new system can be ensured by controlling and prioritizing these enhancements. 

  7. Automated testing and deployment: Automating these processes reduces error risk, optimizes development time and supports a dynamic development environment.

  8. Robust backlog management: Maintaining an up-to-date backlog enables effective planning, prioritization and accommodation of evolving requirements.

In the face of inevitable changes, these techniques provide a structured approach to balance system modernization with the delivery of new features and enhancements, ensuring a seamless transition during the modernization process.

 

Decide on the importance of feature parity

 

Starting the modernization process with the intention of replicating every feature from the legacy system can be a misguided endeavor. This approach often stems from a fear of losing functionality or disrupting user experience, but it overlooks the opportunity for improvement and innovation. Legacy systems often carry outdated features, technical debt, and a complexity that may no longer serve the current needs of the business or its users.

 

By attempting to replicate every feature, organizations may inadvertently carry over inefficiencies, bugs, and outdated technologies into the new system. This not only consumes valuable resources but also hampers the potential to introduce better solutions and modern technologies.

 

Moreover, the business environment and user expectations evolve over time. Some features from the legacy system may no longer be relevant or may have better alternatives available now. Hence, a blind replication could lead to a missed opportunity to realign the system with current business objectives, user needs and technological advancements.

 

Instead of striving for exact replication, a more prudent approach would be to critically evaluate each feature for its current relevance, effectiveness and alignment with the modernization goals. This way, the modernization effort can be more strategic, resource-efficient, and geared towards not just matching, but enhancing the value delivered by the system.

 

Note: My colleagues Ian Cartright, Rob Horn and James Lewis cover other aspects when deciding on feature parity in their legacy displacement series.

 

Pick optimal production release granularity

 

Deploying thin slices to production is beneficial as it allows for early user feedback, reduces risk due to the smaller scope of each deployment, delivers value to the business promptly and offers opportunities to learn and improve both the system and deployment processes. The granularity of thin slices plays a crucial role in both test and production environments. In a test environment, you may work with very granular, individual slices, allowing for focused development, testing and rapid feedback on small portions of the system, reducing risk and providing learning opportunities. When deploying to production, the strategy may shift. To ensure a coherent user experience and minimize disruptions, it can be beneficial to group related thin slices together before deployment. These groupings typically represent a complete piece of business functionality or a logically related set of features, delivering prompt value to the business.

 

This approach enables early user feedback and opportunities to learn and improve both the system and deployment processes. However, it also necessitates robust processes for deployment, testing and managing co-existence and data synchronization between the old and new systems. Thus, careful planning and coordination are vital in deciding the granularity of slices, grouping them for release and successfully deploying them in a production environment.

 

Be proactive with communication and change management

 

Effective communication and change management are vital for the success of the Strangler Fig approach. Stakeholder buy-in, secured through clear communication, is necessary to drive the significant shift in development and operational processes. It's essential to keep everyone aligned and informed during this period of incremental change, managing expectations about the way benefits will be realized gradually. Additionally, as the approach often leads to changes in workflows and roles, efficient change management techniques are needed to ensure smooth transitions. Finally, fostering an open dialogue about successes and challenges allows for continuous learning and improvement, enhancing the process as it progresses. Thus, while technically focused, the Strangler Fig approach greatly depends on human factors for its success.

 

Find out what's happening at the frontiers of tech