Self-documenting code is a solid technique that helps to eliminate some code documentation. Good code is so easy and intuitive to work with that it doesn't need a long manual.
Consider change control and a backup strategy for your specifications—they're as vital as your code and need protecting.
Just like your code, any document you write should be reviewed to ensure that it's correct and of a high quality.
Specifications are an essential part of the software development process and are often the gates between development phases.