← Back to principles
Team
Keep it as simple as possible whilst still meeting the required outcomes
What this means in practice
We prefer solutions that are easy to understand, change, and operate. We reduce moving parts, avoid cleverness, and choose the simplest approach that meets the need. We treat simplicity as a design constraint throughout delivery.
Why this matters
Simple systems are cheaper to build and run. They reduce defects, make onboarding faster, and improve delivery speed over time. They also make it easier to reason about risk, performance, and change.
Practices that meet this principle
Write clean, readable code that prioritises clarity over cleverness
Remove duplication and unnecessary abstractions
Prefer small, composable components with clear responsibilities
Use diagrams to explain architectures and flows when it improves understanding
Prioritise working software over extensive documentation, while keeping essential docs current
Prototype to validate assumptions before committing to complex builds
Validation
A project meets this principle when:
A new team member can understand the core design and main flows with minimal guidance
Changes can be made without widespread knock-on effects
The solution avoids unnecessary layers, services, or framework complexity
Operational ownership is clear and the system is straightforward to support