Simple architectures are easier to communicate, build, deploy, operate, and evolve. Architectural simplicity is not easily encapsulated by one type of model or practice. Several practices can be applied in combination to drive simplicity. Agile practices stress simplicity. Architectural complexity can occur based on many factors such as design ability and focus, technology evolution, and organizational structure.