Caseum

Introducing a lightweight approach to software architecture

Leo Simons

Introduction

Key concepts

  • Multiple views:
    • Use C4 for component diagrams
    • Include other views for other important information
  • Lightweight approach:
    • Don’t use a digital diagram when a whiteboard picture will do
    • If you do need structured models, use lightweight text-based syntax
    • Focus on interactions over processes and tools
  • User-centric:
    • Include UI designs since they help users understand
    • Include Actor personas and scenarios since they drive the design
    • Events are a good way for users to understand systems
  • Standardise common best practices:
    • Embeds established practices like Event Storming and Domain-Driven Design
    • Agile development context expected

Architecture = communication

Use simple, accessible tools:

  • Architecture records design decisions
  • Designs are recorded for people working on and with the software
  • Prefer tools that untrained non-technical people can use
  • Slack & Email over Documents
  • Wiki/SharePoint over Version Control
  • Readable text files over Formal Methods

3 Stages

Lightweight approach

Three stages as projects get bigger:

  1. Brainstorming & whiteboarding
  2. Digital diagrams & decision records
  3. Models as code & executable specifications

…use only what you really need.