Agile Architecture Method Explained - Chapter 2 - Step 1: Identify Architecture Objectives

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.


Overview

Architecture objectives are the goals and constraints that shape your architecture and design process, scope the exercise, and help you to determine when you are finished. Consider the following key points as you identify your architecture objectives:

  • Understand your architecture goals at the start. The amount of time you spend in each phase of architecture and design will depend on these goals. For example, are you building a prototype, testing potential paths, or embarking on a long-running architectural process for a new application?
  • Understand who will consume your architecture. Determine if your architecture will be used by other architects, by developers and testers, by operations staff, or by management. Consider the needs of your audience to make your architecture more successful and impactful.
  • Understand your constraints. Determine your technology constraints, usage constraints, and deployment constraints. Understand your constraints at the start so that you do not waste time or encounter surprises later in your application development process.


Scope and Time

Architecture objectives are not the same as your application requirements. Instead, think of your architectural objectives as the goals you want to achieve in the architecture and design process. For instance, is your goal to build a prototype that you can use to get customer feedback on various application ideas? Is your goal to prove a path, experiment with options as quickly as possible? Is your goal to revise and improve an already existing architecture? Or perhaps your goal is to build a full blown design for a new application.

Based on your high-level goals for the architecture process, you can scope the amount of time to spend. For instance a prototype may only require a couple of days, or less, to design while a full blown architecture for a complex application could potentially take months to complete. Use your understanding of the objectives to determine how much time and energy to spend on each step and to get an understanding of what the end result will look like when you are done.


Purpose and Priorities

Use your architecture objectives to clearly define the purpose and priorities of your architecture. So possible purposes are:

  • Full blown application design?
  • Build prototypes?
  • Identify key technical risks?
  • Test potential paths?
  • Share models and understanding?

Each of these purposes will result in a different emphasis during design, varying time commitment, and will impact the results and design documentation that comes out of the process. For instance if you want to identify key risks in our authentication architecture, you will spend your time and energy identifying authentication scenarios, constraints on your authentication architecture, and possible authentication technology choices. If you are building a larger design, authentication will be just one of many other concerns you address and document solutions for.

Some examples of architecture objectives are:

  • Build a prototype to get feedback on the order process UI for a web application
  • Test three possible ways to map location data to search results
  • Build an customer order tracking application
  • Expose the authentication and authorization architecture for an application for security review
Personal tools