...

/

Key Principle: Support Large Agile Projects Through Architecture

Key Principle: Support Large Agile Projects Through Architecture

Learn some architectural approaches that support small teams on large projects.

For a system’s architecture to support completely partitioning the work, some architecture work must be done. Some older systems can evolve toward a loosely coupled architecture, but for new systems the implication is that architecture work must be done up front to partition the work for multiple small teams.

Some Agile teams will balk at the idea of doing “BDUF” (Big Design Up Front), saying that it “isn’t Agile.” But as Stephen Jay Gould implied, when you take an approach whose core emphases cluster around keeping projects small and try to make it work for projects that are large, something has to give. You can’t change nothing and expect projects to scale successfully.

If Conway’s Law is fully considered, the only factor that really needs to be modified is the emphasis on emergent design and the planning needed to support that. A focus on up-front architecture with a goal of allowing work to be completely partitioned will keep teams small, which means the rest of the Agile emphases can remain. The focus on emergent design can also still remain within the highly partitioned areas in which each small team is working.

It is not coincidence that the focus on small Agile teams has coincided with the emergence of microservices architecture. The goal of microservices architecture is to structure an ...