Sociotechnical Architecture - Designing Systems and Teams Together

When organizations grow, they often hit a point where the architecture feels like it's working against them, not for them. Teams keep drawing boundaries on whiteboards that dissolve the moment they meet real code and real politics. This course follows one company through the architectural rebuild that comes after organizational changes. You'll build a working design system - Wardley Mapping, DDD Strategic Design, Team Topologies - and use it to draw architecture and team boundaries as one decision, not two. You'll leave with a method for turning a target architecture into the teams that produce it, and an evolutionary path for getting your existing system there.

Sarah
advanced
12 Modules
270 min read
37 Exercises
Sociotechnical SystemsSoftware ArchitectureDomain-Driven Design
Sociotechnical Architecture - Designing Systems and Teams Together
REQUIREMENTSDESIGNDEVELOPMENTTESTINGPRODUCTION~10×~50×~100×100×LARGE PROJECTSAS REPRODUCED~4×SMALL PROJECTSBOEHM 1981SAME SOURCE.ONE CURVE OMITTED.PHASE WHEN DEFECT IS DETECTEDRELATIVE COST TO FIXBOEHM, 1976 / 1981

The context matters, too. Boehm was analyzing waterfall projects from the 1970s, built on hardware that required complete software systems before anything could be executed. A requirements defect that made it into production on an IBM mainframe deployment meant months of work and substantial infrastructure to correct. That's the environment behind the steep curve. For a team shipping to a cloud service with blue-green deployments and automated rollback, the production defect cost profile is structurally different.

Understanding, not just knowledge

You Learn to Decide, Not Just to Recite

Each module works toward a deeper understanding, not a definition - knowing when a technique applies, and when it doesn't, not just being able to name it.

Synthesis, not summary

A Complete Picture

Every module connects grounded ideas across fields. The primary sources are always one click away, for further reading.

Built to do, not just to read

Exercises That Make It Stick

Grounded, interactive exercises reinforce every concept - not quizzes, but structured practice you check against a reference solution.

Practitioner courses for individuals and teams that build better software. Simple pricing, no surprises.
Billed AnnuallySave up to 44%

Solo

Perfect for individual learners.

Save $240 with annual - 5 months free

  • Start learning with
  • Access to all current courses
  • Hands-on exercises with real-time feedback
  • Free updates and access to new courses
  • Progress tracking per lesson

Team

For teams learning together.

Save $744 vs. 5 solo annual licenses

  • Everything in Solo +
  • Up to 5 team members
  • Shared team experience
  • Progress overview for all members
Module 0
22 min read
3 exercises
Module 1
21 min read
3 exercises
Module 2
21 min read
3 exercises

Situational Awareness with Wardley Mapping

You can read a Wardley Map as an architectural diagnostic: identify the evolutionary mismatches that cause structural speed loss, and derive the quality profiles that different capabilities actually need. You also learn to recognize which capabilities need different people and practices before they need different architecture. This module gives the AWG situational awareness: the map that shows where investment belongs before the architecture question can be answered. The next module turns that awareness into a shared answer to what Velox actually is.

Module 3
30 min read
3 exercises

What Is Our Core Domain?

You can apply DDD Strategic Design vocabulary to classify a software product's subdomains by business value, facilitate the cross-role conversation that surfaces genuine strategic disagreement about what differentiates the product, and produce a documented Core Domain decision with explicit reasoning and dissent. You can also turn that decision into an investment priority recommendation leadership can act on. This module closes Prerequisite #1 of the Design Intent Statement; the boundary work begins in Module 04.

Module 4
24 min read
3 exercises

Domain Discovery with EventStorming

You can identify the architectural precondition that makes Core Domain investment effective, set up and facilitate a Big Picture EventStorming session as domain discovery, and read the output to distinguish clear boundary signals from hotspots and contested areas, without prematurely drawing an architectural boundary. This module turns the Core Domain decision into structural knowledge: where Planning Logic's boundaries actually run. The candidates and contested areas it surfaces become the raw material Module 05 turns into Bounded Contexts.

Module 5
23 min read
3 exercises

Finding Bounded Contexts

You can generate defensible Bounded Context candidates from an EventStorming output. That means reading vertically across process timelines to see where responsibility actually sits, drawing candidate interfaces from the events that cross a boundary, and checking whether the language inside each candidate holds together. None of that is a boundary decision - each candidate stays a hypothesis until it survives fracture plane testing. This module turns the raw material from Domain Discovery into boundary hypotheses precise enough to test; Module 06 decides which of them hold.

Module 6
20 min read
3 exercises
Module 7
22 min read
3 exercises

Context Mapping — Drawing the Lines Between Contexts

