Our business today are more and more transparently relies on IT systems without even knowing what are those systems doing behind the scene for us. So it means that IT systems are more and more critical to us and our customers while also keeping more and more complex and distributed over time and spaces. These facts make the risk of business operation higher and complicated and harder for risk management, so we must have a process to reduce/avoid/manage the risks from the starting point and also help in doing it in the end-to-end or whole lifecycle of the IT systems.
Architect is the very important role in this picture because she will be the person who realize the requirements into the solution and govern it through the development to deployment and support it until the end-of-life of the system. In order to do this effectively from the start, we then need to have a step in the design process to review, rethink, refine the design at least one time before releasing the design to the production line which we call it “Architecture Review Workshop” in this post.
What is it?
“Architecture review workshop” will be a lightweight meeting/brainstorming event by doing (preferably) face-to-face dialectic discussion to go over various design decisions to get/review/confirm the decisions and to review and evaluate the designs. It means the discussions and works in the workshop will be for the design and architecting only, any other peripheral works could be done by remote meetings and teleconferencing.
This workshop is meant to be a lightweight process, we should keep in mind to focus of only related peoples and do just enough things so we can really focus on thinking and discussing.
Why do we need it?
- Setting up this important step in the process to be a visible step so the team and related parties will always aware and join the discussion together in one time.
- Because the complex system contains high risks and costs, this process will be an important opportunity to review, reduce, avoid, and manage those risks and costs.
- This workshop is a big chance to get an agreed picture on reviewing, committing, and guarantee the quality attributes of the architecture through the design process.
Where is it in the whole architecture design process?
If we look at the high level of the IT architecture design process, we can write it in an easy steps more or less like this:
- Project initiation and business missions envision
- Gather and analyse problems, requirements, and context
- Identify the architectural drivers and define the details
- Analysis and create the core concepts and models – business and analysis models
- Identify opportunities of reusing the architectural assets
- Analysis and create candidate schematic designs
- Review design options and decisions, and select the most suitable design e.g. Active Review for Intermediate Designs (ARID), …
- Refine and complete the design, its presentations, and documents
- Formal review and accept/sign-off the design
- Maintain the design and its documents
This list does not cover the organization and team management aspects of the whole architect team but rather focusing on design works in a project.
What are we going to do?
We are going to only review, discuss, and think only about the design and important architectural decisions in this workshop:
- Review and evaluate the intermediate or schematic designs and select the most suitable design
- Review the important architectural decisions and finalize the answers to those decisions.
We will discussion about the definition of an “important” architectural decision later. The reason that we try to use the workshop to only for review and finalize the decisions is because the studies and preliminary analysis for the decisions and also its possible answers should be made and discussed prior to the meeting for quite a while, so the participants should already have the background knowledge for all or most parts of the problem to be reviewed.
- Review the big picture of the system/inter-system and the roadmap and timeline of the architecture.
What are the outputs?
- The selected or most suitable design.
- The agreed/finalized answers to the important design decisions.
- Optionally, we may also have new or updates in actions or tasks or even questions and issues.
How are we going to do it?
The high-level steps for reviewing the designs for a project of an architect will be as following:
- The architect submits the review works with the Facilitator and Chief Architect to identify the best reviewers.
- The architect prepares a briefing explaining the design, which may also used to have some preliminarily or initially reviewed and discussed with chief architect, peer architects, and important stakeholders before.
- The architect presents the overview to the reviewers and walks through examples of using the design. Minutes-taker captures questions and answers.
- The reviewers and the architect brainstorm scenarios for using the design to solve problems and requirements.
- If the design performs well under the adopted scenarios and requirements, then it must be agreed that the design has passed the review.
- Minutes-taker records issues, problems, and places where the stakeholders get stuck.
- Set new appointment and distribute the minutes.
How long will it take?
Around one day, or one day and a half at the maximum for one project and one architect.
When we should do it?
At least one time before submitting the design to the production line.
How often we have to do it?
At least one time in a phase but we could have it as many as necessary if our system is very complicate or critical.
Who will join this workshop?
Here are the roles that will participate in the workshop:
- Moderator/Timekeeper/Minutes-taker/Facilitator
- Chief Architect/Head of Architect – he is my boss in this case …
- Project/Solution/Design Architect(s)
- Problem Statement/Theme Architect
- Contribute Architect(s)
- Review Architect
- Requirement Owner(s)/Product Manager(s)
- Other stakeholders that related to that review
What are the inputs?
The inputs for this process is the list of the following artefacts:
- List of the requirements in the scope of that design phase
- List of the prioritized non-functional requirements and top-five quality attributes
- Schematic architecture design documents (see “What are included in the design and its documents to be used in this workshop?” at the bottom of this post)
What are the tools and resources that we need to use?
- Central online point to post the notes and discussions and every stakeholders can subscribe to receive the change notifications e.g. Wiki, …
- Meeting room with whiteboard and projector (or virtual meeting facilities that can share presentation over the screen)
- Voice/video recorder + digital camera [Optional]
What are included in the design and its documents to be used in this workshop?
You may argue that below list seems many but actually almost all of us are already unintentionally do it while we are designing and thinking in our own notes. So what do we need to do it to just write them down or copy and paste them into the same presentation or document file to present them in the meeting:
- Architectural Drivers – E.g. list of architectural significant functional and non-functional requirements, quality attributes, …
- Architectural Context – E.g. technical governance and corporate IT specifications and standards, compliance checklists, design specifications of the related systems, …
- Gaps Analysis [Optional]
- Impacts Analysis
- Design Assumptions
- Candidate design options and its presentations/documents + detailed IA, DA, R&M specific of each candidate.
- Risk and Mitigation list
- Notes – E.g. memo on the rationales behind design decisions, detailed diagrams, research papers, pending questions and issues
- Design prototypes [Optional]