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

The Evolution of Architecture through Team Topo...

The Evolution of Architecture through Team Topologies

Architecture "just" defines the structure of the software. However, Conway's Law already shows the connection between architecture and organization. Through the Inverse Conway Maneuver, it has become clear that the clever arrangement of the organization of a software development project can significantly influence the architecture. This talk illustrates that team topology also has significant consequences for architectural work: Team Topologies not only functions as a tool for architecture but must also be included in architectural planning.

Eberhard Wolff

December 12, 2024
Tweet

More Decks by Eberhard Wolff

Other Decks in Technology

Transcript

  1. The Evolution of Architecture through Team Topologies Eberhard Wolff Head

    of Architecture https://swaglab.rocks/ https://ewolff.com/
  2. Communication: Good or Bad? •Communication: foundation of successful projects •But:

    communication can also hinder progress and takes up time. •Projects should communicate as much as necessary. •Written documentation: lots of effort •EMails instead of meetings? •JIRA tickets instead of direct communication – really?
  3. Information Distribution Aspects •Modules can be changed freely •…if they

    still meet expectations from other modules. •Other modules will use all information about a module.
  4. Information Distribution Aspects •Information hiding: Hide as much information as

    possible •Less information leaks to other modules •Result: Modules easier to change •Still valid, fundamental concept
  5. Information Hiding •“We decided that all programmers should see all

    the material.” •“Each programmer having a copy of the project workbook, which came to number over 10,000 pages.” •(Including interior of modules.) •"I dismissed Parnas's concept as a ‘recipe for disaster’.” •“Parnas was right, and I was wrong.”
  6. Public Methods Instance Variables Class Data model can be changed:

    Bank Account store balance or calculate on-the-fly
  7. Interface Database Coarse-grained Module / Microservice Data model can be

    changed: Bank Account store balance or calculate on-the-fly
  8. Domain Architecture •A good domain architecture facilitates changes to the

    business logic. •Business logic and features are the primary value of the software to customers. •Naïve Optimum: 1 Team = 1 Domain = 1 Part of the Code
  9. Domain e.g. order process Team A part of the code

    Inverse Conway Setup the team Assign a domain to the team Congrats! They will build a module in the code.
  10. Why Team Topologies? •Somehow teams need to collaborate •Team Topologies

    is not too complex …and intuitive (?) •More “fracture planes” then just domains e.g. location •Covers more team types than development teams
  11. Team Topologies Order Processing Kubernetes / CI Team Delivery Optimization

    Invoicing Delivery XaaS Architecture Collaboration Facilitating XaaS
  12. A Word of Warning… •Team Topologies defines “magnets”. •I.e. the

    teams should evolve towards these roles. •How many organization implement Team Topologies fully and by the book? •Does that matter? We just look for improvements. •Team Topologies acknowledges that informal communication exists besides organigrams.
  13. Communication •Team Topologies and Software Architecture both aim at reducing

    the need for communication with interfaces. •Team Topologies XaaS = software interface or user interface
  14. Splitting a System •Architecture: Focus usually on domains. •Team Topologies

    imply modules with different functionality. •Complicated subsystem •Platform •Enabling (might just provide support, no module)
  15. Streams? •Team Topologies focuses on stream-aligned teams. •A complete stream

    from requirements to production. •This is the whole point of stream-aligned teams. •I.e. you should not compromise in this regard.
  16. Why Focus on these Streams? •Feedback from users •Benefit: Product

    / market fit •Feedback from tests, production, staging •Benefit: Better productivity •Benefit: Less Burnout •The preferred way of working
  17. Fracture Planes •Teams are split by fracture planes. •Domain •Regulatory

    Compliance (PCI DSS) •Change Cadence •Team Location •Risk (acquisition vs retention) •Performance •Technology
  18. Domain e.g. order process Team A part of the code

    Software Architecture Team Topologies Fracture plane e.g. Location Team Shared responsibility for code / domain acceptable
  19. Fracture Planes •Always splitting teams by domain is impossible. •So

    is always splitting modules by domain (Conway) •So a team with a UI module might make sense. •Architecture splits also by layers / hexagonal architecture •But usually not on the team-level
  20. Cognitive Load •Responsibility for a complete stream is complex. •Too

    much “cognitive load” •Other teams reduce the cognitive load. •I.e. support not control •I.e. no architecture police but an enabling team
  21. Software Architecture and Teams •Traditional software architecture tries to solve

    communication problems. •Can you achieve that goal with just technical means?
  22. Software Development = Sociotechnical •Teams = social •Modules = technical

    •Must consider both •Interface = communication (social) + module interaction (technical) •Information hiding: Just one way to reduce cognitive load
  23. It is your duty to provide feedback! But you can

    decide about technologies? Architecture? Sure! But I can’t set up teams! No discussion with other developers? Architects? … It’s all collaborative decisions! https://software-architektur.tv/tags.html#Kommunikation
  24. Team Setup •Team Setup is a joint effort: developers, management,

    architects… •So “1 domain = 1 team” is probably impossible. •Too many other factors to keep in mind. •But you do have influence!
  25. Fundamental Value •What is not negotiable? •Support the stream of

    changes – many benefits! •Support the teams that actually do the changes! •Lower their cognitive load! •Not: Every team must have a direct business impact! •Not: Split teams by domain! (Inverse Conway Maneuver)
  26. Org Chart and Informal Communication •Team Topologies acknowledges informal structures

    besides the org chart. •We should improve informal structures! •We should use informal structures!
  27. Send email to [email protected] Slides + Sample Microservices Book DE

    / EN + Sample Practical Microservices DE/EN + Sample of Continuous Delivery Book DE Powered by Amazon Lambda & Microservices EMail address logged for 14 days, wrong addressed emails handled manually