comsolit / ComsolitBacklog

Mantis Plugin to prioritize backlog items in a Scrum / Agile process
Other
3 stars 1 forks source link
looking-for-maintainer unmaintained

** Overview

This plugin allows to prioritize Issues of a project relative to each other and thus to manage a Scrum/Agile backlog of user stories.

The plugin adds the menu item "backlog". The view of the backlog is separated in prioritized (at the top) and unprioritized Issues (at the bottom). The top area is the "backlog". Items in the bottom area have not yet been added to the backlog. Issues can be moved from the bottom area to the backlog either by the action buttons in each line or by drag-and-drop.

Inside the backlog the items can be moved around by drag-and-drop.

+CAPTION: Screenshot of the ComsolitBacklog Mantis plugin

+ATTR_HTML: :align center

[[file:ComsolitBacklogScreenshot.png]]

** Installation

Place the content of this plugin inside your mantis installation under plugins/ComsolitBacklog. You also need to configure three global variables in your config_inc.php:

** Implementation

The plugin adds an additional decimal (float) column 'backlog_position' to the mantis_bug_table. This value indicates the position of the Issue in the backlog with lower values indicating higher priority or position.

When an item is moved in the backlog, the new backlog_position value is calculated to be in the middle of the item before and after it, i.e.:

backlog_position=.5*(issue_before.backlog_position + issue_after.backlog_position)

If the item is moved to the top of the list than issue_before.backlog_position is assumed ot be zero.

If the item is moved to the bottom of the list than

backlog_position=issue_before.backlog_position + pow(2,16)

After enough movement operations it can happen that the limit of the databases floating point precision is reached. Therefor a 'rebalance' operation is performed when the minimum distance between two items falls below one. During rebalancing all Issues in the backlog get new backlog_position numbers which are multiples of pow(2,16).

** Requirements, Development Status and Disclaimer

** Third party libraries

The plugin uses [[http://angularjs.org][AngularJS]] as the only JavaScript library and [[http://jasmine.github.io][Jasmine 2]] for testing.