I have played with many tools and used some of them extensively, and I was growing a bit frustrated about this. In the old days, I hacked a couple of tools myself. Now that I am older (and maybe wiser) I decided to sit down and think about the problem.
Activities Involving a Project Management Tool
First, I tried to examine the activities where I feel I need a project management tool. Here is the list.
- Planning sessions: I brainstorm ideas, review existing tickets, and plan work for the week while talking over Skype with other people. To be efficient during planning sessions, I need an easy way to identify tickets (“OK, so I am going to close X-123, right?”, “Y-34 is urgent”) and it helps to have the possibility to quickly create tasks without having to go through one dialog box (or more) for each new ticket.
- Scheduling sessions: At the beginning of the day or the week, alone or talking with others, I want to take a look at my open tickets and decide in which order I am going to work on them. I want to be able to assign due dates and priority levels. Ideally, I would like to also be able to order the tickets.
- Coding sessions: While coding I want to open my tickets and add comments. I may want to assign the ticket to someone else if I need their comments to move on. I need an identifier to be used in branches and commits. It helps also to be able to quickly mark the ticket as done and see what else I need to work on. During the coding sessions I should not do any scheduling, as that should be done upfront.
Features I Am Looking For
The right project management tool is partially a question of feeling: You want one with an easy-to-use interface, one that is responsive and intuitive. However, I tried to identify a short list of features that matter to me. They are:
- (Critical) Issues should have a short ID, something that can be used when discussing them and to tag commits. It may seem a minor thing but for me this basic feature is fundamental.
- It should be possible to quickly create a list of tasks from one single screen. It is important during planning sessions to be able to sketch a list of tasks without having to go through several pages.
- It should be possible to specify due dates. It should be also possible to sort tasks by that due date and in general to see which tasks are about to expire.
- It should be possible to specify priority levels. Not all tasks are created equal. It is true that ordering issues is a partial substitute for that but I think that the ability to assign priority levels helps when planning.
- The number of fields of an issue should be limited. I do not want to have to find the useful information in a sea of useless fields. And I do not want to be required to fill fields which are irrelevant to me.
- It should be possible to assign tickets to project members. Basic stuff.
- It should be possible to comment tickets. More basic stuff.
- (Optional) It should be possible to find all the open issues for a project. Creating issues is part of process but querying, filtering, and examining an issues list is another very important activity.
- (Optional) It should be possible to order issues. I would like to define an order for issues, so that when I am working I can just pick the issue on top and keep crunching issues and move forward.
- (Optional) It should be easy to get a list of closed tasks
Now let’s take a look at a few candidates.
I have used Jira while working at several companies. One thing that can be said about Jira is that it is complete.
Another thing that can be said is that it is bloated.
Did you ever feel that Jira asks you to go through screens which are completely irrelevant? Have you ever had the feeling there are just too many fields?
Now, it is true that it can be heavily configured but this seems not to be a trivial task. I have seen several people who have used Jira for years being regularly confused by it and wasting a lot of time finding the screens which they did not use daily. When I was working at a certain company (in Ireland), we had to ask our Jira administrator (in Germany) to configure Jira for us. I think this was a very clever way to add even more red tape. Needless to say, we wasted several days just to have Jira configured for each project. No good.
Now, Trello is fun to use and very good to get started. I am using it and I have found a plugin to show the short-ID of cards. It is not perfect: You need to refresh the page after inserting the card, which is a bit annoying but not a deal-breaker.
It is very easy and fun to quickly add a few cards and there is no red tape at all. It is absolutely a pleasure to use while planning. It becomes less nice when you need to examine what you have done in previous weeks. Do you archive the lists of tasks done last week? Do you keep a huge list of “Done” tasks?
Also, you cannot add priorities to tasks and while you can insert due dates, I could not find a way to easily see tasks which are about to expire or to get a notification that a task is expired. I just feel that the tool is not helping while managing, and everything is up to my goodwill and attention.
Redmine is the open-source competitor. The default interface seems reasonable but a bit ugly. However, you can add a lot of plugins and the easyredmine large plugin seems to produce a very nice product. It remains a bit slow and sluggish but I think it has all the feature I would be looking for.
The only hosting I found for redmine starts at 29 Euro per month (and only for the annual billing).
Asana is to me something in between Trello and Jira. It seems good but it fails to deliver in my opinion. It is very easy to create a list of tasks and you can assign due dates. However, it feels unstructured, like Trello with an interface similar to Jira.
Wrike and Azendoo seem similar to Asana.
While these tools are interesting they are not contenders to me because they miss simple IDs for items. Some of them have long UUIDs associated to tasks, but this is not something I could use to mark commits or discuss about tasks. I tried doing without IDs but it just complicates things. I also tried assigning IDs manually by writing them in the title of the issue, but this is rather awkward and you can end up having duplicates.
There are other contenders like Taiga (it seems very rigid to me) and Basecamp (I did not spend much time on it). For now, I have focused on Jira, Trello and Redmine. Asana, Wrike and Azendoo have been excluded because they do not assign human readable IDs to task.
My totals are:
- Jira: 7.5
- Trello: 6.5
- Redmine: 9
When I say Redmine, I actually mean Easyredmine or Redmine with some plugins like AgileDwarf.
Jira is not perfect and sometimes I hate it. I think everyone hates it a little bit. However, it is something that works. It has a good hosting offer and it has a nice REST API which I could use to implement quick creation of issues for planning sessions. It has also a CLI based on that REST API (this CLI comes with an additional plugin that is not free of charge).
I also like Redmine and I think that with a few additions I could get something rather useful. What I do not like is the lack of hosting options.
I plan to focus on Jira and Redmine and see what kind of workarounds I can find for their problems. After that, I will need to think about the deployment. Questions include: Use something from the cloud or host it on my servers?
And you? What tools do you use to stay on top of your activities?
Powered by Facebook Comments