Map the failure scenarios before writing the happy path. Use before implementing any feature that touches I/O, user input, external services, concurrency, or persisted state. Also use when adding error handling, when a bug report suggests an unhandled edge case, or when reviewing whether a design is production-ready. Covers both "what breaks" and "how would we even find out".