Scheduling tasks with CodeBeamer

We’ve been running Intland’s CodeBeamer on the OpenAmeos community platform scopeset.de for quite a while now. Overtime, we’ve made some extensions which we’d like to share here. This article is the first in a series which will highlight some of these customizations.

Scheduling tasks, the challenge

Typically, in any issue tracking system, you work with a list of tasks. This list might be categorized or might be broken down hierarchically, but when it comes to scheduling tasks, you typically do that by moving around task bars in a Gantt chart. This is where the idea started to integrate a project management tool into CodeBeamer so that it would allow to schedule (and monitor) tasks which had previously been created in CodeBeamer. CodeBeamer’s API is well suited to provide the necessary hooks.

The workflow

The following diagram illustrates the workflow which is used for task scheduling with CodeBeamer and GanttProject:

task_workflow

Implementation

As project management tool, we chose GanttProject, for the primary reason that it suffices for the scheduling activity and that it has a relatively simple XML storage format. The required Java code is a straight forward implementation which uses CodeBeamer’s remote API to export all tasks for a given milestone into GanttProject’s XML format.

The following data is exported into the Gantt chart:

  • Estimated hours
  • Spent hours
  • Assignee
  • Hierarchical breakdown
  • Dependencies

Additionally, task bars can be color coded for different assignees (or red for over-time).

After having scheduled the tasks in GanttProject, the XML file is then imported back into CodeBeamer, task start and end dates as well as task dependencies and parent child relationships are updated.

Noteworthy to mention on the implementation is the usage of a task-type-independent and task-type-specific layer of DTOs on top of the API DTOs. This allows to share common functionality for different exporters and importers.

Source code

The source code for this integration is available on javaforge.com

Next in this series will be an article on a Wiki ChangeLog plugin.

Leave a Reply

You must be logged in to post a comment.