Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I'm looking for software to organize and maintain projects internal documentation, specification, requirements, etc. Currently we store all documentation as lots of MS Word DOC files in a source control repository, which gives us version control, and that's nice. But you can't search this information, create links between them, categorize, collaborate.

Requirements, preferences:

  • Zero install on client side (WEB based).
  • Document version control.
  • Document annotations.
  • Document linking.
  • Full search (all documentation).
  • MS Word (*.doc) import\export.
  • WYSIWYG text editor.

Systems I have discovered and tried so far:

share|improve this question

closed as off-topic by gnat, MichaelT, BЈовић, Bart van Ingen Schenau, Jimmy Hoffa Aug 5 '13 at 14:55

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions asking us to recommend a tool, library or favorite off-site resource are off-topic for Programmers as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it." – gnat, MichaelT, BЈовић, Bart van Ingen Schenau, Jimmy Hoffa
If this question can be reworded to fit the rules in the help center, please edit the question.

    
What kind of project documnentation do you have (textual, graphical, UML diagrams, time schedules, textual specs, user stories etc.)? How many people have to maintain it? Must it be in sync with specific versions/revisions of your source code? –  Doc Brown Dec 27 '11 at 21:00
    
@DocBrown, 95% textual, 3-5 people will write it. I'ts in sync with software products versions but not source code revisions. –  Alex Burtsev Dec 27 '11 at 21:25
    
XWiki looks like a nice solution it's free, it integrates with MS Office nicely. –  Alex Burtsev Dec 28 '11 at 6:47
1  
This is very close to being a duplicate of What program do you use to write technical documentation? and many of the answer are similar, but there are better arguments there against using a wiki for such documentation. –  Mark Booth Jan 4 '12 at 17:28
    
How about a knowledge management software like PHPKB? It is not free but it seems to serve your purpose very well. –  Anirudh Srivastava Jan 24 '12 at 16:57
show 2 more comments

6 Answers

How about something like Sphinx?

You write your documentation in reStructuredText (the syntax is similar to Markdown, which Stack Overflow uses) into plain text files (=easy to version control) and Sphinx spits out HTML pages.

The two most prominent Sphinx users (that I know of) are the Python language and TortoiseHG (see the links for the Sphinx generated documentation).


EDIT:

I just read that you are talking about project-internal documentation, not end-user documentation.
In my opinion, something like Sphinx is the best way for internal documentation as well (provided that you can get your analysts to write reStructuredText) because:

  1. You can easily version control the documents (and diffs of text files take much, much less space than binary files like .doc or .pdf).
  2. If a developer wants a nice readable .doc or .pdf file, he can create it with Sphinx from the sources.

If Sphinx is too complicated, there is even an easier way: you can write your documentation in Markdown and use Pandoc to create (for example) .rtf, .doc or .pdf files (it can do a lot more).
I found Pandoc easier to get started than Sphinx, but Pandoc can't create nice menu hierarchies like Sphinx (like in the Python and TortoiseHG documentation I linked above).

No matter which of the tools you use, if you have an internal web server and a build server, you can set it up so that the build server generates HTML output and copies this on the web server each time someone pushes something to the documentation. So your analysts don't even have to think about the final output, they just need to commit and push their changes.

share|improve this answer
    
Looks like it just generates HTML then I will have to publish it on a web server –  Alex Burtsev Dec 27 '11 at 20:52
1  
@AlexBurtsev: If you want it to be public, then yes. On the other hand - now you are using Word .doc files, so you have to put these on a web server as well if you want them public. –  Christian Specht Dec 27 '11 at 21:06
    
I note that Sphinx has an "output to PDF" path. –  Robert Harvey Dec 27 '11 at 21:15
    
@ChristianSpecht, Wiki and Wordpress have plugins to import Word Doc files. –  Alex Burtsev Dec 27 '11 at 21:19
    
@AlexBurtsev: I'm not sure if I understood what you want to do with the documentation. If you want to put it on the web, then you need some kind of web server, no matter if you use Sphinx, Wordpress, a .doc download or something else. If you need to distribute the documentation with shrink-wrap software, you can use Sphinx to generate PDFs or Windows help files. –  Christian Specht Dec 27 '11 at 21:26
show 5 more comments

