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".


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

The lost art of software design
YOW! 2019 - Brisbane, Australia - December 2019

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

In-person workshops

The majority of our workshops are private, on-site workshops held directly with organisations. The pricing model for in-person workshops 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/large TV (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. Please contact [email protected] for further details, or to book.


Online workshops/talks

We have some flexibility around our online offerings, in terms of timing and duration. Please contact [email protected] for further details, or to book.

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.

Please note that the 2-day "Software Architecture for Developers" workshop includes the content of the 1-day "Visualising software architecture with the C4 model" workshop.

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

Software Architecture for Developers (online)

This 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. It's a half-day of a live webinar, plus videos and self-paced exercises.

Agenda

  • [09:00 - 09:30] Architecture
    • What is software architecture?
    • Architecture vs design
    • The importance of software architecture
  • [09:30 - 10:00] Architectural drivers
    • Requirements
    • Quality attributes
    • Constraints
    • Principles
    • Agility
  • [10:00 - 10:30] Architects
    • A definition of the software architecture role
    • Technical leadership and the different leadership styles
    • Technical skills
    • Soft skills
    • Software architecture and coding
  • [10:30 - 11:00] Break
  • [11:00 - 11:45] Software architecture in the delivery process
    • Quantifying and prioritising risk
    • Identifying risk with risk-storming
    • 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?
  • [11:45 - 12:00] Discussion, questions and wrap-up

  • [Self-paced learning/exercises] Visualising software architecture with the C4 model

Visualising software architecture with the C4 model (online, self-paced)

We also have an online, self-paced version of the "Visualising software architecture with the C4 model" workshop. It covers the basics of the C4 model, with a heavy emphasis on hands-on exercises that can be undertaken in your own time, and submitted to us for review. The course is completely asynchronous - there's no specific start time/day, no live video that you need to watch, and no deadlines for completion of the exercises. The estimated duration of the course is 5-6 hours, although the elapsed time will be longer than this due to the asynchronous nature of the course.

Course content

  • Introduction
  • The problem we're trying to solve
  • An introduction to the C4 model
  • System Context diagrams
  • Container diagrams
  • Component and Code diagrams
  • Notation

The goal of the course is to give you the knowledge to use the C4 model to describe your own software systems. The course includes a learning journey through online content, hands-on diagramming exercises that will be reviewed by us, a copy of the "Software Architecture for Developers" ebooks, and an electronic completion certificate. Q&A, discussion, and support will be provided via Slack. There are two options for the course.


Option 1: Individuals

With this option, each person registered for the course receives a unique course URL to track their individual progress, and is required to complete the exercises on their own. Pricing is £399 per person, and reduced to £250 per person for 3+ people from the same company. Please contact [email protected] for further details, or to register.


Option 2: Groups

With this option, the group (maximum of 3 people) receives a unique course URL to track the group’s progress, and is required to complete the exercises as a group. Pricing for this option is £500 per group. Please contact [email protected] for further details, or to register.



By participating in the online course, you agree to following ("we/us" refers to Architectis Limited):

  • You retain all copyright associated with your exercise submissions, but you grant us the right and license to use this content, for use in the course by us and other participants.
  • We will anonymise your content before using it, but please do not submit any content that would violate the privacy rights, publicity rights, copyrights, contract rights or any other rights of any person.
  • We agree not to use your e-mail address for any other purpose than this course, and it will not be shared with other course participants.
  • Please, be nice to people on Slack (i.e. no harassing behaviour).
  • Course fees are non-refundable.