Moving from one development planning tool to another - from XPlanner to Redmine
“The mice cried, pricked, but continued to eat the cactus ,” my opinion about XPlanner users.
Preamble
It so happened that initially our team used XP and Agile development in general. Initially, XPlanner was chosen - it’s just designed for iterative software development.
Over time, the development processes have changed, and it is less like those that were originally.
And only recently I managed to drag everyone to Redmine.
')
<offtopic> Personally, XPlanner always annoyed me (“annoyed” - the most accurate word) - too much had to be done to get what I wanted. More precisely, not even the desired - but possible. Too incomprehensible, inconvenient and inhuman interface. Elementary things demanded great effort from me and brought little benefit.
</ offtopic>
About XPlanner
Xplanner — XPlanner is a project planning and tracking tool for eXtreme Programming (XP) teams.
Xplanner is a software tool for scheduling and managing tasks for teams working in the style of extreme programming. The project ceased to be updated in May 2006.
XP has several principles, some of them find support in XPlanner, namely:
- The software development process consists of short iterations (usually one or two weeks) during which it is necessary to perform a fairly complete block of product functionality. If it turns out that it is not possible to finish in time, it is necessary to reduce the functionality, but do not shift the time.
- Functional blocks are divided into "stories" (story) - each subsystem, or module - is written its own history. Stories are discussed at meetings and recorded.
- After this, the stories are divided into tasks that are evaluated before the start of development.
To do this, XPlanner has the appropriate tools - projects consisting of iterations, iterations of stories, stories of tasks. There are performance metrics. Despite the large list of features of XPlanner, in our team, only two of them were used:
- Breaking up the process into iterations, stories, tasks.
- Accounting time.
Cons XPlanner (in my humble opinion)
In fact, from a planning tool, it has become a time tracking tool. Because how to plan every week, transfer tasks from iteration to iteration, from history to history was very long. But what is worse (from my point of view), he could not perform basic things that were emulated by the hands of developers. For example, there were the following strange processes:
- Because XPlanner does not support email notifications; each developer was obliged to complete a task by writing a letter to the special mailing like “Task <task id>” completed.
- If during the development the programmer understands that he does not meet the deadline, he changes the estimate in XPlanner and (you guessed it?) - yes! writes a letter to the list of "changed the assessment of the problem."
Friends say that there are notifications in XPlanner, but I can’t say anything precisely about them - Every evening, the developer writes a report on the tasks to the newsletter (how much time is spent and which are closed).
- When commiting, Id was written as a comment. To find out the essence of the task of kommit it was necessary to copy Id, open the browser and crawl into XPlanner - to watch.
- In addition, because XPlanner does not support task statuses, so that the tester knew which tasks were not yet tested, the “Testing” story was started. The developer, having completed the task, also had to enter the letter and add a link to the completed task in that story.
- The tester, in turn, was forced to look at them on the subject of “whether something new has appeared.”
- Comments to the tasks were not used - everyone added them directly to the text of the task without forgetting the weighty “Vasya”.
- Tasks do not have priorities so they were called like this: “(0) Error in modules 1”, “(1) Not a very important error”.
- Tasks do not have additional statuses and relatedness with tasks (blocked, duplicates). Therefore, in the title of the task it was possible to meet the construction “LOCK”.
- There is no common pool of tasks, and tasks in development. For the pool, Iteration Infinity was used. From week to week, tasks for iteration are not the most convenient.
- There are no convenient things: filters by tasks (it is very important! You cannot see the statistics of all important errors for all projects), color schemes (so that tasks of the 0th priority immediately catch the eye).
- No workflow. The task can be created by anyone, by anyone. Track it tested or not - not. (And what about those who have a rather tough development process and many states: created, approved, executed, blocked, tested, closed, returned, rejected?).
pros
- The development language is Java, in which we develop our products, which made it possible in principle to refine it ourselves, a couple of small things are really
Now about redmine
Redmine is a flexible project management web application. Written using Ruby on Rails framework, it is cross-platform and cross-database.
Redmine is a flexible software development management tool. It is developed on the RoR platform and can use various databases (SQLite, MySQL, PostgreSQL).
Redmine at first glance liked the fact that it allows you to flexibly configure almost everything from the interface, because it already has a lot of useful things, but at the same time there is nothing superfluous.
Redmine Briefs
- Directories. A reference book is a list of little-changing service or user entities that can be changed from the interface. You can configure the following things:
- List of task types (“Error”, “Refactoring”, “Support”, “New functionality”, etc.)
- List of task statuses (“Created”, “Running”, “Blocked”, etc.)
- Possible roles of employees in projects (Manager, Developer, Tester)
- Priorities of tasks.
- Categories (defined by projects). In fact - modules or subsystems within the project for additional partitioning of tasks
- Flex attributes - for a task, a project, a user, and a time report, you can add fields: For example, “Location at the office” for the user, or “contact person from the client” for the project.
- Workflow of tasks - connection of status — type of task — role — possible transition. It defines who, in what state (tasks (:), what type of task can be transferred to what status. For example: Only the “manager” and “client representative” can create tasks, and the “client representative” can only be tasks of the “error” type. Finally Only a “tester” can close tasks, etc.
- Multiproject. Unlike the popular Trac , Redmine out of the box supports multi-design. In addition, projects can be nested. The use case, for example, is the following: The project “Company name CRM” is a project for the product and the implementation of the CRM system. Nested projects “CRM implementation in“ Horns ””, “CRM implementation in“ Hooves ””.
- Role system of rights. Roles, besides participating in workflow, may have different rights in the system. Configured by setting several dozen checkboxes. Redmine can also be used as an external customer portal - all you need to do is configure the “Client” role.
- Customizable task list . Of course, the main system window for the manager is a task list. It provides:
- Setting the default column list (no column needed - unchecked and not visible).
- Sort by columns
- Filtering Filtering is possible by several fields, for example: “Errors of 0th priority assigned to Vasiliy Pupkin relating to the module“ Authentication and access rights ”in the states“ Transferred to testing ”or“ Closed ”.” You can save the created filters for yourself (not to configure it once again) or for all project participants for quick access. For example - “open tasks of the 0th priority”.
- Notifications via RSS or E-mail
- Each list (including filtered) can be received in the form of CSV, PDF, RSS. A scenario, like this: The tester creates a filter for “Tasks in the status“ Sent for testing ”, subscribes to RSS” and that's it — new tasks will fall automatically to him, no complicated or surrogate things for you — get new ones and test.
- Email notifications. When changing tasks, evaluating, adding comments, etc. the system spamms mail to users who are concerned. Developers do not have to write "I closed the task." Redmine will write this for him.
- Integration with SCM (Code Management Systems) - SVN, CVS, Git, Mercurial, Bazaar and Darcs
- Set up storage for each project.
- Web interface for viewing the repository. The system creates a web interface for viewing the code repository , change history both in the form of commits and for files , it is able to compare versions (for non-binary files) and show diffs .
- Tracking commits. Having specified in the comment to the commit “id 333” (the template is configured), the developer can automatically link the commit to the task. When viewing a commit, you can go to the task description, and a list of commits will be displayed on the task card.
- Automatic transition to the "closed" status at commit. If the developer writes “fixed 333” (the template is configured), then the commit will not just become attached to the task, but will also transfer the task to the required status — for example, in “Transferred to testing” - it will not need to go to Redmine.
- Tasks. On the task card, in addition to the above, the history of discussions (which can be received in the form of RSS ), lists of related revisions, history of version changes, ratings, and other parameters are displayed.
- CSS. CSS styles deserve special attention. The system supports themes (they are skins), which are set using CSS. Inside CSS, it is applied quite sensibly, I have not yet found the object whose design could not be changed using CSS. Changes in our skin relate mainly to the task list (this is the main window of the project manager. Done: Color status display (Locked - red, tested - green, closed - gray). Color and brightness priority display - (0 — the brightest, 1 — less bright, everything after the 2nd is the same.) The font in the input fields of the description of tasks is increased - it is more convenient there (:
- Plugin system. Redmine has a plugin system that you can write yourself. Now there are 10 plug-ins, although literally a month ago it was 3 or 4.
- Good search
- Forming a roadmap . General statistics are shown, and there is a detailed page for each version .
- Summary of the project . The summary displays general overview statistics for solving problems in a project.
- Personalized (personalized) page. The personal page displays the assigned tasks and some other blocks that the employee wishes to see: a calendar, time expenses, documents, news, and monitored tasks.
Other useful things that we do not use (yet)
- Integration with Mylyn. Mylyn is a plugin for Eclipse IDE that takes developer tasks from the tracker and displays them directly in the IDE. Integration - loudly said, but there are
instructions on how to make friends with them.
- News - allow you to publish project news that can be received in the form of RSS. For example - to automatically publish them on the external website of the company in the product section.
-
Project wiki - for doing everything that can be useful - documentation, access details, etc. The trunk — the wiki version is significantly better than the last 0.7.3 release — there is a hierarchy of pages, bread crumbs in navigation, etc. I plan to drag with the MoinMoin wiki, which is used now, in Redmine - everything in one place is better.
-
Integration with LDAP . Redmine supports integration with a domain controller via LDAP.
-
Forums . Within the framework of projects for discussion, you can create forums (quite standard functionality: discussions with notifications on e-mail, RSS, subscription to sections, topics). In the trunk version, it seems that you can respond to notifications and responses will be posted on the forum - you can make a certain analog of mailings.
- Documents. There is a document repository - a list of html-files by authors. Something like a wiki article playlist
- Files. Storage of files related to the product version. A list is shown, and the number of downloads - can be used to store downloaded versions of products.
- Self-registration of users. Redmine is used internally, so self-registration does not make sense.
-
Activity . Tape in which task changes, commits, etc. are published.
-
Change log (Changelog). Some types of tasks (for example, “Functions” and “Errors”) can be noted as “logged in the change log, the changelog will be generated automatically.
- Automatic construction of the calendar and
Gantt charts .
- Avatars of users from the service
Gravatar
What is missing
There are trifles that are missing and which are clear how to do, but we don’t have Ruby programmers. Even taking into account the fact that these Wishlist are about 20 lines of code :)
- There is a desire that the “readiness” parameter is calculated automatically on the basis of the estimated and elapsed time - it is very lazy to fill it with hands.
- I would like a more convenient form of comments to the task - just a separate link, not through the “update the task”
More complex things - I also want:
- Tweaking notifications - the system is now quite spamming - notifies of all changes to tasks (comments, rating, etc.). I would like to see the setting of categories of spam.
- Integration of forums with mail is sufficient so that you can opt out of mailing lists.
- User profiles within the system - so that reports on the elapsed time are displayed there not for the project, but for all, assigned tasks (again for all projects) and so on.
Cons Redmine
Quite a small (compared to the same Trac) community. Accordingly, a small number of plug-ins (
hack in Trac terminology).
One (mostly) developer - because of this relatively low speed of development (for us personally, this is not very important, because our needs are covered by 90 percent).
The first (and all subsequent doses) is free.
Especially for Habr.