Essential Tools When starting a new project #4 – issue tracking / project management software

A few weeks I decided to help what I think is a very good idea (more on that, I’m sure, in the future) try and get itself off the ground. In my mental preparations for this task, I began to wonder what we were going to need at the very beginning stages that would allow our work to proceed. I came up with this list:

  • Collaborative Software
  • Version Control System
  • Document Repository (with versioning abilities)
  • Issue Tracking Software

Since then I’ve talked about 3 of the 4 tools I think any “IT person” should have ready and available when a new project starts up; I’ve taken a look at Collaboration Software, Version Control, and a relatively new concept in my tool list in a true document repository. Last on this list is issue tracking and project management software. Of all of the tools I’ve been talking about, this is where things can get crazy really fast.

Why do you need this application in your corner when you first start out? I’ve seen too many projects flounder at the beginning and never recover because they couldn’t figure out how to go about eating their particular elephant. These tools, whether you want to use Gannt Charts or Burndown Charts, are designed to help you organize your work and attack it in a way that is consistent and doable. You know, project management. 🙂

A Google search reveals at least 8 quadrillion project management and issue tracking apps out there (an estimate of course). For the purposes of this talk I’m going to stick with the tools that I’ve personally worked with that I think can do the job for which they are designed. I’ll be excluding closed source garbage apps I’ve been forced to use in a few engagements that are parts of large “solution suites” that companies feel compelled to make and purchase without good sense. Out of the small universe of applications out there, my personal top few are:

  • Jira – Like Confluence, Jira is another Atlassian product that is trying very hard to become the standard for issue-tracking / project management applications. It’s a java application (amazingly stable, though), with a huge community that contributes plugins that do all sorts of amazing stuff. It’s biggest downside is that it’s not open source, but they try to overcome at least some of that stigma by offering Jira for free to open source and some other types of projects. They also have a 10-user/$10 license where the $10 goes to charity that is GREAT when starting up a new project.
  • Trac – I’ve mentioned Trac before, because it has some aspects of collaboration software built-in with its wiki (it can serve double-duty for smaller/more straight-forward projects, even). But at its heart it’s an issue tracker. There are now plugins that give you a more Agile look and feel in Trac (my personal fave), as well as the traditional milestones / versions, etc.
  • Bugzilla / Mantis – I’m putting these two together not because they are the same thing but because they fill the same role in a project. They are bug trackers, plain and simple. While some people use them to do it, they isn’t really a project management component to these applications. Mantis is written in PHP and Bugzilla is written in Perl. Both are open source. Bugzilla certainly has the edge in users, with a HUGE community that includes Mozilla, RedHat, the Linux Kernel and others.

Like I said at the beginning, there are more applications that purport to be issue trackers / project management applications than I could talk about in a lifetime. But in my lifetime, I’ve used several, with the short list above being the ones that worked best. Of them, I’m a big fan of Jira because of its interface and great Agile plugin (greenhopper).

Advertisements

Tools you can’t miss when starting a project #3 – document repository

Last week I decided to help what I think is a very good idea (more on that, I’m sure, in the future) try and get itself off the ground. In my mental preparations for this task, I began to wonder what we were going to need at the very beginning stages that would allow our work to proceed. I came up with this list:

  • Collaborative Software
  • Version Control System
  • Document Repository (with versioning abilities)
  • Issue Tracking Software

In the past couple of weeks I’ve talk about Collaborative Software as well as making sure your Version Control was up and running from the get go. Next on the list is the newest addition to my bullet points, as well as the one I personally know the least about. Although it’s the one I’ve personally dealt with the least, it’s also the tool that I’m quickly becoming a huge huge advocate for requiring.

Here’s the problem as I see it. When a project is first starting there is a lot of communication going on surrounding lots of decisions that are hard or impossible to change once a project is in motion or growing. These communications take the form of email, shared docs, official paper thingies, napkins, business cards, pages ripped from magazines, etc. Not only should you be documenting these decisions to shed light on them down the road, but you should also be versioning them whenever possible to show future contributors or employees how they evolved over time during these heady first days of your new endeavor.

This is where most groups fall down. This tool doesn’t exist in an infrastructure until way further down the road, if it exists at all. Those important initial documents, outlining visions and values and processes and structures are either a static document or lost altogether. I’ve seen groups tackle this two different ways in the past, and both involve another crucial tool being a stunt-double.

First I saw a group try and make their collaborative software shoehorn into this tool’s feature-set. If you have a robust collaborative software  application like Confluence it can work, but it’s going to be a huge effort to keep up with all of the attachements and mixes of media. It just wasn’t meant to be a document repository. Unfortunately this group was trying to use Trac, and it was a massive, confusing failure.