Well, you can try to implement a Wiki. Mediawiki has all the missing features you are talking of (search functions, versioning history, links, categorization). You will have to make sure you know exactly which version of the documentation belongs to which version of the software, but that can be done by convention of including a version reference or a specific category in each version dependent article.

BUT: You write you have "analysts" who are not developers (I admit, I am not a fan of that constellation). Those kind of people are often not happy when you replace their MS Office tools by some textual oriented tool like a Wiki. And since MS-Word is not free software, so I guess the requirement "free software" is not really a must. In this situation, a Sharepoint server might be the better alternative. Not free, but AFAIK it has all the features you are requesting, and documents can still be created using Word, Excel etc.

share|improve this answer
1  
We already have a SharePoint server but developers doesn't like it, and don't want to use it (I'm developer myself). We want something where we can easely find information we need. Information that is categorized and linked. –  Alex Burtsev Dec 27 '11 at 21:56
    
@AlexBurtsev: I have never used Sharepoint server myself, but I was under the impression that Sharepoint was providing all those features you were describing. But if you prefer a Wiki, Mediawiki will be fine for you. However, you will make some initial effort to install it, define some structure outline, and also define some conventions how to use / not to use it. –  Doc Brown Dec 28 '11 at 8:15
    
I'm currently trying out XWiki for its MS Office integration –  Alex Burtsev Dec 28 '11 at 9:53
    
@DocBrown - SharePoint is horrible. It's unintuitive, a complete maze of tabs and sub-tabs, and doesn't maintain any proper version control. Anyone using it would be better of dumping all of their docs into a shared directory on an internal server. A wiki is usually the way to go for this kind of thing. –  Polynomial Feb 9 '12 at 12:31
add comment

It is always better to keep specification and documentation under version control as it would give you the biggest leverage though the learning curve would be a bit steep. In case of a knowledge engine, I recommend the following

  1. Trac - Easy to use bug-tracking system and knowledge engine. Written in Python and extensible, you would be up and running in a few minutes
  2. MoinMoin - Full-fledged wiki engine. Again Python with a lot of features

Both have minimal interfaces, supports most of the wiki structures , fairly easy to deploy and maintain, support revisions, has a good WYSIWYG editor and you can even keep your documentation and specification also. Unless your projects are really huge, you could choose any of the above.

share|improve this answer
add comment

We recently started using the Alfresco DMS which has a lot of interesting properties:

  • Very simple install
  • Has a built-in indexer for quick searching through heaps of documents
  • Allows work-flows, groups and if necessary, specific access to documents by customers
  • Open-source
  • Active community
  • LDAP/AD/SSO integration
  • Handles many different documents

There are also some disadvantages:

  • User interface is not always intuitive
  • It's not really a wiki, so simultaneous collaborative work on one document might be a bit fragile

If you decide to give it a swing, please contact me with your opinions.

share|improve this answer
add comment

Another possibility might be to use LaTeX or some other text formater (perhaps texinfo or even lout) for documentation. Parts of it can be machine generated. There are some tools for HTML conversion, like HeVeA to convert LaTeX to HTML. You can also use doxygen to generate documentation from structured comments inside your source code. And the hand written parts of the documentation can (and should) be managed as source code (e.g. w.r.t. version control and build).

share|improve this answer
    
I'm not talking about software product documentation (help, manual). I'm talking about software specification, business requirements. –  Alex Burtsev Dec 27 '11 at 21:21
    
You can write software specification or any technical document in LaTeX, and in some circles it is common practice. –  Basile Starynkevitch Dec 27 '11 at 21:22
2  
LaText somehow reminds me of *NIX , and our analysts never herd of such OS -), they live in Windows world, and will not agree on something that is harder than Word for text input. –  Alex Burtsev Dec 27 '11 at 21:31
add comment

I would suggest using a UML and ERD tool, in addition to your documents. Also, you could store these documents on ZOHO at ZOHO-Docs, which is not free, but it is extremely cheap and allows document search facilities.

Whatever the tool you end up using, you need to organize the document contents carefully to be able to use text search and get meaningful results. Document content organization together with clever and standard file naming could help greatly.

share|improve this answer
add comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.