Notes
- Schedule can be tailored to suit team availability
People, teams, technology, domains and evolution over time.
Over the last few decades, software teams have faced unprecedented expectations to scale system capacity, complexity and organisation size.
Fuelled by vendor hype, a series of technology-led 'solutions' to these challenges have taken the industry by storm in a boom and bust cycle that inevitably ends in frustration.
This course focusses on fundamental principles and design strategies for socio-technical systems and will help you:
If your teams are struggling with any of the following challenges, you will benefit from the perspectives, insights and practices taught on this course:
This training course addresses socio-technical systems design holistically, using Kruchten's 4+1 Views as a scaffold.
The 4+1 Views are:
🟢 The Logical View - representing the business domain
🔵 The Process view - representing the runtime ('process' means executable program)
🟤 The Physical view - representing the execution environment for processes and inter-process communication
🟣 The Developer view - representing the code, org structure and work-management approach
🟡 The Scenario view - tying it all together by illustrating the the way the different views map onto each other, and how sequences of operations are embodied by the activity in components in each of the other views.
Many of the challenges referenced above are related to misalignments between the views - e.g. the Logical view is frequently left unexamined leading to tight coupling between runtime components affecting performance, availability and team autonomy.
This course will explain how to design systems in each view, how to align the views, and how to scale each view independently to ensure effective and efficient scaling decisions for technology & teams.
Course overview, system access, goal setting
Systems, Socio-Technical Systems, Design vs Architecture, 4+1 Views Scaffold Overview
Domain-Driven Design, Service-Oriented Architecture & Event-Driven Architecture
Concurrency, Deployment Units, Run-time Dependencies
APIs & Messaging, Commands & Events, Queues vs Streams, Sync vs Async, API & Data Products
Load & Capacity Planning, Infrastructure & Networks
Repository & disk Layouts, enforcing modularity, team structures, autonomous teams
CI/CD Pipelines, composite processes, observability
Strangler Fig pattern, Identifying Async boundaries, Aligning with Customer cohorts
Q&A, Revisiting complex topics, explore business challenges, further reading
6 weeks
1 x 3hr session per week
12 weeks
1 x 1.5hr session per week
3 days
2 x 3hr sessions per day