The increasing scale and complexity of long-lived systems highlights the role of architecture in balancing the need to prepare a system for future modifications with the need to provide immediate capability. There has been a shift in recent years toward adopting software development processes that claim to accelerate delivery of technical capabilities in the face of an uncertain future.
While Agile software development techniques provide some guidance for quick capability delivery, they do not account for unanticipated interactions within complex unprecedented systems, either during their initial development or as they evolve over their lifespan. On the other hand, too much upfront architecting can compromise the rapid delivery of capabilities. Techniques for determining the right balance of architecture and agility do not currently exist, but are vital to the ongoing debate about the utility of Agile methods.
Specific tasks under investigation this year are
Agile Architecting
Enabling Agility Through Architecture, an SEI whitepaper originally published in Crosstalk in November 2010.
Analysis and Management of Architectural Dependencies in Iterative Release Planning, to be published in Proceedings of the Working IEEE/IFIP Conference on Software Architecture (WICSA) 2011.
Managing Technical Debt in Software-Reliant Systems, published in Proceedings of the Workshop on the Future of Software Engineering Research (FoSER), November 7–8, 2010, Santa Fe, New Mexico, USA.
Agile Development & Software Architecture - Crossing the Great Divide, an SEI webinar.
Learn more about how the SEI works with Agile methods and principles on the SATURN Network blog.
Architecture Support for Testing
Learn more about the SEI's work in architecture support for testing on the SATURN Network blog.
For more information