Architectis

We provide training and consulting services related to software architecture and the C4 model for visualising software architecture, and have run over 100 workshops at organisations in over 30 countries. We offer a number of workshops, the content of which is based upon Simon Brown's Software Architecture for Developers books. These workshops, aimed at software developers and architects, are a guide to modern software architecture that's pragmatic rather than academic, and lightweight rather than "enterprisey". They are occasionally run publicly via training providers or conferences but most are private, on-site workshops held directly with organisations.


Visualising software architecture with the C4 model
Agile on the Beach 2019 - Falmouth, England - July 2019

The lost art of software design
SC London 2019 - London, England - October 2019


Software Architecture for Developers
(~140MB .pdf file)
Software Architecture for Developers
Visualising software architecture with the C4 model
(~100MB .pdf file)

Software Architecture for Developers (2 days)

This 2-day workshop will give you an introduction to a pragmatic and practical approach to software architecture; including technical leadership, communication and how to balance up front design with agile approaches.

Agenda - Day 1
  • [09:00 - 09:15] Introductions
  • [09:15 - 09:45] Architecture
    • What is software architecture?
    • Architecture vs design
    • The importance of software architecture
  • [09:45 - 10:15] Architectural drivers
    • Requirements
    • Quality attributes
    • Constraints
    • Principles
    • Agility
  • [10:15 - 10:45] Morning break
  • [10:45 - 12:30] Software design exercise
    • Software design exercise
    • Design exercise review #1
  • [12:30 - 13:30] Lunch
  • [13:30 - 14:30] Architects
    • A definition of the software architecture role
    • Technical leadership and the different leadership styles
    • Technical skills
    • Soft skills
    • Software architecture and coding
  • [14:30 - 15:00] Afternoon break
  • [15:00 - 16:15] Visualising software architecture
    • Design exercise review #2
    • Diagramming anti-patterns and typical problems
    • The "model-code gap"
  • [16:15 - 16:30] Discussion, questions and wrap-up
Agenda - Day 2
  • [09:00 - 10:15] C4 model - core diagrams
    • Abstractions and creating a shared vocabulary with a ubiquitous language
    • An overview of the C4 model
    • Notation and tips for better diagrams
    • System Context diagrams
    • Container diagrams
    • Component diagrams
  • [10:15 - 10:45] Morning break
  • [10:45 - 12:30] Software design exercise
    • Software design exercise
    • Design exercise review #3
  • [12:30 - 13:30] Lunch
  • [13:30 - 14:00] C4 model - supplementary diagrams
    • C4 and UML
    • System Landscape diagrams
    • Dynamic diagrams
    • Deployment diagrams
    • Frequently asked questions
  • [14:00 - 14:30] Documenting software architecture
    • The importance of documentation
    • Writing lightweight supplementary documentation using a "software guidebook" or arc42
    • Architecture decision records
  • [14:30 - 15:00] Afternoon break
  • [15:00 - 15:30] Tooling
    • Diagrams vs models
    • Extracting software architecture information from code and "architecturally-evident coding styles"
  • [15:30 - 16:15] Software architecture in the delivery process
    • Quantifying and prioritising risk
    • Identifying risk with risk-storming
    • Design exercise review #4
    • Waterfall, RUP, agile, etc
    • The conflict between architecture and agile
    • Approaching software architecture in a pragmatic, lightweight way
    • How much up front design is enough?
  • [16:15 - 16:30] Discussion, questions and wrap-up

Software Architecture for Developers (1 day)

This 1-day workshop will give you an introduction to a pragmatic and practical approach to software architecture; including technical leadership, communication and how to balance up front design with agile approaches.

