Principles Of Agile Architecture

The benefits of Agile methods are becoming more obvious and compelling. While the most popular practices were developed and proven in small team environments, the interest and need for using Agile in the enterprise is growing rapidly. That’s largely because Agile provides quantifiable, “step-change” improvements in the “big three” software development measures – quality, productivity and morale. Confirming Agile’s benefits, hundreds of large enterprises, many with more than 1,000 software developers, are adopting the methodology.

Clearly, Agile has reached the early mainstream adopters in the software enterprise. As an industry, we must now prepare for the next challenge that these methods present. In our experience, the ability to successfully scale Agile beyond single teams depends on a number of factors.

In this paper we’ll discuss one of the factors, the role of “Intentional Architecture” in the development of enterprise-class systems built using agile methods and techniques. In order to gain a better understanding of this important practice, we’ll describe:

  • The context and challenges of large-scale system architecture in Agile
  • development
  • The need for Intentional Architecture to buttress emerging architecture
  • How the traditional systems architect can contribute to Agile teams

There are a number of governing principles teams can apply to the challenge of architecture development in large-scale systems. These governing principles will be covered in the section entitled Principles of Agile Architecture.