View Full Version : How is user percentage supposed to work?
r.ghizzi
13-09-04, 06:04 PM
I tried to make a project, assigned a task, assigned some users to that task choosing the percentage they will spend on that task.
That's perfect.
But.
Even when the task is finished (or also the project is completed) the user remaining free time percentage is not back to 100%.
I'm a bit puzzled... can someone try to explain how the user percentage is suposed to work?
PS: i would like to congratulate with everybody who's working on that software, it's really cool :D
cyberhorse
14-09-04, 02:28 PM
the percentage is a bit broken in this aspect. Times during which users are assigned is not taken into consideration from what I've seen.
r.ghizzi
14-09-04, 07:58 PM
Ok i made a micropatch for my purposes that i want to share.
I needed the resources to be freed when the task is actually completed so i added at the beginning of function Check() in tasks.class.php (in modules/tasks folder) that piece of code:
//Start of patch (Roberto Ghizzi r.ghizzi@geckotech.it)
//Micro Patch in order to free up resources when the task has finished
if($this->task_percent_complete == 100)
{
$sql = "UPDATE user_tasks set perc_assignment = 0 where task_id = " . $this->task_id;
db_exec( $sql );
}
//End of patch
I'm testing it and it seems to be working correctly.
Comments? Can someone tell me if there's something wrong with that code?
Thanks a lot
caseydk
14-09-04, 10:17 PM
Conceptually it seems solid...
Unless you want/need to track your staff utilization throughout the project, but I can't think of a better solution at this point.
tshawkins
14-09-04, 10:45 PM
the real solution to this is to make it stateless, ie the percentage utilisation for a resource should be based on querying the task percentages for each user for the tasks that overlap the current task. The chances of getting this right on the fly and trying to record the allocation are low. The problem is that during task entry or update, the actual span for the current task may be unknown or may change when the submit button is pressed.
I would suggest that a seperate "leveling" pass be done, either on a schedule, or with a "calculate resource utilisation" function, this function could be called before any reports that detail resource utilistaion are produced.
r.ghizzi
15-09-04, 11:24 PM
sorry tshawkins can you explain better? with an example maybe should be just fine ;-)
tshawkins
16-09-04, 02:07 AM
for a given resouce, you know the start and end point of the current task, so you have to query and sum the resource utilisation all of the tasks where the resource is also allocated, that have start or end dates that fall within the current tasks range, you may also have to account for the overlap period, ie if two tasks have the same resource allocated at 30% but overlap for only 20% of the time, then what is the total resource utilisation of that resource for a task that spans the overlap period?. its not nessicarily 60%. I dont think you can resonably expect to track this staticaly, especial if multiple PM's are adjusting tasks. Its better to have a means to determine the utilisation by querying the task list.
caseydk
16-09-04, 10:05 PM
This querying would have to step through *all tasks* day by day in order to determine the current utilization...
I'm not quite sure I understand how the resource allocation works. I always have my users with 0% when I edit a task. This removes the user that was allocated and doesn't allow me to assign a new user.
I created a new task far away in the future (to make sure no user was assigned to another task) and I still see 0% availability.
If this is still under development, is there a way to disable the feature?
r.ghizzi
19-09-04, 10:11 PM
0% is because there's a bug in the user preferences module. Just edit the user preferences set the Max Allocation to 100% (should be already 100%) and push the submit button.
tshawkins
21-09-04, 12:03 AM
Re leveling, I personaly think this attempt to do leveling on the fly during input is doomed to failure, you would be better to have a seperate "leveling" pass, where a list of overallocations is presented, and then links to those tasks allow the PM to "fix" the problems. MSProject tries to do this and is often too smart for its own good, its one of the area's where it is a real pain to use.
Is there anyway we can colour code the gantchart and make it clickable to the task list with a dynamic image list, ie over allocated tasks shown in a different colur. etc
Just edit the user preferences set the Max Allocation to 100% (should be already 100%) and push the submit button.
Do I need to do this for every user?
I tried with one user and the system default configuration. I still see 0% for _every_ user. :-(
r.ghizzi
21-09-04, 06:12 AM
yes for every user and it worked for me
I updated every user, but I still see 0% (only the admin user has 100%)
r.ghizzi
21-09-04, 08:04 AM
try to update to another percentage and see if it works
tshawkins
21-09-04, 06:38 PM
nagra, try editing preferences for the effected user, you dont have to change anything, just press the submit button on the form, it has to be the prefferences screen, not just the user details.
lmerino
22-09-04, 09:53 PM
To calculate the resource utilization, i think it´s better define a minimal time/work unit. Maybe one hour-work or one laboral day (definible on config.php as the relation laboral day/working hours). When edit a task, first thing is define task start/finishdate or duratión. Then, dotproject must calculate the free units of the recourses in the period and show it on the resource list.Then calendar of resources allocated hours must be store in the database. May be use to generate a gantt of free resources too)
Using this method,is possible to plane task in the future (the resources are free) and it is not necessary to liberate work-units when a task is complete.
How to allocate resource work-units into task period?
example:
task "T" duratión is 5 days (from monday to friday, 40 hours for my company)
Resource "R1" have all days free (40 hours-work)
Resource "R2" the same as R1
I want to allocate 20 hour-work from resource R1 and 20 Hours-work from resource R2 to Task T. all ok but.. Where into the period of task T must dotproject allocate the 20 hours from ever resource? the first hours of task duratión? 8 monday,8 tuesday,4 wednesday OR 4 monday, 4 tuesday, 4 wednesday, 4 friday. For me, the best electión is the first task hours.
What do you think about all this?
Best regards from Spain
Luis Merino
nagra, try editing preferences for the effected user, you dont have to change anything, just press the submit button on the form, it has to be the prefferences screen, not just the user details.
I think I have the right screen... though it took me some time to find it (it's not directly accessible: one has to go to the edit screen first).
The screen is called "Edit User Preferences" and has a sun/cloud icon.
I'v digged in the php files to find the relevant piece of code that sets the value for each user... basically, it's:
IFNULL(up.pref_value,$scm) - SUM(ut.perc_assignment)
with $scm, the system default maximum value
If the calculated value is < 0, then it's replaced by 0.
How is this supposed to work ?
Am I supposed to change the status of completed task to "inactive" or something for the "perc_assignment" column to be cleared?
vBulletin® v3.6.4, Copyright ©2000-2013, Jelsoft Enterprises Ltd.