Problem Statement
When teams start building software, confusion arises about what to design first and how detailed the design should be. Without clear separation, developers may waste time on unnecessary details too early or miss important high-level decisions, causing delays and rework.