A system’s architecture defines its flexibility—the ease with which changes to the system’s structure may be made. Systems may possess an internal structure that is relatively complex to describe—especially after many changes. In addition, some changes may require several iterations before stakeholders converge on a final design choice. There is currently no unified mathematical theory that captures these factors. We developed metrics for flexibility, descriptive complexity, and rework potential defined on graph-based representations of a system’s structure. We applied these metrics to four idealized generic system architectures: Tree-structured hierarchies are easy to describe and require minimal design iteration. However, they permit relatively few changes, unless the underlying architecture itself is changed. Furthermore, each such change adds significant complexity. Grid networks are more flexible than trees, but also more descriptively complex. Grids also require some degree of design iteration between stakeholders. Teams are extremely flexible but the requirement for consensus (e.g., due to cognitive limits among humans) restricts their size. Layered hierarchies possess moderate flexibility and require fewer iterations than corresponding grids and teams, although they can be difficult to describe succinctly. Our findings suggest that no architecture is ideal under all circumstances; rather, each has strengths and weaknesses that can be exploited in different environments.