Architecture Modernization

Book description

Proven techniques and principles for modernizing legacy systems into new architectures that deliver serious competitive advantage.

For a business to thrive, it needs a modern software architecture that is aligned with its corporate architecture. This book presents concrete practices that sync software, product, strategy, team dynamics, and work practices. You’ll evolve your technical and social architecture together, reducing needless dependencies and achieving faster flow of innovation across your organization.

In Architecture Modernization: Socio-technical alignment of software, strategy, and structure you’ll learn how to:

  • Identify strategic ambitions and challenges using listening and mapping tours
  • Visualize your business landscape and crucial capabilities with Wardley Mapping
  • Create a product taxonomy as a framework for your architecture
  • Run big picture EventStorming workshops to map business domains
  • Apply Team Topologies patterns to identify and refine value streams
  • Design loosely coupled, domain-aligned software architectures
  • Build internal developer platforms for rapid, reliable evolution
  • Implement data mesh principles and tools to revolutionize data engineering
  • Deliver compelling modernization roadmaps focused on continuous value

Architecture Modernization: Socio-technical alignment of software, strategy, and structure shows you how to turn the practice of architecting systems into a transformative process for your entire company. Chapter-by-chapter, you’ll identify the reasons and benefits of modernization, design an architecture that works for your business, and then implement your new approach in a progressive and sustainable manner. Every technique is illustrated with insightful industry examples and an interactive Miro board that lets you dig deeper.

About the Technology
The decisions you make about your software are inherently connected to the decisions you make about your business. Why not turn the mundane task of modernizing legacy systems into a transformative process for your entire company? This book shows you how! It reveals a socio-technical approach to align your software and products with organizational dynamics and ways of working.

About the Book
Architecture Modernization: Socio-technical alignment of software, strategy, and structure presents a clear path for upgrading your entire organization when you re-imagine your software. In it, you’ll learn to combine practices like Domain-Driven Design, Event Storming, and Wardley Mapping to discover user needs, design optimal architecture, and avoid falling back into old habits. Provocative examples from Danske, Salesforce, the UK Government, and others show the real-world result of each approach, identifying techniques you can apply effectively in your own business.

What's Inside
  • Uncover cross-org challenges and opportunities
  • A product-centric approach to architecture
  • Envision architecture as a portfolio to prioritize investment


About the Reader
For CTOs, tech leads, and principal engineers who decide on architecture and organization design.

About the Authors
Nick Tune helps organizations modernize their architectures through empowered product teams and continuous delivery. Jean-Georges Perrin builds innovative and modern data platforms.

The technical editor on this book was Kamil Nicieja.

Quotes
Nick has a rare gift of making complex topics digestible and immediately actionable where the rubber meets the road. This book connects the dots of domain-driven design, Team Topologies, DevOps, product development, strategy, architecture, and leadership.
- From the Foreword by Xin Yao, DDD consultant and socio-technical architect

Helps you modernize your applications and organizational structures to support your business strategy and allow you to regain agility and momentum... I plan to use this approach in my work.
- Eoin Woods, Endava

Guides you through every twist and turn of your modernization journey.
- Vlad Khononov, Technology Consultant

