... a complete description of the behavior of a system to be developed and It includes a set of use cases that describe all the interactions the users will have with the software. *
Your developer is SMART! Developers can talk to machines! But developers communicate in different ways, so you need to be as clear as possible. A failure to communicate is BOTH person's fault. It is YOUR responsibility as an entrepreneur and project manager to make sure you are on the same page.
A spec is just a recipe to tell someone else how to take you from the current state of the world to the next place you want to be in.
There are many. Nothing's perfect. I'm going to tell you what I like.