When defining the interface between two sections of an application, don't forget to specify how errors are conveyed and how the receiving party can detect and handle them. Of course you should specify what errors might occur.

Notes from my mistakes...

(Note: Of course this sounds obvious, but I'll just make this a reminder to myself)