We commence with the specifications once we have completed the verification and idea validation phase with the client. Just as a house needs blueprints for its construction, we require a plan for compiling software.
The specification defines the user, functional and parametric requirements of the software. It is a complex description of the purpose and usage scenario that characterizes the performance of the overall system. The specification minimizes the time, effort and cost of development to reach the desired goals.
A properly documented specification guarantees a functional project and complete ecosystem. It helps to avoid situations where you end up with software that has no real application and the development time was a waste of resources.