Architecture Decision Records
Illustration sourced from Microsoft Powerpoint

Architecture Decision Records

While formulating the Architecture of a software solution, many decisions are taken after careful consideration of various factors that originate from the customer, Architect's tacit knowledge and the platform capabilities. But the rationale for taking a given decision is seldom documented. In other words, the design philosophy behind the architecture is rarely documented. While existing architects know, having worked closely with each other, what that philosophy or rationale was, if the architecture needs to be owned by another architect and designers in the future, they will have no clue about the thought process that went behind it. When an Architect leaves the organization, that knowledge goes along with the individual. Organizations cannot afford to let this happen. Many times the knowledge transfer exercise that takes place when an architect leaves the team or the organization, is very reactionary. An architect can easily miss certain important aspects that occurred in the very early stages of the delivery. As a result, a future architecture team who inherits the architecture will struggle to understand why the architecture is designed in a particular way.

The design philosophy behind the architecture is rarely documented.

Architecture Decision Records is a way by which this can be avoided. This may be an independent repository that architects can maintain or it may be part of a Solution Architecture Specification.

At a minimum, following details may be captured:

  • Architecture component or impacted area
  • Problem statement
  • Alternatives considered
  • Decision made
  • Rationale for the decision
  • Risks, if any, with the decision
  • Limitations, if any, with the decision

But why is this not followed or done effectively? There are multiple reasons:

  1. When a team is working under lot of delivery pressure, focus is generally on getting the solution out the door rather than worrying about who will maintain this in the future.
  2. Unless the delivery team is adequately staffed so that the Solution Architect can remain focused on such aspects, it is very difficult to find time to maintain this information. The cost pressure, ballooning scope, delivery delays, etc., contribute to dilute the focus on capturing these for posterity.
  3. Procrastination: Many times documentation gets lower priority over delivery commitment and hence the former is often pushed to the back burner. But the more this is delayed, the less one remembers the finer details to be captured. The risk of certain decisions being missed out also increases.
  4. Reactive approach: Many times this is done when the Architect is about to leave the team or the organization. In such cases it is often done in a rush, as a tick in the box exercise.

A software solution leading a healthy life is as important as it being born healthy. That is possible only if architects enable the inheritors of the software to read the former's mind to understand the philosophy of the architecture.

Lest the unspoken architecture philosophy ruin the software.
Chandresh Das

Enterprise / Solutions Architect | AWS, Agile, TOGAF 10 Certified | MBA | Ireland Stamp 4

1 年

To maintain Architecture Decision Records, I believe, we need to have an ARB (Architecture Review Board) to drive/implement this. Very few designers document the alternatives/rationale of the selected approach as part of their day to day work. My view to improve this, is to: (1) Have a centralized ARB to drive this process/review it. While auditing one would be able to question the decision made/prescribe an alternative. (2) Have a centralized portal, with a dedicated section for each project. (3) Region-wise architecture forums to access the above and make discussions. (4) Avoid archival of discussions as is the case nowadays with SharePoint/mailboxes. (5) Provision for a buffer to realign the design decisions post a review by the ARB. (6) Tough to implement this where people don’t share their experience. An ARB review will push them for it and also highlight the knowledge of the people involved in the architecture decision. This could also bring transparency in their skills assessment for performance reviews too. We need to bring in a culture of sharing and caring.

要查看或添加评论,请登录

Suresh Randadath的更多文章

  • While My City Gently Weeps

    While My City Gently Weeps

    It was the year 1977. I was on my first visit to Bengaluru (“Bangalore” back then) in August to visit my relatives.

    12 条评论
  • The janitor who put a man on the Moon

    The janitor who put a man on the Moon

    Janitor who put a man on the moon By Suresh Randadath JFK and the Janitor Back in 1961, President John F. Kennedy was…

    6 条评论
  • Containing Volatility of Scope - My Article and Webinar Recording

    Containing Volatility of Scope - My Article and Webinar Recording

    The video recording of the Webinar I delivered to IIM Bangalore Alumni Association members, covering contents of my…

    2 条评论
  • Making Software Less Fallible

    Making Software Less Fallible

    1. Introduction “If builders built building like programmers wrote programs, the first woodpecker that comes along will…

    2 条评论
  • Developing Organizational Technical Competency

    Developing Organizational Technical Competency

    By Suresh Randadath Technical employees who join a product company, for a role related to implementing a product, often…

  • Why Does Water Defy Gravity In Waterfall Model?

    Why Does Water Defy Gravity In Waterfall Model?

    Abstract In a classical Waterfall model of software solution delivery the water (used as a metaphor for “project…

    2 条评论

社区洞察

其他会员也浏览了