Agile Architecture Method Revisited

I posted an update to the Agile Architecture method on Shaping Software.  When I originally posted about the Agile Architecture method, I took some things for granted.  I thought the mapping to agile practices was more obvious than it turned out to be.  After taking more customers through the approach, I realized some things are worth more elaboration.  Here's some of the key things that stood out among the conversations:

  • Whiteboard technique.  You can use the Agile Architecture method as a simple technique to quickly sketch out your solutions on a whiteboard.  It's a guided process for rapid prototyping.  The value is that it helps you identify hot spots for technical risks more quickly than ad-hoc or random approaches.
  • Hot Spots.   Thinking of the cross-cutting concerns and quality attributes as hot spots seems to stick.   The intersection of the hot spots and stories is a key way to drive architectural concerns.
  • Prioritized scenarios.   The user, business, and system stories are a way to help focus and prioritize which hot spots matter most.
  • Mapping to agile practices.   You can use the Agile Architecture method to shape your candidate architecture, as well as prioritize technical risks and guide your architectural spikes for iteration 0.  For iterations 1 - N, you can use the Agile Architecture method to guide your design, implementation, and deployment inspections as well as identify hot spots in your design.  You can also use it to help you periodically refactor your design to meet your objectives for your various quality attributes, such as performance, security ... etc.  Most importantly, you can use the Agile Architecture method as a structured approach for addressing cross-cutting concerns and baking quality throughout the life cycle.
  • Just in Time Architecture.   One of the most important points about the Agile Architecture method is that it's just enough architecture and just in time architecture.  When you're creating your baseline or candidate solutions, it's a structured approach to help you prioritize technical risk and find the key hot spots.  During iterations, it's a way to provide just in time architecture by mapping relevant hot spots against your prioritized stories.