wiki:EstimationToolsPlugin

Version 29 (modified by AdrianFritz, 3 years ago) (diff)

Work-in-process. Restructuring page. Tag it for 0.12. Starts to D.R.Y.

Tools for visualizing and quick editing of effort estimations

Description

EstimationTools includes macros that visualize remaining effort estimations, e.g., as Burndown Chart, as well as an extension that allows inline editing of estimations in the query view.

Usage

BurndownChart

Creates burn down chart for selected tickets.

This macro creates a chart that can be used to visualize the progress in a milestone (e.g., sprint or product backlog). For a given set of tickets and a time frame, the remaining estimated effort is calculated.

[[BurndownChart([<query>,<startdate>,[<enddate>,[<weekends>,[<title>,[<expected>,[<gridlines>,
      [<width>,[<height>],[<color>],[<colorexpected>],[<bgcolor>],[<wecolor>]]]]]]]])]]

Parameters

The macro has the following parameters:

Argument Version Description Default
query a comma-separated list of query parameters for the ticket selection, in the form "key=value" as specified in TracQuery#QueryLanguage.
startdate mandatory parameter that specifies the start date of the period (ISO8601 format)
enddate end date of the period. If omitted, it defaults to either the milestones (if given) completed' date, or due` date, or today (in that order) (ISO8601 format)
weekends include weekends in chart. true
title chart title. first milestone or 'Burndown Chart'
expected show expected progress in chart, 0 or any number to define initial expected hours 0
gridlines show gridlines in chart, 0 or any number to define hour steps 0)
width width of resulting diagram 800)
height height of resulting diagram 200)
color color specified as 6-letter string of hexadecimal values in the format RRGGBB. ff9900, a nice orange.
colorexpected color for expected hours graph specified as 6-letter string of hexadecimal values in the format RRGGBB. ffddaa, a nice yellow.
bgcolor chart drawing area background color specified as 6-letter string of hexadecimal values in the format RRGGBB. ffffff.
wecolor chart drawing area background color for weekends specified as 6-letter string of hexadecimal values in the format RRGGBB. ccccccaa.

Examples:

[[BurndownChart(milestone=Sprint 1, startdate=2008-01-01)]]
[[BurndownChart(milestone=Release 3.0|Sprint 1, startdate=2008-01-01, enddate=2008-01-15,
   weekends=false, expected=100, gridlines=20, width=600, height=100, color=0000ff)]]
Burndown Chart

HoursRemaining

Calculates remaining estimated hours for the queried tickets.

The macro accepts a comma-separated list of query parameters for the ticket selection, in the form "key=value" as specified in TracQuery#QueryLanguage. Example:

[[HoursRemaining(milestone=Sprint 1)]]

WorkloadChart

Creates workload chart for the selected tickets.

This macro creates a pie chart that shows the remaining estimated workload per ticket owner, and the remaining work days.

Parameters

Supports the following parameters:

  • a comma-separated list of query parameters for the ticket selection, in the form "key=value" as specified in TracQuery#QueryLanguage.
  • width: width of resulting diagram (defaults to 400)
  • height: height of resulting diagram (defaults to 100)
  • color: color specified as 6-letter string of hexadecimal values in the format RRGGBB. Defaults to ff9900, a nice orange.

Examples:

[[WorkloadChart(milestone=Sprint 1)]]
[[WorkloadChart(milestone=Sprint 1, width=600, height=100, color=00ff00)]]
Workload Chart

HoursInPlaceEditor

This component allows to edit the remaining hours field directly in the custom query view as well as in the report view.

Screenshot of HoursInPlaceEditor

  • to show the remaining hours in the custom query view, you have to enable the corresponding column
  • if you want to show the remaining hours column in your SQL reports, you need to join the ticket table with the ticket_custom table, which contains the custom fields.
    SELECT
      ...                                    # normal SELECT statement
      id AS ticket,
      COALESCE(tc.value,'') as estimatedhours, # adds the value of estimatedhours in a column that must have same name original field
      FROM ticket t
      LEFT JOIN ...                          # other LEFT JOIN statements (in the default Trac queries) can be left in place
      LEFT JOIN ticket_custom tc ON tc.ticket = t.id and tc.name = 'estimatedhours'
      ...
    
    • You could change '' to '0' to show 0 hours for tickets that don't have a corresponding estimated hours field.
    • Tickets may have an estimated hours field that is empty, in which case you may still see "blank"
    • See #4549 for a more complex example

viola: Using EstimationToolsPlugin, one can schedule tickets of a project with SchedulingToolsPlugin - try it!

Install

  1. Install
    • Trac 0.11.x and Trac 0.12.x is supported in trunk.
    • The latest version for Trac 0.10 can be checked out here.
    1. Manually: Deploy the egg:
         $ python setup.py bdist_egg 
         $ cp dist/*.egg /path/to/trac/env/plugins 
      
    2. Globally:
         $ easy_install https://trac-hacks.org/svn/estimationtoolsplugin/trunk/
      
  2. Add a custom field into 'trac.ini' file to store the estimations for the current remaining effort, as follows:
    [ticket-custom]
    estimatedhours = text
    estimatedhours.label = Remaining Hours
    estimatedhours.value = 0
    
  3. Enable the plugin by updating TracIni file (..../trac.ini) as follows:
     [components]
     estimationtools.* = enabled
    
  4. Configure the plugin at its own configuration section, placed into 'trac.ini' file as follows:
    [estimation-tools]
    # if you want to use another field than estimatedhours you can change that
    estimation_field = estimatedhours 
    # Set to a comma separated list of workflow states 
    # that count as zero in BurnDownChart. Defaults to 'closed'
    closed_states = closed,another_state  
    # Suffix used for estimations. Defaults to 'h'
    estimation_suffix = points        
    # If you want charts to be served from the server set to true. Useful for SSL connections. Default 'false'
    serverside_charts = false
    
  5. Restart web server on command line:
       $ sudo /etc/init.d/apache2 restart
    

Requirements

The charts use Google's Chart API, hence no additional python modules are required.

The HoursInPlaceEditor requires the XmlRpcPlugin.

Plugin Installation

Still in doubt? Please see Trac's plug-in installation instructions for more details.

Bugs/Feature Requests

Existing bugs and feature requests for EstimationToolsPlugin are here.

If you have any issues, create a new ticket.

Known issues

Planned enhancements

Source & Download

You can check out EstimationToolsPlugin from here using Subversion, or browse the source with Trac.

Download the zipped source from here.

Recent Changes

[13940] by rjollos on 2014-05-28 04:00:41
0.4.7: Allow unit tests in each module to be executed using:

python -m estimationtools.tests.__init__
python -m estimationtools.tests.burndownchart
python -m estimationtools.tests.hoursremaining
python -m estimationtools.tests.utils
python -m estimationtools.tests.workloadchart

Fixed several failing unit tests. There are two unit tests that still fail. Refs #11778.

[13746] by rjollos on 2014-03-14 06:27:08
0.4.7: Removed unneeded jQuery library.
[13745] by rjollos on 2014-03-14 06:26:59
0.4.7: Trimmed whitespace using reindent.py.

Author/Contributors

Author: hoessler
Contributors: osimons

Attachments (1)

Download all attachments as: .zip