There are several decision we make every day some conscious and many sub conscious. We have a bit more control over the conscious decisions we make in the work place from an Architecture perspective.
If you are into Development, Devops, Site reliability, Technical Product Owner, Architect or event a contract/consultant; you will be contributing to significant decision regarding engineering.
- What Database Technology should we use?
- What Search Technology will we use that can scale and do we leverage eventual consistency?
- What Container Orchestration or Micro-Service platform shall we use?
When making a decision in 2016, the decision may have been perfectly valid for the technology choices for that time. Fast forward to 2019 and if faced with the exact same decision your solution may be entirely different.
This is absolutely normal and this why it is important to have a “journal” where you outline the key reasons/rationale for a significant architecture decision.
It lays the foundation to effectively communicate with stakeholders and to “sell’ your decisions to others; even better to collaborate with others in a manner that is constructive to evaluating feedback and adjusting key decisions.
I keep a journal of decisions and use a powershell inspired naming convention of Verb-Noun. Secondly I will look at what is trending in the marketplace to use as a guide post. So for a logging/Tracking/Metrics stack, I might start off with reference materials.
https://12factor.net/logs – Generalized Concepts around the stack
https://docs.microsoft.com/en-us/azure/architecture/patterns/ – More specific towards the technology we will use
This allows me to keep on track with what the industry is doing and forces me to keep up to date with best practices.
Below is sample Decision Record that I use. I hope you may find it useful. I often use them when on-boarding consultants/contractors or new members of the team. It is a great way for them to gain insights into the past and where we going.
In the next blog post, I will discuss formulating an Architecture Roadmap and how to effectively communicate your vision with key stakeholders. Until then, happy decisions and do not be surprised when you sometimes convince yourself out of a bad decision that you made 😉
Now…How do I tell my wife we should do this at home when buying the next sofa?
TITLE (Verb-Description-# e.g. Choose-MetricsTracingLoggingStack)
<what is the issue that we’re seeing that is motivating this decision or change.>
<what boundaries are in place e.g. cost, technology knowledge/resources at hand>
<what is the change/transformation that we’re actually proposing or doing.>