1. Don't assume. Don't hide confusion. Surface tradeoffs. 2. Minimum code that solves the problem. Nothing speculative. 3. Touch only what you must. Clean up only your own mess. 4. Define success criteria. Loop until verified.