giovedì 11 settembre 2008

Using JIRA in an agile environment

Using JIRA in an agile environment

Although JIRA is not explicitely designed for use in an agile environment, its flexibility allows agile developers to adapt it to their needs, making it a good complementary software for project management.

After a first look, there are some obstacles in JIRA issue management, that we’ll need to workaround:

  • there is no “difficulty point” variable for the issues;
  • there’s no “iteration” concept: we’ll need to use the “version” variable to represent the iteration;
  • the available reports and graphs are based on the concept of tasks per version. However, in an agile environment, this information is not important, as it’s much more important the difficulty of the task than the number of them.

Finding a solution to these problems is not easy. Anyway, there are some plugins - both commercial and freeware - that can help us to improve our Jira experience. Let’s see the most important ones.


GreenHopper

GreenHopper by GreenPepper Software is at the moment the most used plugin for Agile developers using JIRA. It’s a stable project with very frequent updates (they claim one release every 2.5 weeks). But it’s not a free plugin: the licence prices range from 350 canadian dollars (234 €) to 1150 canadian dollars (768 €) per production server. They offer a free licence too, but only for managers of open-source projects.

GreenHopper is a full implementation of the Agile planning wall in a JIRA plugin.

It represents all of your JIRA issues as an index card; different types of issues are different colors. Each card displays the Summary and the other information crucial to planning, like estimates and time-remaining. It hides all of the other information: full description, comments, etc., but they’re all just a click away. You can drag and re-order the tasks. You can edit them on the fly, to add comments or log work.

The Planning Board helps you schedule many issues over an entire release cycle. GreenHopper also offers a Task Board to show you the work-queue for a version or component. And there is a Chart Board which will show you the burn-down chart for a release.

The chart board offers the following graphs:

  • Display of the burndown curve
  • Display of the team effort curve
  • Display of the estimation accuracy curve
  • Burndown chart based on a custom field
  • Burnup chart based on a custom field
  • Value chart based on a custom field
  • Issue filtering
  • Configurable start date and end date

The most evident downsides of this plugin are that the graphs it produces are limited to a single iteration (or version); and these graphs can be seen only after the iteration is closed.

This problem is mostly due to the internal Jira structure; like previously said, the Jira application lacks an “iteration” concept. The team effort curve for a single iteration, telling how many story points are being completed every day, doesn’t give any information about the overall project.

The Planning board, instead, is a good way to keep track of the story cards of the project. However many agile developers still prefer to have physical papers, sticky notes and a real blackboard.

Link: GreenHopper plugin

CFO Approval Required

CFO Approval Required is a plugin developed by Go2Group. Its original target was different from the one an agile group could use it for, but sometimes it may find its space. It’s a free plugin, so try it if you need it. It’s not maintained since the original 1.0 version, released in April 2007.

This plug-in is designed to allow a CFO or manager to approve issues based on the amount of a requested purchase. The issue is then forwarded for approval to a second user, such as a Controller or Project Manager.

This plug-in is also used for any generic approval process such as travel request, vacation request, Feature Request, Test Requests, PO, etc.

This plug-in can be useful in scenarios such as developer changeset (set of associated changed source code files) for verification to a team member, if approved by the team member the changeset is then marked as ready for test. This scenario has proven useful to shops working in xtreme - scrum - agile environments.

In my opinion, this plugin can be useful only in big teams, or in outsourced development teams. Agile practices encourage communication as the most important value, so decisions are usually taken in the open space. However in different environments this plugin could help a lot.

Link: CFO Approval Required plugin

Custom Issue Order

This freeware plugin is very simple, yet it can be very useful. It’s not being updated since November 2007.

(it adds a) Custom field to order issues. With this plugin, any issue list can be ordered in a custom way. Useful for work queues or fine grained prioritizing.

