Make a Wiki and Squash Bugs with Free, Open Source Software

As part of my role as head of our Strategic Technology division (that sounds more important than it is - I’m the only member of our Strategic Technology division), I identify the business needs of our group of 35ish GIS professionals and identify, test, and implement technology to meet those needs. I thought I’d highlight a couple of software packages I implemented recently in our division that you may find useful in your workplace.

The first business need I saw coming was the need to better share knowledge in our organization. People come to me all the time for help with various things, and I’ll usually go “I did that once, but I’ll have to see if I can find an example of how I did that, because that bank of brain cells seems to have lost a battle with beer somewhere along the way.” So off I go digging, and usually I find it, and then I tell the other person. Now two people know, and nobody else knows they know, and after a while we’ll forget and not know it either, and soon after we’ll be re-inventing that wheel all over again.

We have Sharepoint, but although some people swear by it, it has been downgraded in our group to a somewhat glorified file share (when asked, most people in our organization haven’t even visited our site or know where it is). Sharepoint has its pluses, but as a quick an easy group authoring and knowledge sharing piece, it can leave a bit to be desired. Plus it doesn’t work great with Firefox, which irritates me to no end.

I decided on a Wiki early on in the process. A Wiki is (from Wikipedia no less):

A wiki (IPA: [ˈwɪ.kiː] or [ˈwiː.kiː] [1]) is a website that allows the visitors themselves to easily add, remove, and otherwise edit and change available content, typically without the need for registration. This ease of interaction and operation makes a wiki an effective tool for mass collaborative authoring.

Collaborative authoring is what I was after. I wanted a web-based solution where users could not only create their own articles, but could also edit other ones with new information, join in discussions, and generally make a community-driven knowledge base.

Most people have heard of or have used Wikipedia, but not everybody knows the engine that powers Wikipedia, Mediawiki, is free and open source software. It’s PHP with a MySQL backend (it beta-supports PostgreSQL as well). I installed it on Windows with Apache as the web server - Mediawiki on IIS was giving me fits - and there it was. Collaborative authoring, knowledge sharing and archiving for our division.

Mediawiki allows users to add and edit articles to their heart’s content. Each article also has a discussion area, and if a user decides to register (unnecessary for adding and editing content), they can track articles they find interesting. And there is no moderation - a user can make a post about a technical tip, or a group of users can use it to coordinate a Mardi Gras party. The only thing asked of users is to not post anything that would violate harassment policies and such, and the rest is up to them. It takes a while to build your wiki community, but so far things have been going great.

The next need I ran in to was for a good bug tracker. Our bug reporting system was basically for the customer to relay information to IT’s Help Desk, though most would tend to send an email or leave an illuminating message with such gems as, “Hey Tobin, I think the GIS is down,” or “I got a new computer and the GIS isn’t on there anymore.” Even if they did talk to the Help Desk, the Help Desk staff really doesn’t know the right information to gather, the customer often doesn’t know the right information to report, and sometimes the help desk ticket will get routed to Elbonia by mistake (we get a number of tickets actually intended for Elbonia by mistake), which generally makes for an unhappy customer. All in all, I’d call it a business need that needed filling.

The 800-pound gorilla of bug trackers is Bugzilla - the list of users is like a who’s who of the IT industry. Bugzilla is based on Perl, however, and I didn’t want to head down that road if I could avoid it. So I looked around for a while, and I ran in to Mantis.

Mantis is a free, open source (GNU GPL) bug tracking package based on PHP with a MySQL, PostgreSQL, or MS SQL back-end (I used MySQL). It is ridiculously full-featured bug tracking system, with more features than I could possibly ever use, including LDAP and Active Directory integration (not interested in either), web service access to Mantis via SOAP, WAP interface for cell phones and PDA’s, built in reporting engine with graphs and Word/Excel output, emails to project managers and bug submitters upon a change in status, RSS feeds for specific projects, source control integration (SVN and CVS) - the list goes on for a mile.

Essentially, a link to the bug tracking system would exist on the application or web page. The user would head there, and if they don’t have a log in, they can sign up for an account (we’re assuming no LDAP or AD integration). The system will email the user with a link to activate the account, and the user can then pick a project and enter a detailed description of the problem. You can also customize the issue type, so users can also post requested features to Mantis. Mantis will email the project manager about the bug entry, and if the project manager edits the bug report or changes its status, Mantis will email the user about the changes.

I just rolled out the first internal project using Mantis, and so far things are going quite well. I also rolled this out under Apache, but it is supposed to work quite well under IIS. Both of these applications were a breeze to set up - you navigate to a setup page in your browser, input database and other information, and it does all of the work for you.

If you have a need for a bug tracking system or a Wiki in your organization, I highly recommend giving either of these two software packages a look. They are free and open source, so no risk is involved, and you may find either or both could be a great help to your organization.