Selecting a Wiki

In the presentation on “Challenging the Role of the Architect” I talked about the need for a team Wiki where the lower-level details of the system documentation should be published.  Some people have asked for more information about this – what wiki do I recommend.  This is a very intersting question because it is a little like asking ‘what source code repository should I use?’ in that the answer is quite clearly ‘it depends’.  Let me take a stab at a piece of logic though and we’ll see if that helps:

If you are working with resonably recent version of .NET then the answer is actually pretty simple.  In this case you will, of course, be using Visual Studio Team System for development and will be using the features and facilities to manage your project in Team Foundation Server.  I’m hoping that you are anyway, because as I have said a few times there is no better tool for managing software projects than Team Foundation Server to the point where I recommend that even teams that are building using Java (or a derivative) use Team Foundation Server through a plug-in into Eclipse.  But I digress and I can talk more about that another day.

Anyway, assuming that you are using TFS you’ll note that TFS integrates nicely into SharePoint 2007 to provide a project portal.  Given that this is the case the best option then in to include the Wiki as a part of that portal.  Personally, I find the built-in Wiki functionality in SharePoint to be sufficient for this kind of documentation and it provides the easiest, and best integrated, solution.  You could consider using a thrird party Wiki tool like Confluence from Atlassian to edit the Wiki and then surface it through SharePoint using the available plug-in from Atlassian . 

If (heaven forbid) you aren’t using TFS then you could just use Confluence.  There are, of course, many open source options available but I must confess that I don’t know them all that well.  Check out what is available through CodePlex or your favourite reputable open source repository/community and review what other people have said before making a selection.  I’d recommend that you consider the ability to export content to be an important part of the decision in case you outgrow your solution and need to move to another.

Leave a Reply

Your email address will not be published. Required fields are marked *