Architecture-aware Programming in Agile Environments
In this paper, we present industrial experiences made by combining two polarizing disciplines in software engineering: software architecture and agile software development. In particular, we show how architectural design decisions could be made, communicated, and sustained in an agile development environment by using a light-weight component framework. The concepts of the component framework have proven to be effective in addressing challenges such as connecting architectural design decisions to a system's implementation and making the architecture tangible for the developers. This is of utmost importance when the software is delivered in accordance with agile principles, such as "working software over comprehensive documentation" or "responding to change over following a plan".