Model business behavior, assign clear ownership, control information boundaries, and design the smallest maintainable architecture before implementing or refactoring code. Use for requirement modeling, new feature design, implementation planning, legacy-code refactoring, architecture reviews, UI/business separation, state and lifecycle ownership, repository or integration boundaries, workflow decomposition, dependency direction, and deciding whether a design pattern is justified.