Behaviour: S - Situation T - Task A - Action R - Result Every thing needs to have metric/data point. Technical: I/O - Ask clarity for all inputs Edge Cases - check where the things can fail Coding - Code (Java/python/C++) Testing - Dry Run System Design: