The process I recommend to anybody who is working on a new product or feature, step by step:

Here's an example of how the document might look like (credits to Ryan Kulp for creating this minimal product spec document)