Setup a Release Gantt with teams

Modified on Thu, 9 Nov, 2023 at 4:12 PM

This is a new feature available from version 23.4.0
Please check the main information about team assignments before you start configuring the Gantt Chart: click here

In this article, we'll take a look at how to set up a more complex Release Gantt, paying attention to the team assignments.


What purpose does it serve?

With this Gantt Chart, you'll be able to see the Team Assignment easily with the correlation to the specific Plan.

it'll help you to see the specific WIs and their assignments for a specific Team for a given period of time.



  • In this article we'll mention how to:

- configure Gantt Chart;

- configure Page Parameters to show WIs assigned to the specific Team and Release;

- add Iteration markers to see the Plans;


First of all, to connect the Plan Releases to the Teams, we should use the Nextedy Team enum;

With the help of this enumeration, you'll be able to assign the Plan to a specific Team.


We were showing how you can use the same enumeration for the regular WIs like Work Packages in the previous article about how to set up a basic Gantt chart (link here).


But in this case, we need to have this custom field both for the Plan and specific WI type.


  • you'd need to have separate Iterations for each of the Teams, so you can get all the benefits of the Teams functionality; 


  • select the appropriate Team from the list so if you have Iteration 36 - Gama, as a team in the custom field you also select Gama.


Now we are ready to switch back to the Gantt configuration.


  • Create 2 Page Parameters: Release and Team;


  • For the Release Page Parameter select the following properties or modify them according to your project configuration:


  • For the Team Page Parameter select the following:


Connect Page Parameters with the Gantt by adding them to the Query field; choose Lucene + Velocity Query Type:

team.KEY:$pageParameters.team  #if($pageParameters.Release.singleValue())  AND PLAN:($pageParameters.Release) #end

Don't forget to add the Page Parameter widget to the Page, so as a result you'll be able to switch between different Teams and Releases easily.




As you can see now Gantt shows us the values of the specific Team and Release.


  • Outside of Team assignees

If some of the items are planned for this specific Team, but the user is not added to it, this assignee would be added to the specific "Outside of Team" line. You can click on it to see the exact assignee.



  • Add Iteration markers


To make Iterations visually easy to distinguish we'll add some markers in the Markers Script:


var DAY = 1000 * 60 * 60 * 24;

var timePoints = trackerService.getPlanningManager().searchPlans("template.id:iteration AND project.id:Gantt_Teams AND team.KEY:"+config.pageParameters.team,"id",1000).iterator();
while(timePoints.hasNext()){
var tp = timePoints.next();
var marker = markerFactory.addMarker();
marker.setText(tp.getName());
marker.setDate(new java.util.Date( tp.getDueDate().getDate().getTime() +DAY));

marker.setColor("fuchsia");
}

Make sure to change it depending on your project name and structure.


Now you can see perfectly all WIs assigned to the specific team with the correlation to the Plans.



  • Set the duration of the WIs to the longevity of the Iteration


If there is no specific duration to the WIs set, we can make them last the whole iteration. 

To do so, we'll need to add some additional scripts to the Item Script.


if(wi.getType().getId() === "workpackage"){


var plans = wi.getPlannedIn().iterator();
while(plans.hasNext()){
var plan = plans.next();
if(plan.getTemplate().getId()==="iteration"){
task.getFields().put("iteration",plan.getName());
if(task.unplanned){
task.start_date=util.getDate(plan, "startDate");
task.end_date=util.getDate(plan, "dueDate");
task.duration=null;
task.unplanned=false;
}
}
}
}

This script will iterate through all WIs of type "workpackage" and if there are no specific start and due dates set for this WI, it will keep the fields of duration and Start date empty, but graphically make it last for the Iteration period it is assigned in.



See also:


In case of questions, please contact [email protected]


Was this article helpful?

That’s Great!

Thank you for your feedback

Sorry! We couldn't be helpful

Thank you for your feedback

Let us know how can we improve this article!

Select at least one of the reasons
CAPTCHA verification is required.

Feedback sent

We appreciate your effort and will try to fix the article