A good read on the normally mind flogging idea of functional specs...
Painless Functional Specifications - A series of articles on writing functional specifications. "Software engineers who dive into code without writing a spec tend to think they're cool gunslingers, shooting from the hip. They're not. They are terribly unproductive. They write bad code and produce shoddy software, and they threaten their projects by taking giant risks which are completely uncalled for."
Part 1: Why Bother?
Part 2: What's a Spec?
Part 3: But... How?
Part 4: Tips
I'm going to read the Painless Schedules article as well.