How to handle pre-purchased blocks of time

Kevin Kenny May 13, 2012

We have customers who pre-pay for blocks of project time - say one day. The reason for this is that they get a slightly better rate for buying ad-hoc development time upfront for miscellaneous tweaks and updates to their sites.

At the moment we create a parent task in Jira to record this block (and label it as a "block") and record the block size in the estimate field.

Whenever there is a new task that needs working on we create a subtask and enter the estimate.

However because of this issue:

> https://answers.atlassian.com/questions/28575/jira-orginal-estimate-task-and-subtasks

and

> http://forums.atlassian.com/thread.jspa?threadID=33961

Any estimate we put in the subtask causes the estimates in the subtasks to roll up and add to the parent estimate.

If we leave estimates off of subtasks any work logged in a subtask doesn't affect the remaining time left in the parent task.

I thought about just logging these adhoc items of work against the block task, but the problem is that we need to have individual tasks for each item of work (so that we can generate a proper task id, which is logged in source control commits, and keep each task separate).

Basically I need the parent task remaining time to decrease whenever work is done on in a subtask.

Is there a way to do this in Jira? I'd even consider a commercial plugin that supported this type of time tracking.

2 answers

1 accepted

0 votes
Answer accepted
Kevin Kenny May 21, 2012

I solved this myself by cobbling together a bunch of things:

1. Created a new issue type called Block Task

2. Created a new screen and screen scheme for this issue type where I removed canned time tracking fields and added two new custom fields called Block Time Booked and Block Time Remaining. The two custom fields are Interval fields from the Kepler Custom Fields plugin.

Users create normal subtasks under this block task and log work against them (not the parent Block Task).

3. Installed Jamie Echlin's Script runner plugin

4. Wrote a customer listener in Groovy to watch for certain types of updates involving subtasks who's parent task issue type is a Block Task. Each time work is logged in a subtask, or when a sub task is deleted etc I calculate the total time logged for all of a Block Task's subtasks. I then calculate the time remaining and post this in the Block Time Remaining custom field.

5. Created a couple of custom issue reports so that we can track these block tasks.

Job done.

0 votes
Robin Van lent July 25, 2012

Kevin,

We have a similar setup, and have the exact same problem.

would you mind sharing the script you have written? I promise I won't bother you with questions about how to get it working.

kind regards

Robin

Suggest an answer

Log in or Sign up to answer