On Writing a Spec

Grab some index cards and simulate your system. Have each user write down precisely what they want to tell/ask the system and have the person running the system hand back index cards with the results that they can expect. Be clear about the state that the system is in before each transaction and after it as well.

The sum total of these interactions is your spec.

Source: On Writing a Spec