Problem-solving strategy for System Design
2 min readJan 6, 2021
Why is it important to know how to solve System Design problems?
System design is the process of solving complex issues regarding architecture, data, and interfaces for a system. It is needed to develop a product. To bring any product from zero to 100 requires a solid system design, to allow your product to be delivered successfully to your customer.
A solid system design will minimize customer dissatisfaction.
How to solve a System Design Problem?
Determine the Purpose of the project
Determine the Requirements, Expectations, and Goals of the system
- Includes functional requirements
- Non-functional requirements
- Extended requirements (secondary objectives given extra time or budget)
Fermize the Problem
- Once you have determined the problem that you want to solve. Follow the following process:
- Write the key terms that regard the problem
- Write the smallest questions needed to solve the problem
- Write assumptions made and facts found, regarding the smallest questions
- This step involves researching for information, to solve the smallest questions
- Write and perform calculations using the facts & assumptions
- Generate a point form conclusion that provides an answer to the original problem
Define system APIs
- What inputs and outputs are expected from the system
Define database schema
- Make assumptions about the data that will be stored
- Determine major data groups
- Determine a key to access each major data group
- Determine what information should be stored inside each major data group
- Determine the kind of database that should be used to store the major data groups
Determine how to solve the main problem
- Involves system design and algorithm knowledge
Then
- Add additional features like data partitioning, cache, load balancing, security; to enhance the system design.
Conclusion
I hope this formulized strategy helps you to solve a system design problem in an interview or your place of work.