The Architect’s Edge: Mastering the Assessment Process in Consulting Architecture

In the field of consulting architecture, the assessment process is a critical step for evaluating and improving a client’s system architecture. This process closely resembles the discovery phase but expands to include a broader group of stakeholders and technical experts to conduct a thorough evaluation. Below, we outline the key stages and components of an effective assessment.

Architecture assesment


Preparation: Setting the Stage

The assessment begins with meticulous preparation. This involves creating a comprehensive agenda to ensure all necessary topics are covered during the process. Key activities include:

  • Gathering Requirements: Similar to the discovery phase, architects collect requirements through workshops, such as the Quality Attributes Workshop, to understand the system’s needs.

  • Reviewing Existing Architecture: Architects examine the current architecture, accessing critical resources like source code, cloud monitoring, logging systems, security protocols, and performance tests.

  • Stakeholder Engagement: A wider group of stakeholders, including technical experts from the client’s side, is involved to provide insights into the system’s current state.

Preparation also involves sending a questionnaire in advance to identify key technical experts to interview and to request access to essential systems, such as the client’s network, source code, documentation, or cloud tools. This step is crucial to ensure architects have the necessary data to conduct a thorough evaluation.

On-Site Activities: Kick-Off and Data Collection

The on-site phase begins with a kick-off meeting, where architects introduce the agenda, review the questionnaire, and align expectations with the client. The goal is to maximize efficiency during the limited time of the on-site visit. Key activities include:

  • Business Case and Constraints Analysis: Architects work with the client to understand business goals, system constraints, and use cases.

  • Quality Attributes Workshop: This workshop identifies non-functional requirements, such as scalability, security, and performance, that the system must meet.

  • Architecture Review: Architects assess the current architecture, often relying on client experts to provide insights into architectural decisions. However, many organizations lack comprehensive documentation, requiring architects to reconstruct this information themselves.

Analysis: Quantitative and Qualitative

The assessment involves two types of analysis to evaluate the system comprehensively:

Qualitative Analysis

This focuses on non-functional requirements and evaluates whether existing architectural decisions align with current system goals. Architects identify trade-offs and risks, such as conflicts between quality attributes (e.g., performance vs. security). These findings form the basis for recommendations to mitigate risks or resolve trade-offs.

Quantitative Analysis

Quantitative analysis complements the qualitative approach by leveraging tools to assess the system’s code and performance. Common tools include:

  • SonarQube or Checkmarx for code analysis.

  • Structure101 or Lattix for architectural analysis.

  • BlazeMeter for quick performance tests with minimal setup.

  • Open-source security tools (e.g., OWASP ZAP) to identify vulnerabilities like the OWASP Top 10.

These tools help architects quickly build a clear picture of the system’s state, identifying issues and risks that feed into the recommendation phase.

The Assessment Report: A Key Deliverable

The assessment report is the primary artifact of the process, summarizing the findings and providing actionable recommendations. It includes:

  • Current State: A snapshot of the existing architecture and requirements.

  • Analysis Results: Insights from both qualitative and quantitative analyses.

  • Recommendations: Solutions to mitigate risks, resolve trade-offs, and address high-priority issues.

The report is presented to the client for approval, after which the process may transition to implementation based on the recommendations or conclude if the client’s consultation needs are met.

The Role of the Architect and Supporting Teams

The architect plays a central role in orchestrating the assessment, supported by a team of experts, including:

  • Performance Engineers for performance testing.

  • DevOps Specialists for cloud and infrastructure analysis.

  • Security Teams for penetration testing and vulnerability assessments.

  • UX Experts for usability evaluations, if required.

Additionally, sales or client partners assist with on-site coordination, cost estimation, and presenting the final report.

Tools and Templates: Enhancing Efficiency

Architects rely on templates to streamline repetitive tasks, such as report preparation, and predefined questionnaires to ensure consistent and thorough data collection. Maintaining a catalog of questions tailored to security, performance, and availability helps architects identify system bottlenecks efficiently.

Conclusion

The assessment process is a structured yet flexible approach to evaluating and improving a client’s architecture. By combining preparation, stakeholder collaboration, and rigorous analysis, architects deliver actionable insights that help clients mitigate risks and achieve their system goals. In future discussions, we’ll dive deeper into methodologies like the Quality Attributes Workshop, architectural trade-off analysis, and examples of quantitative and qualitative analyses.

Comments

Popular posts from this blog

How to conduct code reviews?

Why I Decided to Open Source?

My experience of using Github Copilot