in consulting jobs or during interviews we hear the phrase “Architecture Design”?
Through this post, I take the opportunity to provide a quick understanding of what is “Architecture Design”.
The below list is highly comprehensive and this post is designed for a quick list of what is included in “Architecture Design”. Using the below list one can extend as broader and deeper based on their need to explain the “Architecture Design”.
Architecture Design includes:
- What will the “end target” look like
- How do we get there
- How do we maintain it
What will the “end target” look like?
- Objective or Goal
- What is the main objective or goal of the solution or architecture you are proposing
- What are the influences in developing the solution or architecture you are proposing
- How does it integrate with “other components” of the external systems or internal systems
- What assumptions are made in defining those objectives/goals
- What constraints it has during design or implementation or deployment or execution
- Quality
- What is the performance of the solution architecture
- How it manages scalability and availability – does it have the self-driven capability to support scalability and availability (say data-driven) and/or depend on external frameworks (say Kubernetes)
- Flexibility in extending the “new environment” to the “next-new environment”
- Adaptability to add new components without impacting the foundational design
- Is resilience in-built into the solution or relies on external technologies
- Behavior
- Does the solution meets all the business requirements
- How it alerts with appropriate messages to support the robustness of the business requirements
- How much automation can be done to business processes through the solution
- What regulatory and federal requirements the solution embraces in its behavior
How do we get there?
- Administration and Management
- If migrating from legacy / current to a new environment, then what are we moving to the new environment
- How are we moving to the new environment
- Project Management
- How are you phasing out in design and implementation of the solution
- How are you monitoring and controlling what you thought is what is getting developed
- What are the cost of the solution and how the budget is allocated periodically and each phase level
- What kind of skills and team are required to deliver the solution
- Methodologies
- What project methodology to adapt for “requirements engineering” and “solution development”? This could include Agile or Waterfall or Kanban or Scrum
- What DevOps approaches you will be adopting the solution (Blue-Green, Canary)
- What Architectural Patterns you will be following (client-server, MVC, streaming, hub-spoke, Plugin)
- How much of Cloud-Native services will be leveraged in the solution development and deployment
How do we maintain it?
- Monitoring
- How do we monitor whether the solution is working as expected
- Failure & Recovery
- How do we recover failed instances of the solution
- What is the Mean Time To Recovery (MTTR)
- What actions we should take to minimize the Mean Time to Resolve (MTTR)
NOTE: Security needs to be considered as the first level of thinking in all aspects, so nothing on security is specifically mentioned in the above
The above list is highly comprehensive and this post is designed for a quick list of what is included in “Architecture Design”. Using the above list one can extend as broader and deeper based on their need to explain the “Architecture Design”.