Agenda - Day 1
  • [09:00 - 09:15] Introductions
  • [09:15 - 09:45] Architecture
    • What is software architecture?
    • Architecture vs design
    • The importance of software architecture
  • [09:45 - 10:15] Architectural drivers
    • Requirements
    • Quality attributes
    • Constraints
    • Principles
    • Agility
  • [10:15 - 10:45] Morning break
  • [10:45 - 11:45] Architects
    • A definition of the software architecture role
    • Technical leadership and the different leadership styles
    • Technical skills
    • Soft skills
    • Software architecture and coding
  • [11:45 - 12:30] Visualising software architecture
    • Diagramming anti-patterns and typical problems
    • An overview of the C4 model
    • Notation and tips for better diagrams
  • [12:30 - 13:30] Lunch
  • [13:30 - 15:30] Software design exercise
    • Software design exercise
    • Design exercise review #1
  • [15:30 - 16:00] Afternoon break
  • [16:00 - 16:45] Software architecture in the delivery process
    • Quantifying and prioritising risk
    • Identifying risk with risk-storming
    • Design exercise review #2
    • Waterfall, RUP, agile, etc
    • The conflict between architecture and agile
    • Approaching software architecture in a pragmatic, lightweight way
    • How much up front design is enough?
  • [16:45 - 17:00] Discussion, questions and wrap-up

Visualising software architecture with the C4 model (1 day)

"Visualising software architecture with the C4 model" is a hands-on, 1-day workshop that focusses on the visualisation and communication of software architecture using the C4 model. The core of this workshop can be based upon a simple case study (an architecture kata) or your own software systems. This workshop will give you some pragmatic, practical and lightweight techniques that you can apply to your work the very next day. You'll learn why most software architecture diagrams are meaningless, how to critique them, how to fix them and how to use the C4 model to create a simple yet powerful set of developer-friendly diagrams to describe software architecture.

Abstract

It's very likely that the majority of the software architecture diagrams you've seen are a confused mess of boxes and lines. Following the publication of the Manifesto for Agile Software Development in 2001, teams have abandoned UML, discarded the concept of modelling, and instead place a heavy reliance on conversations centered around incoherent whiteboard diagrams or shallow "Marketecture" diagrams created with Visio. Moving fast and being agile requires good communication, yet software development teams struggle with this fundamental skill. A good set of software architecture diagrams are priceless for aligning a team around a shared vision, and for getting new-joiners productive fast.

This hands-on workshop explores the visual communication of software architecture, and is based upon years of experience working with software development teams large and small across the globe. We'll look at what is commonplace today, the importance of creating a shared vocabulary, diagram notation, and the value of creating a lightweight model to describe your software system. The workshop is based upon the "C4 model", which I created as a way to help software development teams describe and communicate software architecture, both during up-front design sessions and when retrospectively documenting an existing codebase. It's a way to create maps of your code, at various levels of detail. Static structure, runtime and deployment diagrams are all covered, so you'll be able to tell different stories to different audiences.

Agenda - Day 1
  • [09:00 - 09:15] Introductions
  • [09:15 - 11:00] Software diagramming exercise
  • [11:00 - 12:30] Review and feedback
    • Diagramming anti-patterns and typical problems
    • The "model-code gap"
  • [12:30 - 13:30] Lunch
  • [13:30 - 16:00] C4 model - core diagrams
    • Abstractions and creating a shared vocabulary with a ubiquitous language
    • An overview of the C4 model
    • Notation and tips for better diagrams
    • System Context diagrams
    • Container diagrams
    • Component diagrams
  • [16:00 - 16:30] C4 model - supplementary diagrams
    • C4 and UML
    • System Landscape diagrams
    • Dynamic diagrams
    • Deployment diagrams
    • Frequently asked questions
  • [16:30 - 16:45] Tooling
    • Diagrams vs models
    • Extracting software architecture information from code and "architecturally-evident coding styles"
  • [16:45 - 17:00] Discussion, questions and wrap-up

Pricing, logistics and booking

The pricing model is a flat fee based upon location, inclusive of the trainer's travel and accomodation, rather than a fee "per attendee". The recommended number of attendees is between 10 and 20, but there is no class size limit. From a logistics point of view, all we need is a room with a projector (HDMI or VGA) and some whiteboards/flip chart paper plus marker pens for the hands-on exercises. No laptops are needed, and the timings are flexible. E-mail us for more details, pricing, or to book a workshop.