Architecture Modernization with Nick Tune
07 Oct 2024 (1 month ago)
Challenges of Legacy Software
- Architecture modernization assumes the presence of legacy software and architecture, which is not about greenfield development, but rather about updating existing systems that have been running for years and are often the backbone of a company's profitability (1m23s).
- Legacy software can lead to a mindset of "if it's not broke, don't fix it," but it's essential for companies to invest in modernizing their architecture to avoid being held back by outdated systems (1m39s).
- Companies with a lot of legacy software may struggle to build new features, face increased costs, and pose reliability risks as their business grows and scales (2m20s).
- Legacy systems can prevent companies from growing, expanding into new countries, or supporting different customer segments, making it essential to assess and address potential risks (2m47s).
- Companies should analyze their risks and consider modernizing their architecture if they identify potential issues, such as platforms retiring, vulnerable packages, or frameworks getting out of support (3m10s).
Proactive vs. Reactive Modernization
- Some companies are looking at long-term risks and addressing them by reassessing their tech stack, but not all companies are taking this approach (3m28s).
- Nick Tune, the guest, is currently working with a French company called Payfit, but the context of this information is not specified in the provided text (3m33s).
- A company is recognized for its forward-looking approach, understanding that investing in technology now can lead to significant business benefits in the future. (3m35s)
- Some companies only consider modernization when they face a crisis, while others are proactive in planning to avoid such situations. (4m15s)
- A key question for companies is how long they can maintain their market position without technological improvements, with some realizing the need for immediate action when faced with competition like Amazon. (4m44s)
- An 18-month to 2-year planning horizon is suggested as a balance between being proactive and avoiding reactive decisions, fitting well with typical company planning cycles. (5m21s)
- Companies should start modernization efforts by assessing their legacy systems and determining priorities, with a focus on delivering results within 3 to 6 months rather than extensive long-term planning. (6m14s)
- Modernization projects should aim to deliver value within 3 to 6 months, even if they are not the most critical or valuable initiatives. These projects should be among the top priorities and help validate assumptions and demonstrate progress. (6m59s)
- Modernization efforts are often distributed across multiple teams, with each team deciding the level of effort they will contribute. Leadership may encourage certain teams to engage more in modernization and discovery activities. (7m27s)
- The initial focus of a modernization project might not be on the most critical area but rather on areas where the right people are available to deliver results. This approach helps in selecting the right team to start the modernization process. (7m57s)
- It is important to have a comprehensive understanding of the system architecture and to deliver tangible results within a short timeframe to build momentum and support for further modernization efforts. (8m20s)
- An 18-month mindset can help identify potential problems and prioritize tasks that need immediate attention versus those that can be deferred. Quick wins in 3 to 6 months can help gain buy-in from decision-makers for broader modernization initiatives. (8m34s)
Initiating Modernization Projects
- Different approaches can be taken for the initial 3 to 6 months, such as focusing on a single project or aligning the modernization efforts with the business strategy. This alignment can involve mapping the system at a high level and connecting it to business goals, such as expanding into new markets or improving system stability. (9m17s)
- Having a narrative that ties modernization efforts to the company's strategic goals, such as becoming multicountry or enhancing data accessibility, can provide direction even if the full modernization plan is not yet developed. (9m52s)
- The need to adapt to new technological trends, such as integrating data into large language models (LLMs), highlights the evolving nature of modernization priorities, which may not have been anticipated in previous roadmaps. (10m21s)
Modernization Strategies: Build vs. Modernize
- The decision between building a new system or modernizing an existing one is both a technical and business problem, often influenced by business requirements such as expanding into multinational markets. (10m31s)
- Building a new system allows for the use of the latest technologies and setting a new standard, often referred to as moving from the "old world" to the "new world." This approach can lead to quicker market deployment but may require integration with legacy systems. (11m19s)
- A potential downside of building new systems is missing out on learning opportunities for modernizing existing systems, which can be crucial for understanding how to update legacy infrastructure effectively. (12m18s)
- Modernizing existing systems helps build a knowledge base or "playbook" for future modernization efforts, offering a different set of advantages and challenges compared to building new systems. (12m48s)
- A balanced approach, involving both building new systems and modernizing existing ones, is often seen as beneficial, allowing organizations to leverage the advantages of both strategies. (13m2s)
- The analogy of remodeling a house versus building a new one illustrates the different mindsets and challenges involved in choosing between modernizing existing systems and creating new ones. (13m11s)
The "New World" Approach
- When deciding whether to change an existing system or build something new, the idea of building something new can create a new world with new functionality or existing functionality, and it can be used to show the potential of a new architecture (13m49s).
- The new world concept can be used to blow people away, especially those who are not familiar with the latest technology and are used to traditional deployment methods, by showing them the benefits of automated testing, compliance, and fast deployment (14m9s).
- The goal of building something new is to create a new world that can be used as a standard, and it can be used to show the potential of a new architecture, but it's also important to be able to back it up with existing functionality (14m52s).
Measuring Success in Modernization
- Measuring success in architecture modernization is crucial, and it should be contributing to certain business metrics, such as customer efficiency, customer support, and internal efficiency (15m48s).
- Architecture modernization can change the way businesses work, and it can lead to significant improvements in release times, customer onboarding, and customer support, and it can also change the way developers work and behave (15m46s).
- With a reliable way of quickly getting code into production, developers can behave differently, and there's less bureaucracy, and it can lead to significant improvements in the developer experience (17m10s).
- The metrics used to measure success in architecture modernization can vary, but they should be focused on business outcomes, such as customer efficiency, customer support, and internal efficiency, and they should be used to support the modernization efforts (15m51s).
- The adoption of new modern practices can be a significant culture shift for businesses, and it requires a change in the way people work and think, but it can lead to significant benefits, such as faster release times, improved customer onboarding, and improved customer support (15m39s).
- The process of architecture modernization leads to increased efficiency, allowing for quicker changes and a more responsive approach to business needs, with benefits including faster time to market and improved hiring and retention (17m16s).
- Having a super-efficient pipeline enables developers to quickly make changes, such as fixing bugs, and deploy them to production in a short amount of time, making the process more efficient and reducing the cost of fixing bugs (17m55s).
- Modern tech and approaches make it easier to hire good people, as working with old legacy systems can lead to a loss of motivation among developers (18m19s).
Continuous Improvement and Long-Term Vision
- Architecture modernization also allows developers to spend more time thinking about the products and being involved in the domain, making them more knowledgeable about the business and able to contribute more to improving the product (19m7s).
- Continuous improvement is crucial in terms of modernization, and there is no real end date, as the process of modernization is ongoing and can involve continually finding ways to improve the architecture (19m35s).
- While there may be clear milestones, such as moving from a data center to the cloud, modernization is not necessarily "done" at that point, as there may still be work to be done to improve the architecture itself (19m58s).
- The process of modernization can involve a lift and shift approach, followed by refactoring, as seen in the example of a company that presented at TCUKON London, which had to do a lift and shift before they could start refactoring their code (20m27s).
- Companies may lose customers if they fail to modernize and adapt to changing circumstances, such as the shift to cloud-based solutions during the COVID-19 pandemic (20m41s).
- Architecture modernization is often a two-step process, with the initial goal of moving out of a data center and into the cloud, followed by ongoing improvements (20m58s).
Modernization Challenges and Considerations
- While having a product-led mindset can be beneficial for modernization, it is not a prerequisite, and companies can still modernize without a clear strategy (21m14s).
- Technical teams may face challenges when modernizing without a clear business strategy, as they may optimize systems that are not useful for the company's future growth (21m54s).
- Having a compelling business need and clear objectives can make modernization easier, as it provides a clear direction for what needs to be modernized to achieve business goals (22m23s).
- Doing homework and putting effort into understanding the business strategy can make modernization easier and less prone to guesswork (22m45s).
- Having the necessary skills in-house is crucial for modernization, and companies may need to bring in outside help or invest in training and development to acquire these skills (23m3s).
- Recognizing the need to bring in outside help and investing in learning and development is essential for successful modernization (24m7s).
- Companies should set aside time and money for learning and development to support their modernization efforts (24m11s).
Organizational and Cultural Changes
- Training and upskilling employees is crucial, with a focus on developing a business narrative that drives strategy. It is important to empower existing staff to adopt a modernization mindset rather than relying heavily on consultants. Consultants can be used for short-term solutions to demonstrate possibilities but should not be a long-term dependency. (24m14s)
- Team structures should incorporate concepts like Domain-Driven Design (DDD) and team topologies to enable teams to work independently. This approach allows different domains to be owned by different teams, each with its own backlog, facilitating independent work. (25m1s)
- Modernization involves not only technical changes but also organizational and process changes. This includes gaining business buy-in to reduce bureaucracy and streamline processes. Changing ingrained processes can be challenging, and there may be resistance from individuals whose roles are affected by these changes. (25m54s)
- Organizational change requires a shift in how work is prioritized, estimated, and released. Discovery and delivery processes may need to be updated, and budgeting and finance can present challenges. For example, a platform team may lack autonomy if it depends on other teams for budget allocation, limiting its ability to take a long-term perspective. (26m50s)
- Architecture modernization involves navigating ingrained processes, compliance, bureaucracy, funding, and finance, which affect all aspects of an organization. (27m48s)
Stakeholder Management and Trust
- Building good relationships with stakeholders is crucial for successful architecture modernization. Trust and understanding of stakeholders' challenges can facilitate difficult conversations and problem-solving. (28m0s)
- Establishing trust is particularly important for consultants or new employees proposing significant changes, as it helps stakeholders feel comfortable with the proposed transformations. (29m35s)
Trade-offs and Prioritization
- Modernization requires making trade-offs, such as prioritizing long-term benefits over short-term gains. This might involve delaying bug fixes, new features, or market expansions to achieve greater scalability and efficiency in the future. (30m15s)
- The trade-offs often impact the product side, where the focus shifts from adding new features to addressing technical debt and preparing for larger-scale operations. (30m50s)
- Architecture modernization may require trading off short-term business goals, such as delaying the release of new features or products, or expanding into new countries, in order to make it easier to achieve these goals in the future (31m10s).
- This trade-off can be significant, and may involve putting on hold big business initiatives, not just small features or bug fixes (31m20s).
- However, making these trade-offs can ultimately lead to greater benefits in the long run, such as being able to expand into multiple countries more easily (31m42s).
- Some projects may not be feasible with the current architecture, and attempting to pursue them can lead to unexpected problems and expenses (31m58s).
- In some cases, choosing one path over another may not just affect the timeline, but may actually determine whether or not a goal can be achieved at all (32m26s).