You can assign DDD Context Map patterns to validated Bounded Context relationships with explicit upstream/downstream reasoning, and you can name where an Anti-Corruption Layer protects a Core Domain team's autonomy from a dependency it cannot negotiate with. That means establishing direction before any pattern gets named, telling genuine Partnership apart from the Customer/Supplier relationship most teams actually have, and reading a finished Context Map as an organizational signal instead of an architecture diagram. None of this replaces the Team Topologies decision - the map shows which relationships need a service contract, which need a translation layer, and which reveal power dynamics no pattern label alone resolves. This module turns the validated Bounded Contexts from Fracture Planes into a fully annotated Context Map; Module 08 decides which team structures make that map real.

Module 8
20 min read
3 exercises

Team Topologies, Revisited

You can apply Team Topologies vocabulary to a validated Bounded Context set, assigning team types and interaction modes with explicit reasoning, and explain why the formula holds at inter-BC level but runs into a deeper, unsolved problem once it reaches inside the Core Domain. That means finishing the vocabulary that Kai's failed first attempt never had a foundation for: four team types, three interaction modes, and a taxonomy mapping subdomain type to team type and Context Map pattern to interaction mode. None of this stays theoretical: the Architecture Working Group assigns real teams to real Bounded Contexts, decides why IAM and Billing become one permanent Complicated-Subsystem Team, and rules out a Platform Team at BC level. This module turns the annotated Context Map from Context Mapping into a fully reasoned team assignment; Module 09 picks up the open problem it leaves behind, Planning Logic's 35 to 40 engineers still waiting for internal structure.

Module 9
23 min read
3 exercises

The Integration: Reverse Conway + DDD + Team Topologies

You can apply Ubiquitous Language, Actor analysis, and Wardley Mapping simultaneously as intra-BC Fracture Planes to discover ownership areas within a Core Domain Bounded Context, group those areas into Stream-Aligned Teams under explicit Cognitive Load criteria checked against real headcount arithmetic, and read the result as a fully executed Inverse Conway Maneuver from Design Intent to Modulith structure. That means finishing what Module 08 left open: Planning Logic's 35 to 40 engineers get a genuine internal structure instead of a team-type label without teams. The Architecture Working Group discovers five ownership clusters from actor language, positions them on a cluster-level Wardley Map to find the one that cannot share a team with the others, and validates four Stream-Aligned Team hypotheses against Cognitive Load and Dunbar-aware headcount before naming the interfaces that hold the resulting Modulith together. This module closes Section 12 of the Sociotechnical Architecture Brief and completes the full chain from Design Intent through Modulith structure, the moment Reverse Conway stops being a method and becomes a completed act; Module 10 picks up what's left: an ideal architecture plan meeting Priya's six quarters of already-committed roadmap.

Module 10
25 min read
4 exercises

When the Perfect Cut Isn't Possible

You can classify a proposed architectural compromise as a sequencing decision or a silent revision of a prior architectural decision, using Herbert Simon's satisficing criterion instead of a gut feeling, select and defend a first concrete move for the next increment by scoring candidates on value, friction, and reversibility, and document a named sequence of stable intermediate architectures with explicit non-negotiables at each stage. That means confronting the ideal Modulith Plan from Module 09 with Priya's actual roadmap: an already-sold Q3 enterprise feature that cuts across three of the four planned Planning Logic teams, and two senior engineers earmarked for Dependency & Impact Tracking who are contractually committed to a different project next quarter. Kai returns to the Architecture Working Group for the first time since Module 08, not with a warning but with the question the module runs on: not whether the plan is right, but what happens to it the moment it meets a calendar. The AWG classifies two near-identical compromise candidates as sequencing or betrayal, scores the IAM migration against two alternatives to pick the actual first move, and names four stable stages, from the next two sprints through roughly twelve months out, each with its own non-negotiables. This module closes Section 13 of the Sociotechnical Architecture Brief; Module 11 picks up what's still missing, the technical method to actually move from one named stage to the next without endangering live operations.

Module 11
19 min read
3 exercises

Evolutionary Architecture

You can migrate a live dependency behind an existing Anti-Corruption Layer using the Strangler Fig pattern one concept at a time, design fitness functions that turn a documented ownership boundary into a continuously enforced constraint, and use sustained fitness function evidence to justify extracting a team's ownership area into its own deployment unit. That means handing David the IAM migration ticket from Module 10, the first move chosen there, and no answer when Elena asks which concept fails first if his one-shot cutover plan goes wrong. She points him back at the ACL from Module 07: the wall built precisely so he could migrate one room at a time instead of the whole house at once. Six weeks later a routine dependency check catches two new direct calls between two of the four Planning Logic teams, the same erosion that hit Customer/Supplier in Module 07, one level deeper: no documentation holds a boundary, only a test that breaks the build. Three months of fitness function data later, the AWG treats extracting Adaptive Replanning's ownership area into its own deployment unit as the consequence of proven stability, not a fresh architectural bet. This module closes Section 14 of the Sociotechnical Architecture Brief, completing the arc from Module 00's five-item pain inventory to a running migration plan with fitness functions enforcing it. It's the final module of the course.