Extend RTC to compute resource allocation in real-time
Here is a tricky question for the RTC experts.
Is there any way resource allocation can be computed and presented to the user as a view of some sort which is embedded in the work-item editor so that when choosing an owner for that work-item, the choosing can be done by selecting the person with the lowest load factor associated with the time-interval defined for the execution of that task?
Basically, the interaction flow would be:
1. the work-item creator defines the start date and finish date for the task
2. a custom field of type contributor or contributor list is used to allocate team members to the task and the selection of RTC user needs to be done based on information about all users' projected / calculated load for the calendar interval defined in step (1). The user load needs to be calculated on the spot or on request.
The objective here is to implement a demand planning mechanism taking into consideration that activities which are defined in RTC are standardized and there is a pool of people with similar skills, anyone being able to execute the allocated task(s), and the selection of person per task being made based on availability and capacity.
If it is possible to do something like this, how would you go about it?
Is there any way resource allocation can be computed and presented to the user as a view of some sort which is embedded in the work-item editor so that when choosing an owner for that work-item, the choosing can be done by selecting the person with the lowest load factor associated with the time-interval defined for the execution of that task?
Basically, the interaction flow would be:
1. the work-item creator defines the start date and finish date for the task
2. a custom field of type contributor or contributor list is used to allocate team members to the task and the selection of RTC user needs to be done based on information about all users' projected / calculated load for the calendar interval defined in step (1). The user load needs to be calculated on the spot or on request.
The objective here is to implement a demand planning mechanism taking into consideration that activities which are defined in RTC are standardized and there is a pool of people with similar skills, anyone being able to execute the allocated task(s), and the selection of person per task being made based on availability and capacity.
If it is possible to do something like this, how would you go about it?
3 answers
Dan,
unfortunately there is no official API available for the planning component at this time. So you can not easily access the data you need. Using internal API that might be available would be a risky thing to do.
As Canberk mentions, there are extension mechanisms for Work Items that you could look into. In this case it would be a follow up action or participant. This could do things like assign owners and other things on work item level (note, an advisor should never modify the work item that is saved). A participant like some of the examples you can find with this query on my blog could certainly do some of what you desire. However, because the planning API is not public I think it would be hard to make it do all you want. If you are still interested to give it a try, I would suggest to start reading here: https://rsjazz.wordpress.com/2013/02/28/setting-up-rational-team-concert-for-api-development/
unfortunately there is no official API available for the planning component at this time. So you can not easily access the data you need. Using internal API that might be available would be a risky thing to do.
As Canberk mentions, there are extension mechanisms for Work Items that you could look into. In this case it would be a follow up action or participant. This could do things like assign owners and other things on work item level (note, an advisor should never modify the work item that is saved). A participant like some of the examples you can find with this query on my blog could certainly do some of what you desire. However, because the planning API is not public I think it would be hard to make it do all you want. If you are still interested to give it a try, I would suggest to start reading here: https://rsjazz.wordpress.com/2013/02/28/setting-up-rational-team-concert-for-api-development/
Thanks for the advice.
Actually, what I want to do is build a mechanism that provides visual feedback about user activity load when the contributor is to be assigned as owner for a work-item. The way I am envisioning this is that when the control that contains the contributor that is getting the ownership has its drop-down list opened, instead of the well known list, a custom list is opened which lists all the potential contributors and for each one a visual feedback is provided in the form of data and graphic (like a bar whose size and color has some business meaning) based on the user's load for the calendar interval defined in the work-item.
This way, the human operator can make an informed decision about whom to assign the work-item to based on the data that RTC provides in real-time.
Actually, what I want to do is build a mechanism that provides visual feedback about user activity load when the contributor is to be assigned as owner for a work-item. The way I am envisioning this is that when the control that contains the contributor that is getting the ownership has its drop-down list opened, instead of the well known list, a custom list is opened which lists all the potential contributors and for each one a visual feedback is provided in the form of data and graphic (like a bar whose size and color has some business meaning) based on the user's load for the calendar interval defined in the work-item.
This way, the human operator can make an informed decision about whom to assign the work-item to based on the data that RTC provides in real-time.
Comments
This would certainly be a major effort where you would have to create a new presentation, for potentially several clients, and all that entails. And the plan API that is not there is a problem as well.
And you could avoid that, if you use the plan to assign work to users, because that gives you the available data.
We are not using the traditional scheduler, so information about resource load and capacity is not available to us.
I have found some information about how to add new UI elements to RTC and I am thinking about trying it out and see where it is taking me.