A practical, pragmatic and lightweight guide to software architecture, specifically aimed at software developers
Software Architecture for Developers is a practical and pragmatic guide to modern software architecture, specifically aimed at software developers. You'll learn:
- 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.
Software Architecture for Developers
(slides - 53MB; PDF)
YOW! Conference - Brisbane, Australia - December 2017
Five things every developer should know about software architecture
Back in 2010, I wrote an article titled Are You a Software Architect?, which looked at the difference and transition between being a software developer and being a software architect. Although the industry has moved on in many ways during the past 8 years, it seems that software development teams are still struggling with some of the basics, especially those aspects related to software architecture. These are arguably more important than ever before, given the distributed nature of the software systems we’re now building, and the distributed nature of the teams building them. As a short introduction to the topic and to debunk some myths, here are five things that every software developer should know about software architecture.
Volume 1: Technical leadership and the balance with agility
A developer-friendly, practical and pragmatic guide to lightweight software architecture, technical leadership and the balance with agility.
This book is a practical, pragmatic and lightweight guide to software architecture, specifically aimed at developers, and focussed around the software architecture role and process.
- Part 1: Software architecture
- What is "software architecture"?
- Architectural drivers
- Part 2: The software architecture role
- The software architecture role
- Technical leadership
- Software architects and coding
- The skills and knowledge of a software architect
- Part 3: The process of architecting
- Managing technical risks
- Software architecture in the delivery process
Agile and architecture, finally friends after 15 years
SwanseaCon - Swansea, Wales - September 2016
Agile and architecture; finally friends
ING Loves IT - Bucharest, Romania - April 2017
Volume 2: Visualise, document and explore your software architecture
A short guide to visualising, documenting and exploring your software architecture.
This book focusses on the visual communication and documentation of software architecture, based upon a collection of ideas and techniques that thousands of people across the world have found useful. The core of this is my C4 software architecture model and the software guidebook. You'll also find discussion about notation, the various uses for diagrams, the value of creating a model and tooling.
- Part 1: Visualise
- We have a failure to communicate
- A shared vocabulary
- The C4 model
- Level 1: Context diagram
- Level 2: Container diagram
- Level 3: Component diagram
- Level 4: Class diagram
- Diagrams must reflect reality
- Other diagrams
- Part 2: Document
- Software documentation as a guidebook
- Functional Overview
- Quality Attributes
- Software Architecture
- Infrastructure Architecture
- Operation and Support
- Development Environment
- Decision Log
- Part 3: Tooling
- Sketches, diagrams, models and tooling
- The C4 model with other notations and tools
- Exploring your software architecture model
Visualise, document and explore your software architecture
OpenSlava - Bratislava, Slovakia - October 2017
The art of visualising software architecture
Voxxed Days Athens - Athens, Greece - May 2017