I spent some time at the end of April playing around a little bit with a project management tool known as Trac. Then a friend asked me my thoughts on it. So I told him I would write blog about it. A month later, I am finally getting it actually done! Let me first qualify that I was looking at the tool to manage software development projects.
The Cool Things about Trac:
- Lets you create milestones in the development process. It seems to be common to use these to represent version releases. My initial thought was to use them for various key components of the software.
- Has a great ticket system for reporting bugs found in the software. These can be setup to allow your users to fill out tickets when they discover a bug. The tickets can also be attached to milestones to allow you to manage fixing them as well.
- Integrates a wiki as well to allow you to document the software and its development process.
The Disappointing Things about Trac:
- Installation is a series of commands that call Perl scripts if I am not mistaken. This made me sad. I wanted a pretty web interface to ask me the questions because it would make a lot easier for installing on my web host. I can survive, but I think it would be a big step in the right direction.
- Along the same lines as the installation web gui, administration tasks need to be pushed completely into a web interface. Some things can be done in the web gui, but not enough. I was still having to run some commands from a terminal for very basic setup and user administration needs.
- No concept of submilestones. I see milestones as tasks needing done. Tickets as bugs. From all the reading I did from the Trac community and developers, this does not appear to be the future idea of Trac. Right now, people create milestones and attach tickets to milestones. Tickets are being used to represent tasks. Rather than implementing sub-milestones, the direction is to implement sub-tickets. Personally, I just don’t like this system, but I can roll with it if needed.
- No forum integration as I recall, but I could be very easily be wrong on this one. It would allow your user community to talk with each other and help each other. This would be useful for all those cases that do not make it to the wiki or when a user simply does not use the wiki or find what they need on the wiki. It could also be used for communication between developers.
After all of this, I will likely still use Trac. I spent some time looking at other project management software, and this was the closest one to really handling what I needed. I did have the requirement that the software was free and preferably open source. I do not intend for this to be a large implementation so the unpolished aspects are not as big of a problem. Things were still easy to figure out so I did not have to spend much time trouble-shooting or pushing through a learning curve. Ultimately, if you are looking for something like this, feel free to give it a solid look and see if it will work for you.
The other day I tweeted in a mad fury with very little details as to the source of my frustrations. To enlighten my Twitter followers, here is the email which served as the source of such anger:
It turns out that when you pass an array as an argument in Perl, it flattens the array, thus giving you a lot of arguments.
Example:
@array = (1, 2, 3);
Print_array( @array );Sub print_array() {
My ($1, $2, $3) = @_;
Print “$1\n”;
Print “$2\n”;
Print “$3\n”;
}Rather Than:
@array = (1, 2, 3);
Print_array( @array );Sub print_array() {
My @nums = shift;
Foreach my $num (@nums) {
Print “$num\n”;
}
}Unfortunately this really screws things up when you want to pass an array along with some scalars.
Such As:
@array = (1, 2, 3);
$sum = 6;
Print_math( @array, $sum );Sub print_math() {
My (@nums, $math) = @_;
Print $nums[0].’+’.$nums[1].’+’.$nums[2].’=’.$sum;
}Working Solution:
@array = (1, 2, 3);
$sum = 6;
Print_math( \@array, $sum );Sub print_math() {
My ($num_array, $math) = @_;
My @nums = @$num_array;
Print $nums[0].’+’.$nums[1].’+’.$nums[2].’=’.$sum;
}Ignore the auto-caps. Have I ever mentioned I hate M$ products?
Microsoft: “We’re so smart we know how to capitalize sentences. You must be too stupid to know how to do this like we do. We will help you capitalize your sentences.”
Me: “But I’m not typing sentences…”
Microsoft: “What do you mean? People only type sentences in their emails. No one except us understands code or other non-sentence based writing.”
Me: “Go #@$* yourself Micro$haft! You’re #@$*ing retarded! You’re ‘increase indent’ button claims it can’t work with plain text emails even though I clearly have tabs in this plain text email because I had to type everyone @*%&@() one of them myself!”