Coolskool : Kola Oyedeji's Cool Technology Blog

Search Box

 

Calendar

««Nov 2009»»
SMTWTFS
1234567
891011121314
15161718192021
22232425262728
2930

My RSS Feeds








HTML Snippet

Hit Counter

Total: 803,380
since: 7 Nov 2003

Categorys

Using Wikis for documentation

posted Monday, 4 December 2006

At work we use Confluence, an Enterprise Wiki provided by the cool people over at Atlassian. The idea being that documentation can be added to the wiki where it can be easily updated, accessed, commented on clarified etc.

The added benefit is that Confluence allows you to subscribe via RSS to various parts of the wiki - this can be quite useful if you are still in an organisation and want to monitor changes and updates. For example if someone posts a comment asking a question about some of the documentation I can see that in an RSS feed (or via email if I choose) and I can spend 5 minutes updating the doc to either answer their question or clarify the page in question. In essence (provided the wiki evolves with the system) it allows the original developers and designers a way to monitor the evolution of their system even though its been handed over (I’m assuming here that the original developers/designers still have access and have an active interest). This is beneficial because it allows you to asses whether the design decisions made stand the test of time and to reflect on your architecture.

Some people have commented that wikis do not lend themselves well to versioning.- yes you can review the changes to a particular page but how do you know what version of the wiki pages relates to which version of the system?

I think the way to approach this is to simply have a wiki per version.

There was one thing I have been always conscious of and that is having bits of information everywhere - we have code comments, unit tests, wiki documentation, issues in our issue tracker, cvs commit messages.

And just like we all know duplication and redundancy in code leads to maintenance problems, the same applies equally to code documentation. The one thing worse than no comments is outdated or incorrect documentation which conflicts with other documentation.

Here is how I typically address this and where what I place where:

Readme.txt – documentation on installing/building a project once checked out of source control 

Source control commit comments – explain what was changed with an issue number which refers to the issue number in the bug tracker for an explanation of the bug/issue/enhancement

Issue tracker – Bugs or enhancement requests 

Cfcdoc – Api documentation as this is based on the version of the code checked out there are no issues with this being out of date.

Other documentation – Wiki where it can be searched, commented on, printed out, linked to etc.
 

If changes are made to a system due to a bug or an issue with the design - I find it better to simply provide a link to the issue in Jira (the 2 products integrate well) rather than update the wiki and have the same information in 2 places.

You'll notice in the above one glarying ommission and that is database documentation. I'm still not 100% sold on a good way to do this - perhaps I haven't found a sufficient tool. Many databases do allow you to store comments against items in the schema and we tend to store a database creation script under source control as well.

Finally if you are interested in using Confluence to document an open source project (I'm not affiliated with them in anyway) - they have a license for open source projects which you can apply for.

links: digg this    del.icio.us    technorati    reddit




1. Niklas Richardson left...
Thursday, 7 December 2006 9:27 pm :: http://www.prismix.com/blog/

Also, the guys at Headshift and Atlassian are running a JIRA User Group on 12th Dec at Headshift's offices if you want more info. Check out Atlassian's website for more details.

JIRA rocks and we're going to start using Confluence too for the very reasons you give!


2. Kola Oyedeji left...
Thursday, 7 December 2006 9:34 pm

Hi Nik - I meant to blog about the Atlassian user group meeting but you got there before me! Jira definetly rocks!


3. Darren left...
Friday, 8 December 2006 12:15 pm

I guess Confluence good if you have the cash. I had a look and the cheapest I found you can get a new licence for is $600.

I know naviagtion and categories are a problem for most Wiki's. Have you considered MediaWiki? (My company are considering it as it's a cheaper option. i.e free)

http://en.wikipedia.org/wiki/MediaWiki


4. Frank Polscheit left...
Wednesday, 20 December 2006 12:55 pm

You can use a free version of CONFLUENCE limited to 2 users (called personal edition). I started with it and found out all the nice things, which are available in Confluence like labeling (-> catagories) etc. The reason why Confluence is often called an "enterprise wiki" is based on its professional integration features, e.g. beside its build-in user administration you can set it up using Microsoft Active Directory with single-sign-on (SSO) capabilities (a bit limited but working under certain conditions), XML-RPS and SOAP accessibility to its internals for automation of work, clustering support for failover and load balancing as major aspect of the coming version 2.3 and much more.