If you are designing an SDK/library/API, read these 25 rules by Matt Gemmell: