I am a Technical Team Leader. I have some developers reporting to me. So let me say this; Regulated, Regimented development. That's what I try to use most of the time. Yes, really. It is extremely important to start a project with good specifications. First, this means that I have had several conversations with my customers about what they are expecting to get out of the project, and how they expect to interact with it before anybody starts coding.
Requirements specifications make their way to Functional specifications. This is where I admit that these are often done incorrectly, but they are still done. Let me explain that. The requirements are the high level things that management wants to accomplish. The functional specs are supposed to be the things that define how the customer will interface with the product to meet the requirements. However, more often, most of the interface decisions are stuffed into Requirements leaving the functional specification to double as a technical roadmap to how the project will be completed.
As long as all of the necessary information is there, it doesn't really bother me.