Lean methodology is a distinct approach to Agile development that places significant emphasis on removing waste from projects. When development teams are operating in this way, they don’t want to be weighed down by anything that doesn’t add value.
This can include excessive architecture. With Lean, it doesn’t make sense to produce extensive documentation that will detail every decision. Change tends to be constant with Agile projects, so documentation would also need to be continuously updated – and this can generate a huge amount of additional work.
But architecture can also be highly useful for teams adopting a Lean development approach – especially when working on innovative projects where there are numerous unknowns.
Striking a balance
For example, architecture can be a key enabler for teams. It ensures everyone knows where their efforts should be placed, what expertise will be needed and what can be put aside (thus, helping to eliminate waste). It frees teams up to act with confidence.
Insufficient architecture can create uncertainty and leave developers and stakeholders asking questions. On a big project, the volume of these queries could quickly become overwhelming for the architectural team – which could make them a choke point on the project, slowing everything down.
In these situations, more architecture, rather than less, would enable teams to deliver faster.
How much is enough?
So how much architecture should be applied? The honest answer is ‘it depends’. The amount of documentation required, for instance, will depend on the technology domain. The more mature the field, the less likely you are to need documentation.
Project leaders can start to determine just how much thought, by taking time before the start of a project to understand what stakeholders want to achieve, and what matters most to them.
This is sometimes referred to as an “Iteration 0” approach, as that extra design effort will be made before the first iteration to understand the architectural drivers.
This helps teams create a high-level vision. Under a Lean methodology approach, the architecture needs to be just enough to let everyone know the direction of travel.
Agile + Architecture
Teams can also minimise the architecture needed by deploying an approach that is aligned with the Agile philosophy, such as Microsoft’s “A Technique for Architecture and Design.” This is ideal if teams want the ability to shift focus to meet the changing day-to-day demands of a business, without jeopardising the long-term viability of the overall solutions.
If teams are concerned that minimal architecture could lead to a bottleneck situation (as described above), they can also deploy solutions designed to reduce the likelihood of this happening.
For example, Architecture Decision Records (ADR), also called Architecture Decision Logs, can collect all queries in a repository. This will allow everyone to see the questions that have already been asked and the decisions that were taken – and, in the process, cut down on the number of similar questions being asked.
We explore how architecture can support Lean development in more detail in our latest guide The Role of Architecture in Lean Software Development. Download it here or get in touch with our expert team to find out more.