Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Memoirs of an Architecture Modernization Facili...

Memoirs of an Architecture Modernization Facilitator

Do you ever stop to think about how you are modernizing your architecture? Are the right people involved? Are all aspects being modernized appropriately? Are the right things happening at the right time? How is it enabling your company’s goals?

In this talk, we share our adventures facilitating diverse organizations kickstarting and executing their architecture modernization journeys.

We will share many stories about things that worked and things that were less successful. We will share patterns and anti-patterns we started compiling around facilitating sustainable architecture modernization, one that considers the business strategy and the technical and organizational architectures.

ℹ️ Closing Keynote at Kandddinsky 2024

Eduardo da Silva

October 31, 2024
Tweet

More Decks by Eduardo da Silva

Other Decks in Technology

Transcript

  1. today we will talk about memories of our adventures helping

    organizations kickstarting and executing their modernization journeys...
  2. This is what we will be talking about today: our

    experiences helping orgs kickstarting and executing their modernization journeys We use a lot of DDD
  3. What memories will we be sharing today? 1️⃣ Kickstarting modernization

    2️⃣ Executing Mo dernization 3️⃣ Maintaining modernization momentum ℹ️ you can learn more about the other phases here: https://esilva.net/ articles/forming-​ amet Realization Framing & Validation Kickstarting Executing Modernization Stages
  4. What we mean by (architecture) modernization... The purpose of architecture

    modernization is.... ...to convert your legacy architecture from a liability into a competitive advantage... to help your company grow, remain competitive & reduce risks. It enables your company to do things that are currently not possible or too expensive.
  5. Architecture Modernization is a Business Enabler For each change we

    have to involve multiple teams and create special projects with experts It is difficult to evolve existing products and create new ones We have built our core proposition on a unreliable, very slow and spend time "compensating" that mess... 💡all of these are triggers that are blocking the companies from achieving their business goals and vision 💡Architecture Modernization is not a "technical thing" it is a business enabling "thing" (...)
  6. ⚠️ Architecture modernization should be ongoing ⚠️ Nobody wants to

    spend 3+ years modernizing their legacy while delivering fewer features. It's better to do continuous modernization and invest in practices like DDD so you don't need big multi-​ year initiatives.
  7. Modernization triggers "Spent a year building a very generic system

    to support all possible use cases - and business was worried that nothing was being delivered" CTO
  8. "...we have this and several other problems... What shall we

    do? Where to start? How can you help us?" CTO
  9. Modernization kickstarter (+ Ongoing Enablement) 1️⃣ series of sense-​ making

    listening, mapping and framing sessions 2️⃣ in-​ person intensive "modernization kickstarter workshop" 🎯 understand situation; frame the important elements and scopes to start approaching modernization 🎯 focus on an area or topic and collectively explore things to maximize ability and alignment to start modernization 3️⃣ Ongoing Enablement 🎯 help the org, and in particular the teams and people leading the modernization on any topics that are blocking them or skills they may be missing
  10. 1️⃣ series of sense-​ making listening, mapping and framing sessions

    🎯 understand situation; frame the important elements and scopes to start approaching modernization Meet people from different functions and roles in the organization; understand their situation, challenges, ideas, etc. By "understanding together" we can better frame where the (business) value of the modernization is and how to start approaching it Build relationships, advance the thinking and framing of the modernization (by talking about it) ℹ️ Yes, business value-​ driven modernization
  11. 💡Tips & Tricks for Listening & Mapping sessions Don't try

    to be too structured in the sessions... let conversations flow, try to explore and learn about the challenges people see We do these remote; at least 1-​ hour per session As open questions What's important to you? What would you like to be doing? What's holding you back? Can you explain that to me? Show me We are trying to understand and learn (sense-​ making), not solve problems Eduardo and Nick's listening sessions 10+ listening sessions Important topics System-​ A issues & positioning What is ??? and who Owns what? What core capabilities are already in place and owned internally by company? Positioning of Systam-​ A and Company core capabilities Complexity of Operations to migrate out of System-​ A into new systems built by Company (how to cope with that?) Improve Ways of Working and Organization - Accelerate developments and get Teams closer to challenges and taking more ownership on desgining and deciding Example of outcome shared
  12. "Oh, I did not know that we had some of

    these issues... I thought we should start modernizing in Domain A, but now domain B and C also seem huge business enablers!!" Lots of options, lots of uncertainty and indecision
  13. Making a decision: breaking the mental block "At what point

    does not making a decision become more expensive than making a decision that may not be the best"
  14. Making a decision: group sessions with stakeholders 💡Decision-​ making workshops;

    involving the key representatives from the different domains and disciplines 💡Often times most people agree where to start... they just need some help visualizing and comparing the options Framing for decision Which domains / areas we can start Decision-​ making
  15. Kickstarter Workshop Agenda Map and Understand Domain Y; what is

    part of it, what is not, what is important, etc. Get an overview on the "North Star" for Company A and in particular for Domain Y - including key topics to focus in the workshop Product + Business Vision Big Picture EventStorming (Domain Y) Day 1 (1 hour) Day 1 + 2 Day 3 Day 3 (afternoon) Define Team API Ways of Working & Next Steps Prioritized Subdomains / Capabilities to explore in smaller groups Client 1 Go into more details on designing some of the domains. This should help showing how you could go about approaching this sort of challenges in the future. Define what could be done to make things happen on the designed domains. Map and Understand the Domain X Experience domains and sub-​ domains (which should help us identify good ideas for our systems and team organization and architecture) Get an overview on the "North Star" for Company B and in particular for Domain X Product + Business Vision Big Picture EventStorming Design Selected domains Discuss challenges and opportunities, and what changes in ways of working and organization Company B should focus on to be more effective and achieve a "faster flow of change on the strategic topics". Define next steps (specific things for next 6 months) Ways of Working + Next Steps Day 1 Day 2,3 Day 4 Client B 💡things ALWAYS change... but overall we strive for this sort of outcomes
  16. Kickstarter Workshop: Day 1 - strategy & big picture 💡typically

    on the first day we start with "business strategy" (north star for modernization); then move into big picture modeling using EventStorming Map and Understand Domain Y; what is part of it, what is not, what is important, etc. Get an overview on the "North Star" for Company A and in particular for Domain Y - including key topics to focus in the workshop Product + Business Vision Big Picture EventStorming (Domain Y) Day 1 (1 hour) Day 1 (rest of day)
  17. Kickstarter Workshop: Socializing after day 1 💡ALWAYS arrange a socializing

    moment to wrap up day 1, so people engage with each other, have fun, connect and prep for the challenging upcoming days ✅ We always recommend this activity! 🎳 Bowling 🎯 Darts 🍕 Pizza on a roof-​ top 🎮 Arcades
  18. "What if tomorrow we would pivot and instead of focusing

    on Domain X, we could get the three groups to explore Domains A, B and C?" 💡Be ready to adjust on the fly... particularly at the end of each day
  19. Kickstarter Workshop: Day 2/3 - explore options 💡typically on day

    2 (and start of day 3) we focus on exploring options to modernize in the prioritized domains 💡arrange mixed groups (expertize and knowledge) 💡be as specific as possible 💡groups share often and gather input from other groups/people 💡adjust as needed
  20. Kickstarter Workshop: Day 4 - Next Steps 💡day 4 (last

    day) we have a big focus on "Next Steps", and reflect on what is needed to take those steps 💡explore what are the next things to do to move forward (no matter the needed budget) 💡understand who should be involved (teams, disciplines, etc.) 💡define what skills and capabilities are missing and need to be addressed to move forward 💡get buy-​ in to execute on the modernization
  21. Kickstarter Workshop: testimonies & feedback "Whole team was engaged creating

    future state - devs thinking about product and business" "We've never worked this way before - product and dev are normally very isolated" "even today (one year after) they still talk about this workshop..." "I had no clue of all of the steps marketing was managing, and how things end up on our team board"
  22. "It was nice doing all of those workshops.... what are

    we supposed to do now? Let's just build this new feature in TROND (the legacy system)" Skeptical Chief Architect
  23. "My architects spent the last year designing our new system

    by creating an entity relationship diagram for the whole database..... ....after attending your DDD workshop, I'm starting to think that might not be good." Enlightened CTO
  24. "We now have 25 microservices all talking to the shared

    legacy database. It's even harder to build features now than it was in the legacy system." Exasperated Head of Engineering
  25. You can't execute effectively with an architecture capability gap Architectural

    capability Current architectural capability Capability needed to modernize effectively Architecture capability gap Limited understanding of strategic DDD concepts Deep understanding of strategic DDD concepts e.g. CRUD events, naive boundaries e.g. domain events, business-​ aligned subdomains
  26. Who are your modernization enablers? Who is responsible for identifying

    & addressing skills gaps? AMET = Architecture Modernization Enabling Team
  27. Case Study [2023]: Forming and activating an AMET from the

    offset Week 1: Define members of AMET Week 2 - 8: Listening & mapping sessions Week 10: Monday Tuesday Wednesday Thursday Friday Kickstarter workshop (in-​ person) AMET Day 💡as facilitator, you help that AMET kickstart and start working together in the modernization (in this case we were also part of the AMET)
  28. "We have a very important client asking for a new

    feature. We have no choice but to do this. Sorry. But we promise you can do modernization work after this." Narrator: they didn't get t o focus on modernization after this because more "urgent" feature work came up.
  29. Shape the narrative: it's not features vs modernization (aka product

    vs tech, it's features now vs more/better benefits later) What is not possible with the current architecture? What is too expensive to build/support with the current architecture?
  30. Make the strategic choices concrete, ensure the strategy is deliberate

    Strategy A: 100%Focus on short term Feature Feature Feature 100% focus on immediate product improvements Strategy B: Biased towards short-​ term Feature Feature Modernization Where to focus our efforts? Strategy C: Biased towards future growth Modernization Modernization Feature Strategy D: full focus on future growth Modernization Modernization Modernization 100% focus on future business growth opportunities
  31. Tech Lead: For this new feature we are going to

    go directly to the legacy DB to get and update data Senior engineer: But the architects said that we should not be doing that any more. We should ask the teams that own the data to provide APIs and events. Tech lead: We don't have time to do that. The PM want's this feature ASAP. The architects are too disconnected from reality anyway. Their ideas will never work. Scenario: devs don't want to modernize or don't believe in your modernization vision
  32. Global principles RFCs and ADRS Alignment with all key stakeholders

    - e.g. platform team doesn't allow it Providing clear guidance and helping people to do things the right way - we don't want to punish people, we are here to help them Bake approved patterns into platforms / libraries Ensuring modernization happens the right way Architects embedded in teams ( ✅ always involve Teams)
  33. Dear Architects, Just because you wrote some principles down on

    a wiki page, doesn't mean that people are going to apply them... ....or even read them. Warm Regards, Eduardo & Nick
  34. Internal conferences incentivise, inspire, and remind Success stories Benefits of

    internal tech conferences Techniques and patterns External speakers Explain global standards Showcase migrations patterns Showcase collaboration between teams and roles Raise awareness Improve alignment Motivate and inspire Incentivise modernization Help to upskill
  35. AMET Can spin up taskforces AMET Member A: It seems

    like we are noticing that observability is an issue. Teams are not aware of how things are behaving in production which is leading to bugs and higher cognitive load. AMET Member B: Let's start an enabling team with the focus of getting all teams equipped with basic observability practices and knowledge.
  36. Key Takeways Architecture Modernization is easy to understand and embrace,

    but hard to start and keep up momentum on it When facilitating, meet the people where they are - focus on start doing something, learning, showing value... showing "we can do it" Social supporting structures like an AMET are key to starting and helping address the many surprises and "resistance" that exists to modernization Every org is different, has different challenges... there is no recipe that we can give you to solve all "modernization things". Be flexible and explore & learn what may work for you. Learn to continuously modernize, as needed... that should help you do better as a business Architecture Modernization is a Business Enabler - don't modernize just to use the latest cool tech
  37. Nick Tune /in/nick-​ tune @nick-​ [email protected] nick-​ tune.me @nicktune.bsky.social Eduardo

    da Silva /in/emgsilva mastodon.social/@eduardodasilva Independent Consultant on Sociotechnical Systems, Architecture, and Leadership Modernization https://esilva.net ℹ️ Check out articles on Architecture Modernization here: https://esilva.net/amet