ArtsAutosBooksBusinessEducationEntertainmentFamilyFashionFoodGamesGenderHealthHolidaysHomeHubPagesPersonal FinancePetsPoliticsReligionSportsTechnologyTravel

What does an Agile Solution Architecture need to record?

Updated on August 25, 2016

Discard the architectural dogma

A good Solutions Architect looks after technical soundness and integrity of the solution the same way as good Project Manager looks after schedule and budget constraints.

With software engineering moving towards agile methodology's, the effort for IT projects is shifting away from discreet design and build phases and towards a blended model whereby the design and build occur simultaneously

Lets discard architectural dogma, frame up how solutions architecture could work within a agile framework.

Who is the Agile Solutions Architect (ASA)?

Agile Solution Architect (ASA) is a team member in a scrum team involved in the delivery of the sprint increment. The ASA has prominent roles in the following scrum activities:

  • Grooming – Involved as a team member giving input into stories and the estimation process

  • Sprint tasks – The ASA mentors and guides the design effort, note there is no requirement that they do all the actual design, as this is against the ethos of scrum (team member role specialisation), but as an experienced designer they must influence and guide the process Communicating to the architecture to architectural stakeholders (product owner, project stakeholders, and development team) the vision, the trade-offs made and the current status of how far along the implementation of the architecture is. Updating architectural work products; updating models, recording significant decisions.

  • Planning meeting – as a team member the ASA assists in the decomposition and estimation process

The ASA in a scrum team

High-performing scrum teams are highly collaborative; they are also self-organizing. The team members doing the work have total authority over how the work gets done. The team alone decides which tools and techniques to use, and which team members will work on which tasks. The theory is that the people who do the work are the highest authorities on how best to do it. Similarly, if the business needs schedule estimates, it is the team members who should create these estimates.

A scrum team possess all of the skills required to create a potentially shippable product.

Most often, this means we will have a team of specialists, each with their own skills to contribute to the team's success. However, on a scrum team, each team member's role is not to simply contribute in their special area.

The role of each and every team member is to help the team deliver potentially shippable product in each sprint. Often, the best way for a team member to do this is by contributing work in their area of specialty.

Other times, however, the team will need them to work outside their area of specialty in order to best move backlog items (aka user stories) from "in progress" to "done."

What we are describing is a mindset change from "doing my job" to "doing the job." It is also a change in focus from "what we are doing" (work) to what is getting done (results).

You are building a solution to a valuable business problem, but may still be unclear about what the actual solution is

Describe the reason for the problem (business problem) and what the current expected outcome is, based on this you can describe a System Metaphor, this is a simple shared story of how the system could work, a metaphor.

This story typically involves a handful of components, interactions and patterns that shape the core flow of the system being built.

Solution Architecture is not Software Architecture so the correct level of abstraction is the system of systems level, or how multiple systems interact.

The picture is not the solution design, the reasons for drawing that particular picture and the picture is the solution design. (Blueprint and Decisions)

Document the reasons why you have included any component into your system metaphor by assigning clear responsibilities to each component. The component, its responsibilities within the design and the interactions it has with other components fill out the system metaphor (CRC – Component (Class) Responsibility Collaborator)

The pace of an agile project dictates that risks and problems are overcome as quickly was possible, as a result choices are made, some of these choices drive th

Think of these as Architecturally Significant Decisions. Architecturally Significant Decisions (ASD) are ones that have the highest impact on costs and risks of the system and its delivery. (An agile project is both design and delivery, so they are different sides of the same coin) Enterprise and Non-functional requirements fit in well here.

The solution architect is a stakeholder the product owner collaborates with when building out the user stories during the story workshop meeting. It is the responsibility of the solution architect to advise on costing and risk mitigation. The solution architect is responsible for driving the agenda on critical architectural decisions and for steering the product owner towards the area of optimal cost and risk.

What to do with the risks and issues that are generated out of the agile process

If they relate to an ASD their significance to that decision must be recorded

Plans and low level system designs change often during the sprint, it is impossible to record all of this

Solution Architecture should be minimal; you should keep the overview of the whole system coherent.

The solution design should be limited to the areas with critical impact, thus leaving a maximum of design space for other team members.

The as built components and the interfaces between them as well as the rationale leading to this architecture must always be clear

Anatomy of a Agile Solution Architecture

Section
Title
1
System Metaphor
2
Architecturally Significant Decisions
2.1
Risks
2.2
Issues
3
As Built Architecture
3.1
Description
3.2
Rational

