I just read an
awesome article over at
Coding Horror about writing (or not writing) tech specs.
I am a firm believer in writing tech specs - whenever the size of a project justifies it. I have been doing many smaller projects that did not justify spending weeks and weeks writing exhaustive specs in which case a single "summary page", drafting only the major functions in a user-friendly language, has been sufficient.
Back when I was still in school, we
had to write the exhaustive specs nomatter what the project was. Those experiences taught me to "spice up" parts of the document, as
Joel suggests in this awesome piece, using a dash of humour in the examples. It really makes an enormous difference!
So I definitely recommend reading both referenced articles - some good points are made to either side, helping you decide whether to write that dang spec or not.