O'Reilly logo
live online training icon Live Online training

Software architecture for developers

A practical and pragmatic guide to modern software architecture, specifically aimed at software developers

Topic: Software Development
Simon Brown

The software development industry has made huge leaps in recent years; with agile, lean, software craftsmanship, evolutionary design and microservices being just a few of the buzzwords we throw around. Despite this, software development teams are often more chaotic than they are self-organising, with the resulting code being more of a mess than was perhaps anticipated. Successful software projects aren't just about good code though, and sometimes you need to step away from the IDE for a few moments to see the bigger picture. This training course is about that bigger picture and is aimed at software developers who want to learn more about software architecture, technical leadership and the balance with agility. Join us for a guide to software architecture on modern software projects that's pragmatic rather than academic, and lightweight rather than "enterprisey".

What you'll learn-and how you can apply it

  • The essence of software architecture.
  • Why the software architecture role should include coding, coaching and collaboration.
  • The things that you really need to think about before coding.
  • How to visualise your software architecture using the C4 model.
  • A lightweight approach to documenting your software.
  • Why there is no conflict between agile and architecture.
  • What "just enough" up front design means.
  • How to identify risks with risk-storming.

This training course is for you because...

  • You're a software developer, especially those currently in, or aspiring to be, a software architect/tech lead.


  • Some experience of building software within a team environment would be helpful, although not essential.

Recommended Follow-up:

Visualising software architecture with the C4 model

About your instructor

  • Simon is an independent consultant specializing in software architecture, and the author of "Software Architecture for Developers" (a developer-friendly guide to software architecture, technical leadership and the balance with agility). He is also the creator of the C4 software architecture model, which is a simple approach for creating maps of your code. Simon is a regular speaker at international software development conferences and travels the world to help organizations visualize and document their software architecture.


The timeframes are only estimates and may vary according to how the class is progressing

What is software architecture? (35 minutes)

  • In this segment we’ll look at what software architecture is, why it’s important, and how requirements, quality attributes, constraints and principles all drive software architecture.
  • Break + Q&A (10 minutes)

The software architecture role (35 minutes)

  • In this segment we’ll look at the software architecture role including; technical leadership, leadership styles, the skills needed by modern software architects, and whether architects should write code.
  • Break + Q&A (10 minutes)

Visualising and documenting software architecture (35 minutes)

  • In this segment we’ll look at some practical ways to visualise and document software architecture, including a summary of the C4 model.
  • Break + Q&A (10 minutes)

Software architecture in the delivery process (35 minutes)

  • In this segment we’ll look at how software architecture fits into the software delivery process, including what it means to do “just enough” front design in a way that is compatible with agile approaches.
  • Q&A (10 minutes)