Almost everybody understands the burden that represents managing a project (or even a company) with multiple tools: bug tracking, version control (not full source code, just labeled/released binaries), documentation, task tracking...
There are an almost infinite spectrum of tools to aid on some of those tasks, but the problem usually is moxing (or directly integrating) them. Microsoft's Visual Studio Team System tries to integrate the most common ones (even more coding-oriented stuff, like source control and automated testing), but installing a Team Foundation Server is not an option for everyone (for example, me).
One of the things I love most of all this internet era is the concept of hyperlink: you are reading in one place, and with just a click, you can navigate to another place. No more going to the index of a document and clicking on the desired chapter/subchapter, you just click and you're there.
Hyperlinks are not only the basic pilar of internet, they are useful even "offline". If you usually read PDF books, how often have you cursed the PDF creator for not placing "bookmarks" on them? And even with them, wouldn't it be easier if you are on chapter 11 and the book mentions Web Services' session state and you want to quickly check what it meant?
As a real world example, last year I wrote a 30 pages word document with UML use cases. Apart from the all-known index listing all of them, I placed hyperlinks inside the use cases that depended on or used other use cases. That way, looking at a specific use case took a whole less time (and since hyperlinks don't work on printed paper, we saved trees too :P).
Hyperlinking in a word document is fast and easy to do. But why restricting yourself to just that? Why not having everything hyperlinked and available from one place without having to buy an expensive server and licenses?
A few weeks ago I installed a wiki * on my home server. The needs I wanted to acomplish with it where:
- Avoid depending on an online service for storing my TODO lists (Google Docs.)
- Having a centralized and simple bug tracking solution for my websites and personal projects
- Starting to maintain change logs (useful for example for my CS 2007 Addon Pack)
- Storing post ideas and small drafts ("the best ideas come in the less suitable moments and places")
- Maintaining a small knowledge base both of .NET tricks and practices (for example, how and where to setup a new demo for the Demos section of Kartones.Net, which needs modifying three files apart from the upload itself)
- Storing small code samples of things to use in proof of concepts/demos/projects (I have a /Prog/ folder with subfolders, but some of them have too much files and zips, and I want instant access to what I'm looking for).
- Keeping all of this private (at least my chosen wiki engine allows to restrict access to just registered users and disabling user registration ;)
Few weeks later, I can't be more pleased to have taken this approach.
I now have a basic fully-working wiki structure, being able to access my stuff by project name, by category ("TODOs", "KB", ...) or by searching. I can attach a zip containing a code snippet to a post idea and later retrieve it in a second. If I think of an improvement for Kartones.Net I can annotate it in seconds. Any KB article can link to another, to internet resources, or contain a batch file to execute.
And as an added bonus, I am modifying the wiki's engine to disable all non-desired functionality so it just does what I want the fastest way it is able to.
My Google Docs. "workspace" is now empty of dozens of individual documents that were harder to link between, and as the wiki detects things like orphan pages, if I forget to setup the categories for a new page, I'm warned about it, so all is added in harmony.
This might not be the ultimate solution. For example, my source code repository can't be integrated on a wiki. A company timesheet managing application or a professional bug tracking application can't neither **. But I have spent 0 money and less than one hour to have it running and ready to configure and add contents.
* I have installed Screwturn Wiki 3.0 beta. It's made in .NET (so I can customize and extend it) and doesn't uses a DB so its fast to deploy and use, but any wiki engine will suit your needs.
If you decide to use the same engine, be aware that the binaries for the beta are compiled in debug mode. I recommend downloading the sources and rebuilding in release mode for a small speed boost.
** If it is web-based, the wiki could be extended to support some kind of iframes, but it would be more a trick than a real integration.