The Art of Visualising Software Architecture

Track: Workshop (Full Day)
Skill Level: Intermediate
Room: WS Room A315-316
Time Slot: Mon 2/15, 9:00 AM
Tags: java , communication , code , software architecture , diagrams , uml
Abstract

A consistent, shared vision is essential in order for teams to push in the same direction, but it’s surprising that many teams struggle to effectively communicate the architecture of the software they are building. As an industry we do have the Unified Modeling Language (UML), yet many people favour informal boxes and lines sketches instead. The problem is that such diagrams rarely make any sense, usually need a narrative to accompany them and ultimately slow the team down. Although we can argue whether UML offers an effective way to communicate software architecture, that’s often irrelevant because many teams have already thrown out UML or simply don’t know it. Abandoning UML is one thing but, in the race for agility, many software development teams have lost the ability to communicate visually too.

This hands-on session is aimed at those involved in the software development process and is about improving communication. You’ll see some patterns and anti-patterns related to “boxes and lines” diagrams, and you’ll learn some lightweight techniques for communicating software architecture using simple sketches and my C4 software architecture model.

Simon Brown

Simon is an independent software development consultant specialising in software architecture; specifically technical leadership, communication and lightweight, pragmatic approaches to software architecture. He is the author of two books about software architecture; Software Architecture for Developers (a developer-friendly guide to software architecture, technical leadership and the balance with agility) and The Art of Visualising Software Architecture (a guide to communicating software architecture with sketches, diagrams and models). I’m also the creator of the C4 software architecture model and Structurizr, a web-based tool to create software architecture diagrams.