Te intendi documentazione di carattere tecnico per i programmatori, o documentazione di carattere pratico per gli utilizzatori?
Io ti rispondo come procedo io a livello personale:
1) Scrivere codice utilizzando nomenclatura in inglese
2) Commentare il codice, e spiegare già nel codice le procedure funzioni complesse, risulta già essere una buona documentazione preliminare.
3) Scegliere una metodologia di sviluppo software adeguata
4) Nella relazione cartacea devono essere presenti fondamentalmente i seguenti punti:
- Specifica e analisi dei requisiti
- Requisiti hw e sw richiesti per l'installazzione
- Manuale d'uso utente
- Struttura della base di dati con illustrare le tabelle e relazioni con esse
- Schema logico del software e diagrammi UML
- Descrizione delle funzioni principali e cruciali
5) Tutto quello che può essere utile ai programmatori che dovranno metterci mano è buona norma seguirlo.
Qui puoi trovare qualche documentazione che ho redatto assieme a colleghi nello svolgimento di progetti sperimentali per l'università:
http://www.futuresoftware.it/innovazione.asp Ciao Marco