Use the same terminology in your code as is used by your client.

Write your code’s methods and variables using the same words as used in the problem-space of your application. It’s much harder to write down why any given piece of code exists than it is to say what it does. As developers we are tempted to name our variables and methods based on what they do. Resist this and use the language of the problem domain. This will allow others to read your code and understand why it works the way it does. It will also ensure that there is less chance of communication mismatch between what the code does and what your client thinks it should do.

Rob Allen // @akrabat