What`s Architecture?

Architecture is the fundamental organization of systems embodied by their components, their relationships to each other and to the environment, and the principles guiding their design and evolution.

Let's take this definition apart and focus on its key elements to make sure we're all on the same page:

  1. Organization of systems. In other words, architecture is something you do with systems. You organize them. Architecture is something you do, not something you buy

  2. Environment. If you look at the enterprise as a system, what is the environment of its component systems? The people—the business itself. Many architects get this point wrong when they think of the systems as consisting of technology, where the people use the technology, as though they were separate from the architecture. In fact, the people are part of the system

  3. Evolution. Change is built into the definition of architecture. If you think of architecture as some diagram you can put on your wall, be it your data architecture, Java architecture, security architecture, or what have you, you're missing the big picture. Such a diagram is at best a static snapshot in time of your architecture. To accurately represent architecture, you must include the principles for the evolution of that diagram.

Yes, you have to design the applications, middleware, networks, and so on—but those are all simply means to an end. It's how people use those components to achieve the goals of the business that is the true focus of the architect.

working

This website uses cookies

As a user in the EEA, your approval is needed on a few things. To provide a better website experience, hubpages.com uses cookies (and other similar technologies) and may collect, process, and share personal data. Please choose which areas of our service you consent to our doing so.

For more information on managing or withdrawing consents and how we handle data, visit our Privacy Policy at: https://corp.maven.io/privacy-policy

Show Details
Necessary
HubPages Device IDThis is used to identify particular browsers or devices when the access the service, and is used for security reasons.
LoginThis is necessary to sign in to the HubPages Service.
Google RecaptchaThis is used to prevent bots and spam. (Privacy Policy)
AkismetThis is used to detect comment spam. (Privacy Policy)
HubPages Google AnalyticsThis is used to provide data on traffic to our website, all personally identifyable data is anonymized. (Privacy Policy)
HubPages Traffic PixelThis is used to collect data on traffic to articles and other pages on our site. Unless you are signed in to a HubPages account, all personally identifiable information is anonymized.
Amazon Web ServicesThis is a cloud services platform that we used to host our service. (Privacy Policy)
CloudflareThis is a cloud CDN service that we use to efficiently deliver files required for our service to operate such as javascript, cascading style sheets, images, and videos. (Privacy Policy)
Google Hosted LibrariesJavascript software libraries such as jQuery are loaded at endpoints on the googleapis.com or gstatic.com domains, for performance and efficiency reasons. (Privacy Policy)
Features
Google Custom SearchThis is feature allows you to search the site. (Privacy Policy)
Google MapsSome articles have Google Maps embedded in them. (Privacy Policy)
Google ChartsThis is used to display charts and graphs on articles and the author center. (Privacy Policy)
Google AdSense Host APIThis service allows you to sign up for or associate a Google AdSense account with HubPages, so that you can earn money from ads on your articles. No data is shared unless you engage with this feature. (Privacy Policy)
Google YouTubeSome articles have YouTube videos embedded in them. (Privacy Policy)
VimeoSome articles have Vimeo videos embedded in them. (Privacy Policy)
PaypalThis is used for a registered author who enrolls in the HubPages Earnings program and requests to be paid via PayPal. No data is shared with Paypal unless you engage with this feature. (Privacy Policy)
Facebook LoginYou can use this to streamline signing up for, or signing in to your Hubpages account. No data is shared with Facebook unless you engage with this feature. (Privacy Policy)
MavenThis supports the Maven widget and search functionality. (Privacy Policy)
Marketing
Google AdSenseThis is an ad network. (Privacy Policy)
Google DoubleClickGoogle provides ad serving technology and runs an ad network. (Privacy Policy)
Index ExchangeThis is an ad network. (Privacy Policy)
SovrnThis is an ad network. (Privacy Policy)
Facebook AdsThis is an ad network. (Privacy Policy)
Amazon Unified Ad MarketplaceThis is an ad network. (Privacy Policy)
AppNexusThis is an ad network. (Privacy Policy)
OpenxThis is an ad network. (Privacy Policy)
Rubicon ProjectThis is an ad network. (Privacy Policy)
TripleLiftThis is an ad network. (Privacy Policy)
Say MediaWe partner with Say Media to deliver ad campaigns on our sites. (Privacy Policy)
Remarketing PixelsWe may use remarketing pixels from advertising networks such as Google AdWords, Bing Ads, and Facebook in order to advertise the HubPages Service to people that have visited our sites.
Conversion Tracking PixelsWe may use conversion tracking pixels from advertising networks such as Google AdWords, Bing Ads, and Facebook in order to identify when an advertisement has successfully resulted in the desired action, such as signing up for the HubPages Service or publishing an article on the HubPages Service.
Statistics
Author Google AnalyticsThis is used to provide traffic data and reports to the authors of articles on the HubPages Service. (Privacy Policy)
ComscoreComScore is a media measurement and analytics company providing marketing data and analytics to enterprises, media and advertising agencies, and publishers. Non-consent will result in ComScore only processing obfuscated personal data. (Privacy Policy)
Amazon Tracking PixelSome articles display amazon products as part of the Amazon Affiliate program, this pixel provides traffic statistics for those products (Privacy Policy)
ClickscoThis is a data management platform studying reader behavior (Privacy Policy)