That can all sound a bit woolly, so to make it a touch more concrete here is a set of starter-for-10 principles that I’ve seen used in a number of contexts by architects looking to encourage great things from the software that evolves out of their teams.
High level, organisational-style principles:
- Make the right things as easy as possible.
- Make unforeseen things, that might be needed, possible.
- Build Trust
- Promote Sharing
- Educate, educate, educate … and evolve those principles.
From a technical perspective, nothing beats:
- Separation of Concerns
- Following the Single Responsibility principle
After all, as I often tell my audiences:
- Human Comprehension is King
- Mechanical Sympathy is Queen (and the Queen sometimes gets her way over the King).
Of course you’ll have your own principles to discover and apply for your unique business context, but the point is that finding them is really crucial for helping you guide like a great architect.