domingo, 29 de julho de 2012

Project management with Redmine


A few weeks ago we started using Redmine to assist us on the development of a Web application. We needed a tool that could help us plan the activities, register new requests and issues as we move on along the development time (something like an issue tracking tool). We were suggested to use MS Project to organize tasks, but it would not turn to be so trivial sharing documents with team members across the world, since some of them (the final users) were not so familiar with MS Project.


At that moment, it was clear to me the best solution would be a Web application covering these features. Something simple and robust at the same time, and after a quick search on the Internet for project monitoring tools, I found Redmine.


Redmine


Redmine is an open-source Web tool for project management, covering the main aspects of the software development processes and is quite flexible - It is cross-platform and cross-database (Redmine is written in Ruby on Rails) and it can be extended by third party plug-ins. I made a list of the main features of Redmine that caught my attention:


Multiple projects, sub-projects and versions support;
Task planning (roadmap);
Issue tracking support;
Gant chart and calendar;
User role based access control;
SCM integration (SVN, CSV, Git, etc);
Wiki and forum support per project;
Translated in several languages;
Third-party plug-in support;


Projects, Subprojects and versions


Because Redmine is geared toward software development, a project may have multiple versions, which make it easier to plan tasks, and if new requirements come, they may be included in future versions, or put in a version called “Unplanned” or “Future release” those bright ideas users rise when the software is already being tested.


A project may have several subprojects. A subproject is like any other project, but is linked to a main project. In my case, we have a software being customized to different customers, so we create a subproject for each client. The big advantage is that features of the subprojects are shared with the main project, like tasks, activities, calendar, etc.


Roadmap

A roadmap is built for each version of the project using its issues. Bugs are not considered in the roadmap. One feature I really like is the progress bar displayed for each version, showing the percentage of closed issues compared to the total – when you reach 100%, your version will be ready.


Redmine also generates Gantt chart, showing the tasks in a timeline. You have to specify the start and due date of each issue in order to have the chart properly generated; otherwise you’ll just have a list of tasks in the vertical line with no correspondence in the timeline.


Issue tracking


Probably this is the most used feature during project development. An issue may be an activity to be performed along the project, but it may also be a bug reporting found during tests. If e-mail is properly set in Redmine, users will receive messages each time a new issue is registered.


One feature that I have not tested, but which is mentioned in Redmine documentation, is automatic registration of new issues by sending e-mail messages to an account recognized by Redmine.


User role based access control


You may create different roles to specify group of permissions for the members of your project. Each role has a set of permissions that indicates that operations users can do in a project inside Redmine. Redmine is initially configured with three profiles: Manager, Developer and Reporter, but you may set as many as you want.


Talking about permissions, another important feature is the public visibility of a project. A public project may be viewed by anyone (no authentication is required), but you can specify what information in the project will be publicly available. For example, you want to have just the roadmap and issues available to the public; other information will require authentication.


Forums and Wikis


Redmine also supports the creation of forums and Wiki pages per project, covering all features of any equivalent tool, but it is important to mention the text formatting capabilities of the forum and wiki. Redmine contains a wide range of formatting options, from bold and italic texts, links and images to automatic formatting of source code snippets, using special chars inside the text. For example, to display the text "apple" in bold, just write * apple * (between asterisks). At first it seems a bit complex, but you get used to it very fast (thanks to the available help on-line beside the text fields). The same formatting processor is also used in issue texts.


Integration with source code repositories


Redmine supports a variety of source code repositories. In my case it fits like a glove because we use SVN. But it doesn’t offer a deep integration with SVN. We found a page displaying the latest changes in the repository and a very simple statistics report – nothing more. If the user account name is the same as used in the repository, it is recognized by Redmine and all reports are displayed with the user’s full name (not a big deal). Another interesting feature is the possibility of linking the comments made by users in the source code repository to an issue in Redmine - By submitting the changes to the SVN, simply include a hash tag followed by the issue id (eg # 123 .) In Redmine, the reference to the issue will be displayed as a link to it.


Extensible via plug-ins


Despite not having a very extensive list, and many of them are not updated to the latest Redmine version or even they are still under developed, you can extend or add new functions in Redmine using plug-ins. In Redmine site you can have a list of them. A plug-in that I really like is the one that enables you to paste an image (a screenshot, for example) from the clipboard to an issue. Make it much easier when you want to attach a screenshot of the application to an issue. The name of this plug-in is Attach Screenshot Redmine plugin.


Other features


Redmine is translated into several languages, and fortunately is available in Portuguese from Brazil (where we use it today). The translation is very honest and adjusted to the context where messages are displayed. You can store documents and project files, which facilitates the sharing of project documents, like user guide, technical documents, etc. Another interesting feature is theme support - Just download a theme and copy it to Redmine themes folder. The theme can be selected in the administration module, making it easier to change Redmine look and feel;


And the cons ...


There are some negative points I found during this short time of use:


1 - Difficult to install in Windows environment – I struggled for 2 days to have it installed on a Windows server. Redmine was developed in Ruby on Rails, and besides having to install the language, you must also install the correct versions of each package, otherwise it does not work properly (and unfortunately, correct version is not always the latest version);


2 - Despite all resources, Redmine does not have a very large installed base, and it seems to depend on individual efforts to keep it on, turning to be somewhat uncertain the future of the tool, but nothing that you have to worry about

Nenhum comentário:

Postar um comentário