How many times have you…
- Been surprised by new requirements?
- Begged for design docs to clarify inherited code?
- Written comments but feared someone would miss a subtlety?
- Struggled to grok a messy state machine or tangle of threads?
- Sanitized input to a function, unable to trust preconditions?
- Wondered if coders cared at all about the user experience?
- Felt a communication gap between execs/sales/PM/dev/PS?
All of these experiences are symptoms that the why of software development — its intent — is missing or unclear.