Une bonne solution pour garder la documentation d'un programme à jour : au lieu d'ouvrir un traitement de texte à côté de l'environnement de développement (ce qui nécessite au minimum une bonne machine), il suffit de documenter directement dans les commentaires du code (ça réclame beaucoup moins d'efforts, je suis désolé mais c'est un facteur important : tout bon programmeur est aussi un peu paresseux). Doxygen est un système permettant de générer, à partir de commentaires utilisant des conventions assez simples (proches du JavaDoc), des documentations hypertextes (HTML, RTF, PDF), du La Te X, des manuels UNIX (même s'ils ne sont pas exactement standards, il y a moyen de s'en rapprocher), etc.
Du coup, j'utilise un Néo Logisme : doxymenter (une documentation en béton).
Je ne suis même pas sûr de l'avoir inventé (j'ai dû le lire ailleurs).
Oh oui, j'oubliais : Doxygen est un Logiciel Libre (GNU GPL), et il traite les langages C++, C, Java, IDL et un peu PHP et C# (c'est un des plus polyvalents que j'aie vu).
Que des avantages.