It can be a cheap alternative (even if less eye-pleasing) to the GreenHopper planning board: if your only need is to sort user stories, and you don’t mind colors and stuff, this one is for you. The custom field, however, cannot solve the big problems noted before: it’s related to the single issue, not to iterations (= versions).

Link: Custom Issue Order

Laughing Panda JIRA Agile Report Plugins

This free plugin offers at the moment a single graph: specifically, it’s a workload burndown chart (in hour or from a custom field like story points). Again, it suffers the same problems of its bigger brother GreenHopper: graphs are related to the single iteration, so they don’t give any “wide view” of the project.

Link: Laughing Panda

Agile Velocity Tracking plugin

This free plugin offers a report that will generate velocity tracking charts over versions. The report displays charts for Velocity Points tracking. Versions are treated as iterations. The points are gathered from a custom field which must be manually added. Iterations can be of variable length. Forecasting is currently done on ‘yesterday’s weather.

This plugin offers something really different from the previous ones: it’s giving the chance to analyze more than a single iteration. The information gathered from its graphs are usually more important to the agile developer’s eyes: points over stories, points burndown.

We could argue that this plugin needs a couple of iterations completed before proving its strength, as it doesn’t give any information about the current iteration; the predictions made by this plugin are not based on a very complex model, so they could be inaccurate and should be treated carefully.

The development of this plugin is not going on since August 2007.

Link: Agile Velocity Tracking Plugin

Agile Wall Plugin

This is another free plugin, offering a display of a Project Wall.

Report for viewing issue statuses in the same way as in agile project progress walls (issues in three columns: to do/in progress/done). Many agile teams use task walls to represent the current status of the sprint (or project). Tasks are grouped by their status to three columns: Not started, In progress and Done. Tasks are usually also sorted so that top priority issues are on the top and low level issues are on the bottom.

Agile Wall Report plugin tries to mimic this view in JIRA so that team members can use a same kind of a view for a current project version that is being developed.

Note that current version uses default JIRA statuses. Issues with “In Progress” status are rendered in the middle and issues with “Closed” status are rendered as done. Other status types are rendered in the Not started column.

The biggest limitation of this plugin is the impossibility of using custom issue status (e.g. “waiting for approval”, test related statuses and so on). However it’s still a good plugin, allowing a visual representation of a chosen sprint (or version) to be seen in Jira. Like said for the GreenHopper plugin, many agile developers prefer a real board, so the real need of this plugin is subjective; but this one is free, so you can try it and decide by yourself.

The latest release was made on 2007, July 17.

Link: Agile Wall Plugin

3 commenti:

  1. Thanks for mentioning my Agile Wall plugin.

    I have to say that after our team started on using the GreenHopper plugin I haven't really coded any new features for the Agile Wall plugin. I truly recommend people to try out the GreenHopper plugin as it gives you many excellent features for its price.

    RispondiElimina
  2. Hi,

    Just to correct some information about GreenHopper on your post.

    ~quote~
    The most evident downsides of this plugin are that the graphs it produces are limited to a single iteration (or version); and these graphs can be seen only after the iteration is closed.
    ~quote~

    Actually you can organize your iterations in a hierarchycal way so you CAN produce release charts AND iteration charts. All you need :)
    See: http://www.greenpeppersoftware.com/confluence/display/GH/PLANNING+BOARD#PLANNINGBOARD-organizing
    And: http://www.greenpeppersoftware.com/confluence/display/GH/CHART+BOARD#CHARTBOARD-hburndown (the by children option)

    Also GreenHopper does save snapshots at release time so you can actually revisit them anytime even if the iteration is released or archived :)

    Else great post!

    Cheers,

    RispondiElimina
    Risposte
    1. Greenhopper 6.1 has some serious design flaws that will frustrate you if you are running larger projects. E.g. it insists on using manual drag-and-drop ranking for everything and doesn't respect (or even allow) ordering by priority. Get ready for a lot of tedious dragging and dropping if your backlog grows over 100 items

      Elimina