Before writing any code or planning solutions, you must first understand what problem you're trying to solve. Analysis involves understanding requirements, identifying inputs/outputs, and recognizing constraints. Planning algorithms (B) comes after analysis, desk-checking (C) validates the algorithm, and coding (D) is the implementation phase.