Apply systematic problem decomposition and algorithm design to create clear, implementable solutions that can be understood by both technical teams and clients.
Decompose the problem with clear abstraction and refinement, show reusable components and communicate algorithms using appropriate tools (flowcharts or code).
Apply logical thinking with well-defined steps and use consistent structure and naming conventions. Communicate the design so a client can make decisions and a third party could implement the solution.
Hide unnecessary complexity while exposing essential features
Focus on what the system needs to do, not how it does it initially
Break complex problems into smaller, manageable parts
Divide the main problem into sub-problems that can be solved independently
Identify similarities and common patterns to create reusable solutions
Look for recurring elements that can be standardized and reused
Create step-by-step solutions that are logical, efficient, and clear
Define precise processes that can be implemented by any developer
Algorithms must be unambiguous and easy to follow
Steps should follow a logical sequence with clear connections
Include enough detail for implementation without being overly specific
Use diagrams effectively to supplement textual descriptions
Comprehensive design documentation including system breakdown, component designs, and detailed algorithms
Format: Document with diagrams (flowcharts, system diagrams, wireframes)
Clear written explanations of how the system works, component interactions, and design rationale
Format: Written document explaining design decisions and system architecture