GDS held the second Consulting Technical Architects (CTA) drop-in workshop at our Whitechapel offices in September. The focus of the workshop was agile architecture. We chose this theme because architects across government said they wanted clarity and information about best practices.
The benefits of building agile architecture
We’ve already blogged about the benefits of agile working. These principles also apply to building architecture. Government organisations should aim to build simple architectures in an agile way wherever possible. This allows service teams to:
- respond to immediate user needs
- release updates and get feedback quickly
- focus on improving the service through software development
- deal with ambiguity and work in a flexible way
The main principles of agile architectures are that you should take an incremental and structured approach to design.
Architects in agile teams play a crucial role in providing guidance and building the necessary infrastructure for teams to get projects started.
Architects do this by:
- identifying the context, stakeholders and components that go into the solution
- defining common, reusable patterns to these solutions
- communicating the architecture to relevant stakeholders
Discussing different types of modelling
In the workshop, our group discussion focused on the main categories of modelling approaches:
- no modelling
- lightweight modelling
- heavyweight modelling
No modelling
Your team can jump into a project quickly, be flexible and focus on delivery when you skip the modelling stage. This is because you don’t go through a detailed planning phase.
The disadvantage of skipping this stage, however, is that, your team may find that the architecture you start building does not scale. Having no overall strategy or plan for the future ahead can lead to a waste of resources.
Workshop attendees agreed that you should only skip modelling in a project if you are prototyping or doing simple, single-use processes such as one-time data migration or file transformation.
Lightweight modelling
Lightweight modelling consists of lists and simple diagrams which illustrate a particular aspect of a system.
You can use these sketches and lists to communicate concepts and get approval from stakeholders. You can also document decisions, peer review designs before building architecture and test ideas.
Formal methods can help you to identify useful components and reuse them across projects. The downside of lightweight modelling is that some architects view this approach as a shortcut. Lightweight modelling can also cause lack of clarity and may result in poorly developed architecture.
Lightweight modelling is potentially suitable for:
- alpha’s and proof-of-concepts
- low impact systems
- web services that perform simple operations such as document uploads
Heavyweight modelling
Heavyweight modelling tools are primarily database driven. They capture entities and relationships. These tools present views into the architecture from different perspectives, and encourage collaboration and reuse of architectural components and patterns.
Heavyweight modelling requires a lot of work at the start of a project but usually results in well planned architecture. It can also help people build a thorough understanding of products. Teams are accountable for choices and you can use a common language and taxonomy.
The downside of heavyweight modelling is that it’s inflexible, assumes perfect knowledge of user needs and requires a lot of resource.
Workshop attendees suggested that heavyweight modelling is good when you are building:
- high-reliability systems
- industrial systems
- security architecture
- national infrastructure
Join us at the next CTA workshop to discuss mobile apps
Our next CTA workshop is on 16 October where we’ll discuss mobile apps with architects from the NHS and the Home Office. The event will take place at The White Chapel Building in London.
Get in touch with us at CTA-Mailbox@digital.cabinet-office.gov.uk if you’d like to attend, or would like to discuss agile architecture in your organisation.
2 comments
Comment by David Heath posted on
Michael Nygard’s Architecture without an end state has a lot to offer on this topic:
https://www.infoq.com/presentations/Architecture-Without-an-End-State
Comment by Igniel posted on
Awesome post thanks for sharing.