Software Architecture for Developers
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
O'Reilly Software Architecture Conference - London, England - October 2017
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"?
- Part 2: The software architecture role
- The software architecture role
- Should software architects code?
- Software architects should be master builders
- From developer to architect
- Broadening the T
- Soft skills
- Software development is not a relay sport
- Software architecture introduces control?
- Mind the gap
- Where are the software architects of tomorrow?
- Everybody is an architect, except when they’re not
- Software architecture as a consultant
- Part 3: Designing software
- Architectural drivers
- Quality Attributes (non-functional requirements)
- Working with non-functional requirements
- Technology is not an implementation detail
- More layers = more complexity
- Collaborative design can help and hinder
- Part 4: Agility and the essence of software architecture
- The conflict between agile and architecture - myth or reality?
- Quantifying risk
- Just enough up front design
- Introducing software architecture
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