• Its not exactly 'documentation' but ...

    Don't forget the ability of VSS or your source control system to use keywords to keep the basic date/time last changed info up to date.

    As someone who moves procs around, having this header helps me quickly see what is in production and in test (see below for my basic header).

    /*

    ---------------------------------------------

    $Logfile: $

    $Revision: $

    $Date: $

    ---------------------------------------------

    */

    As far as internal/external documentation ... the internal stuff helps you understand the actual functioning of the object, but good external documentation helps you understand the overall system.

    And don't forget consistant standards in naming objects and variables. That assists better than volumes of text in "getting it".