Jump to content

Agile architecture

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Daveparsonsnz (talk | contribs) at 21:04, 28 October 2016 (added some referenced text). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Agile architecture means how enterprise / system / software architects apply architectural practice in agile software development. According to the SAFe framework, the principles of agile architecture are:

  1. Design emerges. Architecture is a collaboration. (intentional architecture)
  2. The bigger the system, the longer the runway (architectural runway)
  3. Build the simplest architecture that can possibly work (established design principles)
  4. When in doubt, code or model it out (spikes, prototype, domain and use case models)
  5. They build it, they test it (design for testability)
  6. There is no monopoly on innovation (teams, hackathons) - Facebook's Like button was conceived as part of a hackathon
  7. Implement architectural flow (architectural epics and the portfolio kanban) - the portfolio Kanban goes through funnel, review, analysis, portfolio backlog and implementing

Waterman, Nobel and Allan (2015) [1]explored the tensions between spending too little time designing an up-front architecture, increasing risk, and spending too much time, negatively impacting of the delivery of value to the customer. They identify six forces that can affect agile architecture: Requirements instability, technical risk, early value, team culture, customer agility and experience. These forces may be addressed by six strategies; Respond to change, address risk, emergent architecture, big design up front and use frameworks and template architectures.

  1. ^ Waterman, Nobel and Allan. (2015). How Much Up-Front? A Grounded Theory of Agile Architecture. In Proceedings of the 37th International Conference on Software Engineering