The second attempt I’ve seen at this was to try to use a version control system (in this case subversion) to handle the document repository duties. This also, technically, can perform the task. It CAN keep version copies of just about anything. However, the problem arose as this company grew. First off, the hierarchy of documents was amazingly complex in structure and permissions requirements, so managing SVN was significantly more complex than just maintaining a codebase. Secondly, the IT staff had constant trouble as CPAs and Project Managers and Sales Reps and Executives and everybody else tried to navigate and maintain this maze on a daily basis. This is still limping along, but begging for a better solution.

The best tool I’ve seen so far to handle something like this is Alfresco, by Alfresco, Inc. It tries to be a one-stop shop for several tools (collaboration, records management, web publishing, etc. according to their website), but where it really excels is Document Management. It’s simple, well thought out and it just works. There are, however, a few drawbacks.

  1. It has a community and an “Enterprise” edition. The Enterprise edition is a completely different animal based off of the publicly available source code. I just don’t like those fauxpen source models. Never have…
  2. Technically, there is a weak link in their application change. Whenever you view a document, you get a flash-based preview on the page, which is great. It uses a headless OpenOffice daemon to open the file and convert it to a PDF. It then uses pdf2swf to convert it to a flash object to display on the page. Clever, to be sure. And about as stable as mashed potatoes. We actually have a zabbix check that automatically restarts OpenOffice when it randomly eats itself on this server.
So I haven’t found the best tool out there, I don’t think for document management. If anyone knows of anything else I’d love to hear about it. But I do think that having this solution in place as a project gets off the ground is critically important to help document that process and inform people down the road.

Setting up a new project – 4 tools you can’t miss the first time around

Everyone has the next great idea.

Just ask them, I’m sure they’ll be more than happy to tell you about it. Adding wheels to a kitchen table, or jet packs in your blue blazer, everyone is an inventor in their own mind. Sooner or later you every person on the planet will have a desire to strike out on their own and make a go at bringing their idea to life. Whether you’re building a consultancy or rocket ships, there a few key apps that need to be rolled out on Day One. If you don’t have these ironed out from the very beginning, things tend to spiral out of control and make it hard for a project to ever get on track, much less stay there.

  • Collaborative Software
  • Version Control System
  • Document Repository (with versioning abilities)
  • Issue Tracking Software

Over the next few posts, I’ll outline some of the leading options for each of these applications.

1. Collaborative Software

Most new projects these days are ideas, not widgets. Most new projects are also created and maintained by groups of people. Since most of the time we’re living in this abstract realm of ideas, it is even more important to keep as much of that in one location so it can be evaluated and acted up easily by the group and moved forward. Ideas happen in the shower, but Intellectual Property is forged in the collaborative space. There are several options for creating an online collaborative space. I’m sticking to the web because it seems to me that it’s a no brainer that you want you space available to as many potential team members as possible. It’s the prototypical web-based application/service.

Mediawiki (http://www.mediawiki.org) – The granddaddy of all the wikis, mediawiki defines a pure collaborative space. It’s the wiki engine that’s most used around the world, and drives the venerable Wikipedia. It’s written in PHP, is 100% open-source, and has a huge community to develop plugins. Some of these plugins help tie mediawiki into other systems (eg GoogleDocs, version control, etc.), but it’s certainly not the focus of the application.

Trac (http://trac.edgewall.org/) – Trac, another open source application, is a bit of a hybrid software that is an issue tracking system as well as a pretty good wiki. It’s written in Python, and has been around for a long time. It’s configuration can be a little “geek-centric”, meaning that for projects that aren’t heavily software-based there can be a bit of a learning curve for your collaborators.

Atlassian Confluence (http://www.atlassian.com/software/confluence/) – Confluence is not open source. At all. I just wanted to get that out front. But it is pretty good collaboration software. Increasingly an industry leader, Confluence has a huge community and thousands of plugins to do all sorts of things. It’s a java-based application, and can be a little heavy-handed on a server. Their best deal for new projects is that they off a 10-user license for $10, and donate any proceeds to charity (I’m not sure which one right now).

I’ve been involved with projects where the data was in a lot of different locations. It’s a nightmare and I wasn’t active in that project for very long. When you can’t find the information you need, it’s a huge turn-off.

I’ve also been involved with established projects that had to migrate from one collaborative system to another. Unless you’re willing to donate entire teams of people to this task or you have a certain masochistic streak in there somewhere, I don’t advise ever doing it. Nightmare doesn’t begin to describe the process, and I don’t know that I’ve ever seen anyone completely finish the task.

So having a collaborative platform is essential, because your team can’t keep track of what it’s doing without it. And picking the right platform for your project is just as important because switching that particular boat in the middle of the river is roughly the same as hitting yourself in the head with a tack hammer every morning when you wake up.

next up: Version Conrol