Agile Architecting: Using Agile Principles to Agilitize the Architecting Process
June 2010 • Presentation
Amine Chigani of Virginia Tech discusses using Agile in the context of software architecture and the rationale that guided them to follow an Agile approach to architecting.
Software Engineering Institute
Agile is a philosophy (or a way of thinking) rather than a set of practices (e.g., TDD, Pair-Programming) and methods (e.g. XP, Scrum, Lean, FDD). From an architecture perspective, there is value in incorporating Agile principles (and some practices) into architecture-centric methods to accommodate changes in architectural drivers during the development of a large-scale system. In this talk, I briefly discuss the context of the architecture we are developing at Virginia Tech and the rationale that guided us to follow an Agile approach to architecting. Then, I demonstrate through examples from this ongoing project how Agile principles and some practices are eadily well-suited as architecture practices. Particularly, three Agile-like practices are adopted in the architecting process, including quality user stories, the ,architecture wallŠ concept, and architectural refactoring. Finally, I list three lessons learned from this effort and show how they can be applied in other development efforts.