home.social

#architecturemodernization — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #architecturemodernization, aggregated by home.social.

  1. This week I had the chance to attend @kandddinsky and it was great.

    Thanks to all the organizers and attendees for an excellent few days.

    And thanks to @eduardodasilva for another enjoyable and memorable collaboration.

    Slides: drive.google.com/file/d/1LajO-

    #architecturemodernization

  2. The common perception of a software architect is someone who designs systems.

    But I think a good architect is someone who can actually get designs off the whiteboard and into production.

    Decision making, delivery management, organisational change, and facilitation skills are all crucial.

    I like how @xinyao says "architects architect the [architecture] process".

    I met a lot of clients who had great visions that never went anywhere.

    #softwareArchitecture #architectureModernization

  3. Architecture modernization anti-pattern: accessing another subdomain's data from the legacy system*

    When building something new outside the legacy, you might be tempted to go direct to the legacy system to read/write data that you require (via the DB, CDC, or EDA).

    If that data does not conceptually belong to the subdomain that is accessing it, you are breaking encapsulation: you are going via the backdoor to access another subdomain's data

    1/3

    #architectureModernization #ddDesign

  4. Where should you put the anti-corruption/translation layer when migrating from a legacy system?

    1. in the legacy
    2. in new code
    3. a dedicate translator service

    A benefit of 1: fully encapsulate the legacy model and prevent it leaking

    A benefit of 2: teams don't have to make PRs in multiple codebases for the same feature (when the ACL needs to change)

    1/2

    #architectureModernization #legacyMigration #softwareArchitecture #ddDesign #domainDrivenDesign

  5. One thing I love to see in an ADR is when the author goes into a little detail* about potential solutions that weren't selected.

    It gives me the confidence that the author has really challenged their gut instincts and biases around what they think is the correct solution.

    Even if the other options are clearly inferior, it shows that the author was aware of them, and considered them, and can clearly articulate why they are not preferable.

    #softwareArchitecture #architectureModernization

  6. The cost of deferring some software architecture decisions can be significant.

    As teams continue to build new features while awaiting clarity on an architectural direction, they make short-term choices or add avoidable complexity.

    Example:

    "[for this new feature] We are going directly to the big shared database rather than establishing clear interfaces.

    ...

    1/2

    #softwareArchitecture #architectureModernization #ddd #domainDrivenDesign

  7. When modernizing your legacy systems, be careful not to automatically assume that the language your business and domain experts use is correct and should be reflected in your new architecture.

    Their language might be influenced by your legacy systems and not an accurate reflection of the concepts in your domain.

    Here is the kind of conversation I've had many times...

    1/3

    #ddDesign #domainDrivenDesign #softwareArchitecture #architectureModernization #archModernization

  8. It's always preferable to be transparent, but it's also important to do what is right for the company. Sometimes that means being a little cheeky and not asking for permission to do the right thing.

    Note to all of my past and future employers and clients: I am always 100% transparent. I would never do anything that helps you to be successful without first giving you the chance to refuse 🫣🤭

    2/2

    #architectureModernization

  9. Yesterday I said something a bit naughty live on @ewolff's architecture stream.

    I said that sometimes you should do your architecture modernization in secret.

    Of course this is not the default. It's very risky and there are nuances.

    What I mean is, sometimes you don't need to over-share your implementation details.

    if you say "we will refactor the domain model while modernizing" - people might be worried that you're going to over-engineer.

    1/2

    #architectureModernization

  10. Excellent point made this evening by Kacper Gunia on the @TeamTopologies live stream:

    If you are trying to modernize your architecture then you can't ignore your developer platforms, infrastructure, and operability.

    Otherwise, your teams, that are already at their limit with product and modernization work, will quickly run out of capacity and possibly burn out.

    1/2

    #architectureModernization

  11. It's easy to get frustrated or anxious when it seems like sufficient progress isn't being made toward your major #architectureModernization decisions.

    It can be overwhelming when there are many options on the table and it seems like your group is going round in circles.

    But before jumping into potentially counter-productive actions, think about the design squiggle. Design and decision making is complex and not always a predictable, linear sequence of steps from problem to solution.

    1/2

  12. I tried to touch on examples of the different perspectives from different layers of an organization and some example tactics for making progress.

    Slides: drive.google.com/file/d/1DdWoz

    Always keen to hear about other people's experiences and tactics.

    2/2

    #architectureModernization

  13. There are often debates around top-down vs bottom-up in the context of making change happen, like architecture modernization initiatives.

    In my experience it is necessary to engage the top, the bottom, and the middle to give ourselves the greatest chance of achieving our desired outcomes and establishing habits that stick.

    Recently I gave a talk about this at a private event, titled "Modernzing your architecture when the whole world is against you".

    1/2

    #architectureModernization

  14. ...A great narrative is all about making seemingly invisible challenges and progress visible to less technical audiences. Some tech leaders have a real gift for doing this.

    2/2

    #architectureModernization

  15. It can be a while before the benefits of modernization are noticeable on a business level.

    How do you ensure stakeholders don't start to worry that their investments and compromises aren't going to deliver the expected ROI?

    I think the answer is a mix of:

    - setting the right expectations up front
    - having a great narrative that brings people on the journey
    - looking for opportunities to deliver value earlier to build trust/confidence

    1/2

    #architectureModernization

  16. - a compelling vision
    - unambiguous priorities
    - incentives to modernize and recognition
    - documented modernization patterns and patterns
    - coaching and education

    And probably more.

    My recommendation is: put yourself in the minds of teams doing the work. Spend time with them. Understand all the pressures they face.

    2/2

    #architectureModernization

  17. Discipline is crucial for any architecture modernization journey.

    There is always going to be a desire to ”let's just build this in the legacy system it will be quicker" or "let's just go directly to their database, we don't have time to wait for an API".

    Every day, teams will be faced with such situations. All of those small compromises can seriously add up over the course of a year.

    It is hard to stay disciplined. It requires:

    1/2

    #architectureModernization

  18. By having a way to quantify the level of modernization, you can then plan when you hope to hit each progress milestone.

    Then you can ask questions like the following to identify red flags up-front or detect when timelines are going off track:

    "When do we expect to reach 100% modernization [for this service]?"

    #architectureModernization

  19. What does it mean for a part of your architecture to be modernized?

    And what are the steps along the way between 0% and 100% modernized?

    Very often the hard parts of modernization get pushed back or never fully completed, leaving the system with a mish-mash of modernized and legacy.

    E.g. one client built ~30 microservices that were all still sharing the monolithic legacy database. Each service was ~50% modernized.

    1/2

    #architectureModernization

  20. feature factory mindset, startup wanting to ship as quickly as possible, lack of architecture skills in the org, etc.

    Even so, it's still hard to avoid ending up with legacy systems.

    And as business models evolve and the technology landscape shifts, dedicated modernization efforts are still likely to be needed (although less often and smaller in scope).

    2/2

    #architectureModernization

  21. "Shouldn't architecture modernization be an ongoing activity [not a big multi-year initiative]?"

    In an ideal world yes it should.

    Mature engineering organizations balance the need to add new features with simplifying and improving their architecture.

    It would be great if every company invested in continuous architecture improvement.

    But most don't for a variety of reasons: ...

    1/2

    #architectureModernization

  22. …published, what needs to happen immediately before so the event can be published?" [working backwards]

    Adding a few constraints, and reducing the scope of analysis to adjacent steps can really help to get things moving.

    Thanks to my colleagues at PayFit France for organizing sessions where we discuss and reflect on various architecture-related topics like this. I find it helpful to understand my behaviours and put them into words.

    2/2

    #architectureModernization #facilitation

  23. If you're facilitating an architecture design workshop and the group is struggling to get started or make progress, what do you do?

    One simple trick is to try and define the start and/or end of a use case. You can then ask questions like:

    - "We have information that is produced here. How do we get to this information being produced over here to help the user achieve their goal?" [working forwards]

    - "If the process ends with this event being...

    1/2

    #architectureModernization #facilitation

  24. This week I had the chance to speak at GOTO Amsterdam about architecture modernization.

    It was a nice experience. I really liked the ambiance and vibe in the Beurs van Berlage.

    Don't get me started on the rain in Amsterdam though. It’s always bad, but 100% rain for 3 full days is just….

    You can find my slides here: drive.google.com/file/d/1YkTp0

    #architectureModernization

  25. Is my table really an address?

    Or is this company starting to stretch their software to support use cases it wasn't originally designed for?

    Is this a harmless hack or are they taking the current domain model in a bad direction?

    The ravioli was good in any case.

    #ddDesign #domainDrivenDesign #architectureModernization

  26. Building trust can take time. Every day your actions affect how people trust you.

    So, if you want to help make big changes, pay attention to all of your small interactions.

    2/2

    #architectureModernization

  27. So, in my experience, it's crucial to have a compelling vision that clearly demonstrates the business value of modernization, and guidance that enables teams and managers to translate the vision into concrete actions.

    This was one of the topics that came up last night in a conversation with David Leitner and Thomas Pokorny. The recording will soon be available, including one of the best programmer jokes you will ever hear.

    2/2

    #architectureModernization #techLeadership #legacyModernization

  28. For leaders and architects it can sometimes be frustrating or bewildering when teams aren't as enthusiastic or committed to modernizing.

    But teams doing the work are often already at 100%+ capacity with their backlog, bugs, support tickets, and other work.

    Modernization might just feel like another thing that they don't have time for and adds to their stress…

    1/2

    #architectureModernization #techLeadership #legacyModernization

  29. Should you start an architecture modernization journey by building something completely new outside of your existing systems?

    This can be effective as a way of demonstrating what's possible in your proposed "new world".

    Faster time-to-market, better reliability, improved compliance, more efficient delivery etc.

    1/n

    #architectureModernization #techStrategy #legacyModernization

  30. They told him they had no capacity so needed me to rebook. But the only way they could do that was by telling the system that I missed the appointment (that was in the future).

    Keep this in mind when modernizing legacy systems. Don't just rewrite the old systems in new technology. Try to identify and address all the UX workarounds and missed edge cases (and features that are no longer being used).

    2/2

    #architectureModernization #legacyModernization