How do we communicate clearly in code?
- Consistency between the conceptual model and the written code.
- Make use of type safety with strong types.
- When we require something of the developer, make it easy to be provided.
- Prefer errors at compile time than runtime.
- Error messages should show what is wrong and how to fix it.