Solution Approach vs Design
In our Series on Model-Driven Anything, Solution Approach and Design are related yet distinct concepts in the development of systems, software, or projects.
Here’s a breakdown of each:
1. Solution Approach
The Solution Approach focuses on the overall strategy or high-level method for solving a particular problem. It is more abstract and involves selecting technologies, methodologies, and architectures that are best suited to address the problem.
Key Aspects:
- High-Level Overview: Describes how the problem will be addressed in a broad sense so that both Technical and Non-Technical Stakeholders can understand and collaborate.
- Focus on Feasibility: Evaluates possible options for solving the problem and their feasibility (e.g., whether to use cloud computing or on-premise solutions, or which platform or programming language to use or re-use).
- Stakeholder Alignment: Ensures the solution aligns with business goals, stakeholder expectations, and constraints like time and budget by mapping Realization to Requirements.
- Technology and Method Selection: Involves deciding on key components like architecture (e.g., microservices or monolithic), tools (e.g., frameworks or libraries), and methodologies (e.g., agile or waterfall).
Example:
For an e-commerce platform, the solution approach could include deciding to:
- Use a microservices architecture and/or re-use existing architecture
- Leverage cloud hosting for scalability, and which cloud may be best
- Select a NoSQL database for flexible schema
2. Design
The Design phase is about detailing the structure and components of the system once the solution approach has been established. It translates the abstract strategy into specific, actionable plans. There are typically two levels of design:
- High-Level Design (HLD): This gives a broad view of the system, breaking it down into components or modules. It defines how different components interact with each other but does not go into low-level details.
- Low-Level Design (LLD): Also known as Detailed Design (DD); This focuses on the specifics, such as class diagrams, database schema, API definitions, and how exactly the components will be implemented.
Key Aspects:
- Detailed Blueprint: Provides the specifics of how the solution will be implemented.
- Component Interaction: Describes how various parts of the system (e.g., databases, front-end, back-end, third-party services) will work together.
- Data Structures & Algorithms: Specifies the exact data structures and algorithms to be used.
- Technical Specifications: Includes technical details such as database schemas, class definitions, workflows, and interface details.
Example:
For the same e-commerce platform:
- HLD: Defines the modules like product catalog, payment service, and user management.
- LLD: Specifies how the product catalog service will interact with the database, details the API contract for user management, and defines how payment transactions will be processed.
Key Differences:
Aspect | Solution Approach | Design |
---|---|---|
Level of Abstraction | High-level, strategic | Detailed, actionable |
Focus | Feasibility, methodology, and high-level architecture | Detailed system structure and component interactions |
Output | Selected technology, architecture, and methodology | Blueprints, component designs, data structures, and technical specs |
Stakeholders | Business, management, architects | Developers, technical leads, architects |
Examples | Choosing cloud vs. on-premise, deciding on frameworks | Database schema, API design, class definitions |
What To DO When
NOTE: You cannot do Design without doing the Solution first. Solution is solving the problem, where the problem is the Scope, Requirements, or Issues. There is Current Mode of Operations (CMO) and their is Future Mode of Operations (FMO). Time and money is critical in the planning and solution decisioning! It is critical that effort is invested effectively.
In Summary
Solution Approach defines what strategy to use to solve a problem, while Design details how to implement that strategy. I like to put this, Solution Approach is the who to the what, where the what is the requirements/scope, while Design is the how to what following the Solution direction.
Comments
Post a Comment