Table of contents

  1. Inside front cover
  2. Architecture Modernization
  3. Copyright
  4. dedication
  5. contents
  6. front matter
    1. forewords
    2. preface
    3. acknowledgments
    4. about this book
      1. Who should read this book
      2. How this book is organized: A road map
      3. How to read this book
      4. liveBook discussion forum
    5. about the authors
    6. about the cover illustration
  7. 1 What is architecture modernization?
    1. 1.1 Architecture is more than technologies and patterns
    2. 1.2 Independent value streams: The building blocks of modern architecture
      1. 1.2.1 Minimizing change coupling with well-defined domain boundaries
      2. 1.2.2 Architecting at multiple scopes for global optimization
    3. 1.3 Modernization as a portfolio-driven evolutionary journey
    4. 1.4 Topics not covered in this book
    5. Summary
  8. 2 Preparing for the journey
    1. 2.1 Is leadership prepared?
      1. 2.1.1 Are business and product leaders truly ready to slow down the delivery of new features to allow modernization?
      2. 2.1.2 Do leaders understand that legacy systems and ways of working are complex and difficult to change?
      3. 2.1.3 How will leaders react when the unexpected occurs (which is inevitable) and there are major delays or increased costs?
      4. 2.1.4 Are leaders ready to change how they work? Can you imagine leadership supporting changes to funding models, work prioritization, and development processes and empowering teams to make more decisions?
      5. 2.1.5 Are leaders willing to invest sufficient time and funds into learning and training for all employees so that they can carry out modernization skillfully?
      6. 2.1.6 Will technologists be able to articulate to business leaders and other stakeholders the business and organizational benefits of their ideas?
    2. 2.2 Prepare to embrace a new architecture mindset
      1. 2.2.1 Prepare to embrace Conway’s law
      2. 2.2.2 Prepare to embrace collaborative architecture practices
      3. 2.2.3 Prepare to connect architecture and strategy
      4. 2.2.4 Prepare to move beyond business and IT silos
    3. 2.3 Industry example: Hitting the right note—modernizing music royalty processing at ICE
    4. 2.4 Beware of modernization silver bullets
      1. 2.4.1 Beware of bolt-on modernization
      2. 2.4.2 Beware of the structure and process fallacy
      3. 2.4.3 Prepare to invest in quality technical practices
    5. 2.5 Prepare to support leaders at all levels
    6. Summary
  9. 3 Business objectives
    1. 3.1 Business justifications for architecture modernization
      1. 3.1.1 Falling behind faster-moving competitors
      2. 3.1.2 Architecture stifling business growth
      3. 3.1.3 Pursuing an exit strategy
      4. 3.1.4 Growth by acquisition
      5. 3.1.5 Poor UX holding the company back
      6. 3.1.6 Inefficient internal tooling and processes
      7. 3.1.7 Improving hiring and retention
    2. 3.2 Connecting modernization to growth strategies
      1. 3.2.1 Growth strategy: Product development
      2. 3.2.2 Growth strategy: Market penetration
      3. 3.2.3 Growth strategy: Market development
      4. 3.2.4 Growth strategy: Diversification
    3. 3.3 Identifying north stars
      1. 3.3.1 Choosing the right north star
      2. 3.3.2 Using a north star framework
      3. 3.3.3 Industry example: North stars at Danske
    4. Summary
  10. 4 Listening and mapping tours
    1. 4.1 Who to meet
    2. 4.2 Who conducts the tour?
    3. 4.3 Conducting an effective tour
      1. 4.3.1 Create a safe space
      2. 4.3.2 Harness a toolbox of techniques
      3. 4.3.3 Structured vs. unstructured discussions
    4. 4.4 Bringing groups together
      1. 4.4.1 Industry example: Clinical oncology structured exploration workshop
      2. 4.4.2 Industry example: Kickstarting modernization in a large Scandinavian enterprise
    5. Summary
  11. 5 Wardley Mapping
    1. 5.1 The Strategy Cycle
    2. 5.2 Creating a Wardley Map
    3. 5.3 Grasping evolution
      1. 5.3.1 Evolution characteristics
      2. 5.3.2 Rapid learning exercise: Grasping evolution
    4. 5.4 Climatic forces
      1. 5.4.1 Everything evolves
      2. 5.4.2 Components coevolve
      3. 5.4.3 Past success breeds inertia
      4. 5.4.4 Change is not always linear
      5. 5.4.5 Assessing the effect of climatic changes
    5. 5.5 Making strategic decisions
      1. 5.5.1 Accelerators to evolution
      2. 5.5.2 De-accelerators to evolution
      3. 5.5.3 Market plays
    6. Summary
  12. 6 Product taxonomy
    1. 6.1 Defining the building blocks
      1. 6.1.1 Independent value streams
      2. 6.1.2 Domains
      3. 6.1.3 Products
      4. 6.1.4 Platforms
      5. 6.1.5 Product groups and portfolios
      6. 6.1.6 Industry example: Salesforce product taxonomy (2017)
      7. 6.1.7 Building blocks cheat sheet
    2. 6.2 Designing a product taxonomy
      1. 6.2.1 Start with the easier parts
      2. 6.2.2 Use appropriate techniques
      3. 6.2.3 Expect constant evolution
      4. 6.2.4 Distribute design responsibility
    3. 6.3 Mapping modernization opportunities, risks, and challenges
      1. 6.3.1 Dependencies and misaligned boundaries
      2. 6.3.2 Unclear or lacking ownership
      3. 6.3.3 Skills gaps
      4. 6.3.4 Product and domain modernization
      5. 6.3.5 Complexity and cognitive load
      6. 6.3.6 Macrolevel constraints and challenges
    4. 6.4 What is a product?
      1. 6.4.1 Products vs. features vs. components
      2. 6.4.2 Products vs. variants vs. journeys
      3. 6.4.3 Product mode
    5. Summary
  13. 7 Big picture EventStorming
    1. 7.1 Understanding EventStorming
      1. 7.1.1 Notation
      2. 7.1.2 Chaotic exploration
      3. 7.1.3 Optimized for learning and collaboration
      4. 7.1.4 When to use EventStorming
    2. 7.2 Running an EventStorming session
      1. 7.2.1 Planning a session
      2. 7.2.2 Preparing the space
      3. 7.2.3 Kicking off the session
      4. 7.2.4 Building the timeline
      5. 7.2.5 Sorting the timeline
      6. 7.2.6 Timeline walk-through
    3. 7.3 Surfacing problems and opportunities
      1. 7.3.1 Problems
      2. 7.3.2 Opportunities
      3. 7.3.3 Addressing problems and opportunities
    4. 7.4 Facilitator tips and challenges
      1. 7.4.1 Modeling heuristics
      2. 7.4.2 Common challenges
    5. Summary
  14. 8 Product and domain modernization
    1. 8.1 Industry example: Business property tax modernization
    2. 8.2 Identifying product requirements
      1. 8.2.1 Involve the right people
      2. 8.2.2 Identify the costs of not modernizing
      3. 8.2.3 Don’t mindlessly reverse-engineer the code
      4. 8.2.4 Analyze system information
      5. 8.2.5 Spend time with real users
      6. 8.2.6 Continuous discovery
      7. 8.2.7 What have people given up asking for?
      8. 8.2.8 We’ve always done it that way
      9. 8.2.9 Finding shadow IT
      10. 8.2.10 Industry example: Department for Levelling up, Housing, and Communities
    3. 8.3 Modernizing the domain model
      1. 8.3.1 Industry example: Royalties domain modeling
    4. 8.4 Process modeling EventStorming
      1. 8.4.1 Notation
      2. 8.4.2 Planning a workshop
      3. 8.4.3 Facilitating a workshop
    5. 8.5 Domain Storytelling
      1. 8.5.1 Notation
      2. 8.5.2 Planning and facilitating a workshop
      3. 8.5.3 Replaying stories
      4. 8.5.4 When to use Domain Storytelling
    6. Summary
  15. 9 Identifying domains and subdomains
    1. 9.1 The value of good domain boundaries
    2. 9.2 Domain identification principles
      1. 9.2.1 Domain boundaries depend on your goals
      2. 9.2.2 Concepts can be coupled by multiple characteristics
      3. 9.2.3 Not all dependencies are equally costly
      4. 9.2.4 Explore multiple models
      5. 9.2.5 Industry example: The British Broadcasting Corporation
      6. 9.2.6 Don’t rely on superficial knowledge
      7. 9.2.7 Good boundaries are not a panacea
      8. 9.2.8 Prepare for constant evolution
    3. 9.3 Domain boundary heuristics
      1. 9.3.1 The five guiding domain-boundary heuristics
      2. 9.3.2 Subdomain boundary heuristics
      3. 9.3.3 Subdomain grouping heuristics
      4. 9.3.4 Industry example: Airline domain decomposition
    4. 9.4 Identifying domains and subdomains with EventStorming
      1. 9.4.1 Pivotal events
      2. 9.4.2 Chunking the timeline
      3. 9.4.3 Looking for scattered subdomains
      4. 9.4.4 Subdomains versus user journeys/processes
      5. 9.4.5 Analyzing subdomains
      6. 9.4.6 Planning a series of workshops
    5. Summary
  16. 10 Strategic IT portfolio
    1. 10.1 Utility vs. strategic IT dichotomy
      1. 10.1.1 Tailored operating model
      2. 10.1.2 Identifying strategic IT
    2. 10.2 Core Domain Charts
      1. 10.2.1 Example Core Domain Chart
      2. 10.2.2 Assessing model complexity
      3. 10.2.3 Core domain evolution
      4. 10.2.4 Industry example: Events industry scale-up
      5. 10.2.5 Comparisons with Wardley Mapping
    3. 10.3 Core Domain Chart patterns
      1. 10.3.1 Decisive core
      2. 10.3.2 Indefensible core
      3. 10.3.3 Big bet future core
      4. 10.3.4 High-leverage supporting
      5. 10.3.5 Table stakes supporting
      6. 10.3.6 Mission-critical supporting
      7. 10.3.7 Suspect supporting
      8. 10.3.8 Hidden core
      9. 10.3.9 Black swan core
      10. 10.3.10 Portfolio patterns
    4. 10.4 Industry example: Strategy-aligned architecture at Vinted
    5. Summary
  17. 11 Team Topologies
    1. 11.1 Team Topologies principles
      1. 11.1.1 Sustainable fast flow
      2. 11.1.2 Small, long-lived teams as the standard
      3. 11.1.3 Team-first thinking
      4. 11.1.4 You build it, you run it
      5. 11.1.5 Good boundaries minimize cognitive load
      6. 11.1.6 Embrace Conway’s law
    2. 11.2 Team Topologies patterns
      1. 11.2.1 The four team types
      2. 11.2.2 The three interaction modes
      3. 11.2.3 Industry example: Global cosmetics brand
    3. 11.3 Validating candidate value streams
      1. 11.3.1 Independent service heuristics
      2. 11.3.2 Mandate levels
      3. 11.3.3 Good product team/bad product team
    4. 11.4 Sensing and evolving team topologies
      1. 11.4.1 Organizational sensing
      2. 11.4.2 Industry example: Awkward interactions when becoming multiproduct
      3. 11.4.3 Evolutionary patterns
    5. 11.5 Team grouping patterns
    6. Summary
  18. 12 Loosely coupled software architecture
    1. 12.1 Coupling types and strength
      1. 12.1.1 Local versus global complexity
    2. 12.2 Modeling architectural flows
      1. 12.2.1 Model exploration whirlpool
      2. 12.2.2 Domain Message Flow Modeling
      3. 12.2.3 Industry example: Modernizing an accounting system
    3. 12.3 Individual subsystem design
      1. 12.3.1 Using a canvas
      2. 12.3.2 Software design EventStorming
    4. 12.4 Subsystem modernization strategies
      1. 12.4.1 The modernization strategy selector
      2. 12.4.2 Migration patterns
      3. 12.4.3 Assessing current-state complexity
    5. 12.5 Industry example: Domain-driven modernization of a gigs platform to support new markets
    6. Summary
  19. 13 Internal developer platforms
    1. 13.1 Developer experience
      1. 13.1.1 Zero to production in less than a day
      2. 13.1.2 Roll out the red carpet for teams to do continuous delivery
      3. 13.1.3 Delightful onboarding experience
      4. 13.1.4 Frictionless local development experience
      5. 13.1.5 Industry example: HMRC’s Multi-channel Digital Tax Platform (UK government)
    2. 13.2 Platform capabilities
      1. 13.2.1 Golden paths
      2. 13.2.2 Pipelines and environments
      3. 13.2.3 Observability
      4. 13.2.4 Software applications catalog
      5. 13.2.5 Great platform documentation
      6. 13.2.6 Security and compliance
      7. 13.2.7 API management
      8. 13.2.8 FinOps
    3. 13.3 Industry example: Platform-powered business model revolution at La Redoute
    4. 13.4 Managing internal developer platforms
      1. 13.4.1 Platform as a product
      2. 13.4.2 Adequately staffed
      3. 13.4.3 Build vs. curate
      4. 13.4.4 Technology standardization vs. flexibility
      5. 13.4.5 Platform engineer experience
    5. 13.5 When to build a platform
    6. Summary
  20. 14 Data mesh revolutionizing data engineering
    1. 14.1 Setting up the context for complex data
      1. 14.1.1 The dawn of data engineering
      2. 14.1.2 New needs around data
      3. 14.1.3 More problems than solutions
    2. 14.2 The four principles of data mesh
      1. 14.2.1 Principle of domain ownership
      2. 14.2.2 Principle of data as a product
      3. 14.2.3 Principle of the self-serve data platform
      4. 14.2.4 Principle of federated computational governance
      5. 14.2.5 No principle lives in isolation
    3. 14.3 Building your first data quantum
      1. 14.3.1 The smallest element with value
      2. 14.3.2 Logical architecture
      3. 14.3.3 Your new best friend: The data contract
      4. 14.3.4 Physical architecture
    4. 14.4 Navigating through the planes
      1. 14.4.1 The infrastructure experience plane
      2. 14.4.2 The data product experience plane
      3. 14.4.3 The mesh experience plane
    5. 14.5 First and next steps
    6. Summary
  21. 15 Architecture modernization enabling teams
    1. 15.1 AMET primary purposes
      1. 15.1.1 Kickstarting modernization
      2. 15.1.2 Sustaining modernization momentum
      3. 15.1.3 Facilitating better design
      4. 15.1.4 Facilitating long-lasting, durable change
      5. 15.1.5 Communicating the vision and progress
      6. 15.1.6 Promoting success stories and learnings
    2. 15.2 Industry example: Enabling modernization at a European telco
    3. 15.3 Winding down an AMET
      1. 15.3.1 Evolving investment and involvement
      2. 15.3.2 Establishing an architecture operating model
    4. 15.4 Staffing an AMET
      1. 15.4.1 Patience and relationship building
      2. 15.4.2 Should an AMET be full time?
      3. 15.4.3 Bringing in external help
    5. 15.5 Empowering an AMET
    6. 15.6 Naming an AMET
    7. 15.7 An AMET is not always necessary
    8. Summary
  22. 16 Strategy and roadmaps
    1. 16.1 Think big: Building a compelling vision
      1. 16.1.1 Crafting a modernization strategy deck
      2. 16.1.2 Industry example: Building and evolving a modernization strategy at IgluCruise.com
    2. 16.2 Nail it: Delivering a first slice within three to six months
      1. 16.2.1 Planning a first slice
      2. 16.2.2 Choosing where to start
      3. 16.2.3 When to think about internal developer platforms
      4. 16.2.4 What if things don’t go to plan?
    3. 16.3 Scale it: Ramping up modernization
      1. 16.3.1 Playbooks
      2. 16.3.2 Seeding and spreading expertise
      3. 16.3.3 Sequencing modernization work
      4. 16.3.4 Balancing discovery, design, and delivery
      5. 16.3.5 Balancing modernization and other work
      6. 16.3.6 Visualizing and communicating the journey
    4. 16.4 Continuously assessing and adapting
      1. 16.4.1 Metrics
      2. 16.4.2 Pulse surveys
      3. 16.4.3 Gatherings
      4. 16.4.4 Continuous feedback channels
      5. 16.4.5 Spend time with people doing the work
      6. 16.4.6 Be prepared to make the difficult decision
    5. Summary
  23. 17 Learning and upskilling
    1. 17.1 Planting seeds
      1. 17.1.1 Industry example: Planting the DDD seed at a French HR-tech unicorn
    2. 17.2 Upskilling for upcoming project needs
    3. 17.3 Establishing a continuous learning environment
      1. 17.3.1 Communities of practice
      2. 17.3.2 Regular small learning opportunities
      3. 17.3.3 Mentoring
      4. 17.3.4 Empowering influencers
      5. 17.3.5 Blogging and public speaking
      6. 17.3.6 Internal conferences
    4. 17.4 Industry example: Learning-driven modernization at CloudSuite
    5. Summary
  24. index
  25. Inside back cover

Product information

  • Title: Architecture Modernization
  • Author(s): Jean-Georges Perrin, Nick Tune
  • Release date: February 2024
  • Publisher(s): Manning Publications
  • ISBN: 9781633438156