A functional specification describes a product's intended capabilities, appearance, and user interactions in detail for software developers. It includes requirements defined by product planners based on market and customer input, objectives written by designers in response to requirements, a logic specification of code modules and structure, and user documentation derived from previous documents to instruct users. Ideally, the final product fully implements the functional specification and design changes identified during testing.