Initial Discussion

The initial discussion and thoughts surrounding this plugin can be found on the AgilePluginScratchPad and the AgileTrac2 pages. This, along with reading some Agile Development books, or experience with Agile should help answer any questions surrounding the reasoning and goals of this project. When I have more time I'll write these out more explicitly.

Initial Approach

Writing a large plugin for Trac is not easy, at least not very straight-forward. The approach adopted here then is to identify the simplest thing that could possibly work and do that. Currently the simplest thing is to take a copy of the latest release of Trac (in this case 0.11b1 and hack it so that it does what we need. The latest version of this code can be found in the repository at source:/BRANCH/TRUNK/source/trac0.11b1. To use it simply replace your current Trac install with this one and then upgrade your Trac environments so that the necessary database changes are made.

Once we have a basic understanding of what needs changed we are then in a position to separate those changes out into a plugin. We really want to do as little as possible while still providing the necessary functionality. In that light we may opt for integration with other Trac plugins such as those identified in the 'Related Plugins' section that follows.

It was originally thought that we would need to provide a system for managing User Stories that almost completely replicates the current ticket system, but with recent changes to the ticket system that have increased its flexibility it is more likely that we will simply extend it. One route worth exploring is to provide alternate views into the ticket system. For example, User Stories would have a different view than a Defect or other ticket type.

AddingIterations is probably the point were most changes are required as we need to modify both the ticket system a little and also modify milestones to make them order dependent as well as replace the Due Date field with a date calculated from iteration progress.

So far we have some changes that will allow a Relative Size to be assigned to a ticket and then the associated Milestone progress is calculated based on the size of the completed ticket. The progress bar displayed is based on the total relative size of the Milestone so that a visual comparison is easy to make.

For example,


Related Plugins

Useful third-party plugins that we will likely integrate with or even depend on for certain functionality:

  •  MasterTicketsPlugin
    • This plugin allows you to identify that a given ticket is blocked (or depends on) another ticket.
  •  GraphvizPlugin
    • This plugin uses Graphviz to display graphs from a wiki markup.

Interesting Plugins

Possible related plugins we should be aware of,

Of other possible interest might be

Notes about setting up an environment for testing