1. We craft code
    • We write tests (maybe)
    • We write examples of use (unlikely)
  2. Then we write documentation
  3. Then we discover design problems
  4. It's too late to fix the code and the documentation doesn't make sense.

Solution:

Craft code and documentation together