Using Redmine for Projecting Tracking
When multiple developers are working on multiple projects, it can be difficult to track who is working on what, and how far along they are. Luckily there are a number of solutions available, particularly for developers, to help manage the work loads. Our own solution to this difficulty is employing Redmine. While not without its own limitations and drawbacks, it has proved to be a capable solution to an ever-present problem.
Suppose you have one project you’re working on. Pretty easy to maintain what you are working on, how much time has spent on what. Git can maintain code changes, and your personal time is spent how you wanted. Something like Redmine may not be as handy in this scenario. Often enough, life is not this simple in a developer environment. Let’s take another example, you have three developers, a main project, and two sub-projects. If they are working full time for you, that’s 24 man hours a day (excluding your own), 120 man hours a week! Suddenly, even with a small team, it’s not as easy to keep track of time spent on which project, subject, and so on. Not to mention the difficulty it can be to determine how far along a project is to completion, especially if it’s a custom feature for a customer.
Here at Tigase, we have a bit more complexity added, each customer is a separate project, sometimes with their own special code. Tigase server has a number of component codes such as the HTTP/REST, MUC, and PubSub components among others. Combine this with twice as many team members, and it becomes clear that project management can get out of hand quickly without some way to organize it. Projects and tasks may be rated on order of priority, keeping the important fixes and requirements top-of-mind. Redmine has been instrumental in keeping not only future tasks in check, but making sure nothing gets left behind. Setting a due date allows Redmine to send reminders to team members about upcoming expected finished dates, or dates that have passed without completing a project. Of course this requires setting a due date in the first place.
This brings to mind the fact that Redmine is not automated, but relies on the input and maintenance of all team members to be effective. Like any program, it adheres to the garbage in garbage out principle. If the person managing a team is not very good at describing issues or tasks, provides no due dates, or assigns nobody the work; Redmine would be utterly useless. The same goes for the team members who are just as important to project management. If they don’t accurately update Redmine with hours spent, comments, or updates, a project manager has to scour code changes to get a hint at what progress is being made. Any project management software needs to be consistently updated to avoid having a large backlog of incomplete projects and missing hours. Scrutinous team members however, can easily prevent these lapses of data with a very small amount of effort. With a helping hand from all team members, however, Redmine can easily overcome these constraints to manage an incredibly large project.