Six parts on design before code: draw what the user does, then the parts of the system, then the order of events, and pick the right shape for your data with evidence rather than guesses.