A common challenge in modern software architecture is how to empower people to make architectural decisions while keeping them aligned with the overall goals and priorities of the system. Architectural principles are a deceptively simple idea which helps us to achieve this. Principles provide actionable goals, constraints and priorities, with clear rationale, that allow their applicability and importance to be quickly understood. This gives people the context they need to make good, aligned decisions.

In this talk I will introduce the idea of an architecture principle, discuss what makes a good principle and how to capture it clearly, and show how they relate to architectural decisions to help teams make good decisions that solve their immediate problem but also preserve the technical integrity of the system.