Agile Architecture Method Explained - Introduction

From Guidance Share

Jump to: navigation, search

- J.D. Meier , Alex Homer, David Hill, Jason Taylor , Prashant Bansode , Lonnie Wall, Rob Boucher Jr, Akshay Bogawat.


Contents

Summary

This guide summarizes the patterns & practices approach to agile architecture design. An agile architecture approach is lightweight, iterative and leverages an understanding of the key hotspots where architecture and design mistakes are most often made. Agile architecture activities include identification of architecture objectives, determination of architecturally significant scenarios, identification of your application type, understanding deployment constraints, choice of architectural styles, determination of technology options, identification of key hot spots, and creation of candidate solutions. These activities are iterative, with an understanding that you may not know everything you need to know at the start and will adjust your approach as additional information becomes available.


Why We Wrote This Guide

We wrote this guide to accomplish the following:

  • To help you design more effective architectures on the .NET platform.
  • To help you choose the right technologies
  • To help you make more effective choices for key engineering decisions.


Overview

This guide describes an approach for agile architecture design. It describes the key set of architecture activities that you should use to progress from architecture objectives through architectural spikes and candidate architectures. This guide presents an overview of the approach, explains the main activities and how to adopt them. For more detailed guidance on application architecture on the .NET platform, see the patterns & practices Application Architecture Guide 2.0 at http://www.codeplex.com/apparchguide.

This guide consists of the following chapters:

  • Chapter 1, “Agile Architecture Method,” summarizes the patterns & practices approach to agile architecture.
  • Chapter 2, “Step 1: Identify Architecture Objectives,” summarizes the patterns & practices approach to architecture objectives by explaining what they are and why you should use them. Knowledge of your architecture objectives is essential to the success of your application architecture.
  • Chapter 3, “Step 2: Identify Key Scenarios,” summarizes the patterns & practices approach to architecturally significant scenarios. Architecturally significant scenarios give you key insight into the scenarios you need to address for your application to succeed and scenario impacts across layers and components.
  • Chapter 4, “Step 3: Application Overview,” summarizes the patterns & practices approach to building an application overview. Creating an application overview is the most in depth activity in the agile architecture process and includes key choices such as application type, deployment constraints, architectural style and relevant technologies.
  • Chapter 5, “Step 4: Key Hot Spots,” summarizes the patterns & practices approach to identifying the hot spots or areas of your architecture where mistakes are most likely. Key hot spots represent cross cutting concerns, as represented in the architecture frame, as well as quality attributes such as performance and security.
  • Chapter 6, “Step 5: Candidate Solutions,” summarizes the patterns & practices approach to building candidate architectural solutions. This step leverages all of the previous steps to create a potential architecture that you can test against key scenarios, hot spots, architectural objectives, etc This candidate architecture will be used as the baseline for the next iteration of the process.
  • Chapter 7, “Reviewing Your Architecture,” outlines the most common, industry standard approaches to reviewing your candidate architecture.
  • Chapter 8, “Communicating Your Architecture,” outlines the most common, industry standard approaches to communicating your architecture with key stakeholders and members of your team.


Features of This Guide

  • Framework for application architecture. The guide provides a framework that helps you to think about your application architecture approaches and practices.
  • Architecture Frame. The guide uses a frame to organize the key architecture and design decision points into categories, where your choices have a major impact on the success of your application.
  • Principles and practices. These serve as the foundation for the guide, and provide a stable basis for recommendations. They also reflect successful approaches used in the field.
  • Holistic. If you do read the guide from beginning to end, it is organized to fit together. The guide, in its entirety, is better than the sum of its parts.
  • Subject matter expertise. The guide exposes insight from various experts throughout Microsoft, and from customers in the field.
  • Validation. The guidance is validated internally through testing. In addition, product, field, and support teams have performed extensive reviews. Externally, the guidance is validated through community participation and extensive customer feedback cycles.
  • What to do, why, how. Each section in the guide presents a set of recommendations. At the start of each section, the guidelines are summarized using bold, bulleted lists. This gives you a snapshot view of the recommendations. Then each recommendation is expanded to help you understand what to do, why, and how.
  • Technology matrices. The guide contains a number of cheat sheets that explore key topics in more depth. Use these cheat sheets to help you make better decisions on technologies, architecture styles, communication strategies, deployment strategies, and common design patterns.
  • Cheat sheets. The appendix of this guide contains a number of cheat sheets which go into key topics in more depth. Use these cheat sheets to help you make better decisions on technologies, architecture styles, communication strategies, deployment strategies, and common design patterns.


Audience

This guide is useful to anyone who cares about application design and architecture. The primary audience for this guide is solution architects and development leads, but any technologist who wants to understand good application design on the .NET platform will benefit from reading it.


Ways to Use the Guide

You can use this comprehensive guidance in several ways, both as you learn more about the architectural process and as a way to instill knowledge in the members of your team. The following are some ideas:

  • Use it as a reference. Use the guide as a reference and learn the architecture and design practices for the .NET Framework.
  • Use it as a mentor. Use the guide as your mentor for learning how to design an application that meets your business goals and quality attributes objectives. The guide encapsulates the lessons learned and experience from many subject-matter experts.
  • Use it when you design applications. Design applications using the principles and practices in the guide, and benefit from the lessons learned.
  • Create training. Create training from the concepts and techniques used throughout the guide, as well as from the technical insight into the .NET Framework technologies.


The Team Who Brought You This Guide

This guide was produced by the following .NET architecture and development specialists:

  • J.D. Meier
  • Alex Homer
  • David Hill
  • Jason Taylor
  • Prashant Bansode
  • Lonnie Wall
  • Rob Boucher Jr.
  • Akshay Bogawat
Personal tools