Click here to Skip to main content
15,891,427 members
Please Sign up or sign in to vote.
5.00/5 (1 vote)
Dear Friends,

I want to make a technical documentation of an existing web site for developers so that new developers can continue to work with it. In existing codes, little (or not at all) in-code comments or doc-strings are available (bad practice, I know). Yeah, I have seen some posts related to these. But those were not that detailed. Here are all my questions:

What to include?
How to organize? I mean, can you suggest some hierarchy so that new developers can easily get onto the track?
What are the best practices?
Can you show some samples?
How can it be made easy?
Some ppl suggests wiki tool but I know nothing about it, will it be useful?
Can you suggest any tool with some quick starting tutorial?
I have never made one. So I appreciate any kind of answer.
Thanks in advance.
Posted
Comments
Sergey Alexandrovich Kryukov 18-Aug-12 0:29am    
Not a bad question; I even voted 5 which really rarely happens, but... too big for this forum.
--SA
Arunprasath Natarajan 18-Aug-12 3:48am    
Tan q, will take care in future.

1 solution

This question is too big to answer in detail, especially for this Quick Questions & Answers forum.

I would like to share just a few thoughts.

First and foremost, documentation writing should be a part of the same process as software development. And the first thing you need to use is the Revision Control System, and certainly the same as the one used for the development, and documentation for the product and its source code should be in the same project of the Revision Control.

For the problem of selection of particular Revisions Control System, please see this discussion:
Revision control systems, which to choose from?[^].

Please see my past answers:
Needs some words of wisedom to set up and/or use a server[^],
Make an unclickable form[^],
How can i structured to arrange source code when i create a new solution[^].

As to the Wiki, I think this is a very good idea.

I did not try many, tried to find something extremely light weight, and all I tried did not work properly. So, I have quite positive experience only with one product, Wiki which was integrated with Trac. Please see:
http://en.wikipedia.org/wiki/Trac[^],
http://trac.edgewall.org/[^].

And, as Trac itself had very good integration with Subversion, I had a well integrated bundle which was easy to maintain. I did it all on Ubuntu server I set up specifically to have a development server (for international distributed team). Issue tracking provided by Trac is also a kind of documentation of special sort, but it was also very convenient way to write Wiki and make it bound with issue tracking and parts of projects, via cross references.

See also:
http://en.wikipedia.org/wiki/Subversion_%28software%29[^],
http://subversion.apache.org/[^],
http://en.wikipedia.org/wiki/Revision_control[^],
http://en.wikipedia.org/wiki/Issue_tracking_system[^].

And one more thing which might look very strange to many, and many will criticize me for that, but all my experience tells me about it. There is one important and robust Visual Studio feature: XML comments which documents the code and shown in Intellisense and while browsing of the referenced .NET assemblies. Here is my advice: don't overdo it. These comments highly reduce readability of the source code, especially during development. Delay such documentation to the moment when the assembly is mostly used and almost not developed anymore. Comment this way only visible (public) types and members. For all other cases, use lapidary usual comments; make code more self-documenting.

It's possible to keep talking about documenting forever, but let's again remember this is the Quick Questions & Answers forum. I think, for now it's enough.

—SA
 
Share this answer
 
v4
Comments
AmitGajjar 18-Aug-12 0:31am    
thanks SA for sharing your thoughts ... i want to vote 10+ but it's not there... so 5+ for you :)
Sergey Alexandrovich Kryukov 18-Aug-12 0:34am    
Thank you, Amit.
--SA
AmitGajjar 18-Aug-12 0:34am    
i am looking forward for an article on this topic. Can you share your experience in form of an article ?
Sergey Alexandrovich Kryukov 18-Aug-12 0:40am    
Thank you for this question, but no. I mostly do highly innovative projects, where documentation was minor compared to other works, so my experience is limited, despite of the fact that I usually write more than anyone in the team (and probably give the most wordy answers here at CodeProject :-). Besides, I have several projects for the new articles and not enough time for publishing them, so my article projects wait in line and I don't want to add more at this time.

Thank you,
--SA
AmitGajjar 18-Aug-12 0:43am    
No problem. i will wait for your other articles. Thanks.

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900