Redmine… some initial thoughts

I was going to write a review, but for things like Redmine, I find reviews aren’t necessarily the right outlet for useful information. The same could be said of any review, but for software development tools there are a lot more variables than say… if you like platformers, give this game a go. So instead of a review, this is just a collection of my initial thoughts about Redmine, my first real brush with Ruby and Rails.

For the uninitiated, Redmine is “a flexible project management web application. Written using Ruby on Rails framework, it is cross-platform and cross-database”. Nice summary I think. So what does it provide…

Access to a number of version control repositories (Mercurial, Git and Subversion to name three) as well as scanning of commit messages to extract time spent and issues addressed by the commit
Issue tracking (each project can utilise a number of different trackers for things like bugs and features, each with it’s own configuration)
File and Document stores
Activity reporting
Gantt charts
Multiple project support

The list of features is quite extensive so I would recommend reading the Redmine website for full details.

Installation was fairly easy. I installed my instance on a Linux server running Fedora 8, MySQL 4.1 (for development, MySQL 5 is required but more on that later), Apache 2 and Subversion 1.5.something. All of which were already setup. Setting up Ruby was a snap, as were the base requirements for Redmine, largely due to the ease of using Ruby’s Gems. The one thing I had a problem with was setting up Passenger (which was one of the recommended routes in one of the how-to’s on the Redmine site). However, once that was sorted, it was up and running in a very short space of time.

The user interface on Redmine is pretty neat. Not bogged down in flashy garbage that serves no purpose. The standard templates are clean and crisp and the layouts of the pages are all pretty good. There one or two quirks, like the fact that files ask for a description when you add them to the store but it’s only displayed as a hint when you mouse over the filename (actually easily fixed with a minor tweak). Overall though, it’s one of the nicest interfaces on an application of this nature that I’ve seen.

One of the nice features about Redmine is the plugin system. There are numerous plugins out there, so far I’ve stuck to the ones that are listed officially on the Redmine site. Once I got my system up and running I went hunting for a whiteboard style plugin. I elected to use the Backlogs plugin, I don’t really recall why, but so far I’ve not been disappointed (my only complaints at this point are the fact that when you enter a new story from the backlog you only provide it’s title and not an accompanying description, it only works 100% on Chrome). This was where I had problems setting up… it requires the rmagick gem which in turn has a dependency on ImageMagick or GraphicsMagick (IIRC). Getting this side of things setup was a nightmare. My recommendation would be install ImageMagick from source and use that as that actually worked first time (I spent an age hunting RPMs and trying to resolve dependencies). Once that hurdle was out of the way however, it took no time at all to enable it and hook it up to a project.

I’ve been using Mantis for ages and I would, until I got Redmine running, have picked it over anything else for issue tracking. But thats all it really does… yes it has roadmaps and change logs and you can integrate it with Dokuwiki (nightmare – the integration, not Dokuwiki) and Subversion (IIRC this requires the use of Subversion hooks). Redmine does all of that out of the box, ok, so the wiki isn’t expandable like Dokuwiki which is IMHO one of, if not the, best wiki packages around, but everything else is just there, integrated into a single neat solution.

So far it’s all positive, so lets add a little bit of negative to the mix for some balance. My gripes… firstly once an issue is created you can’t edit the title or description… actually, I’ve just looked again to make sure I didn’t embarrass myself by missing something and sure enough… I found it, although it’s not obvious… update the issue and there is a ‘(more)’ link on the ‘Change Properties’ section of the page… click it and the description etc. are displayed for editing… a bit more positivity then… negatives… off the top, apart from the issue I mentioned above with the file store list, I can’t really find anything to criticise. Clearly if I was writing a review then we’re in the running for a good score, but it’s largely meaningless as I’m raving about Redmine because right now, it fits my needs remarkably well, your mileage may vary so my advice would be to setup your own test instances of the products you’re thinking of using and actually use them in anger. Possibly in parallel so you can compare how each one fares against the others. I decided I would setup Redmine and use it in anger to get a real feel for how it works and what it can do and it was a good decision as I’ve found it so much easier to get along with than say Mantis.

Now lets get down to the nitty gritty… if you’re a software engineer, there’s a good chance you’ll want to tweak Redmine to make it fit. There are a lot of configuration options built in but if they don’t cut it, then you’ll have to dive into the code and sort it yourself or use one of the many plugins that are already out there. I was a bit apprehensive when I dived into the code. Ruby and Rails scared me a little when I looked at them a while back, but having seen what’s possible with a relatively small amount of code it’s easy to understand why it’s a nice tool to use. If you want to tinker with the Redmine codebase just make sure you’re proficient with Ruby and Rails before you start. That said, I was able to add a new field to one of the core tables, collect data for it and have it used within another area of he application without too many hitches but it did take me a long time (mostly due to on-the-fly research about Ruby and Rails). For anyone thats interested, the patch I submitted add’s a flag to the project repository settings that allow you to include a repository in a scheduled fetch (I have a local repos which is scanned every 5 minutes and I use a remote repos which is too big to scan every 5 minutes). The patch can be found here.

So what about all the other project management toys I’ve tinkered with over the years? Well, they are all pretty good in their own way and for the people who originally created them, but for me they’ve just never seemed… well… right. I’m not saying Redmine is perfect, because it’s not and I’m not saying everyone should use it, because they shouldn’t, but it is pretty dammed good at what it does and if you’re looking for a software project management solution, I’d definitely recommend you have a look at it and give it a real live try out.

Leave a Reply


Bad Behavior has blocked 120 access attempts in the last 7 days.