18F / tock

We use Tock to track and report our time at 18F
https://18f.gsa.gov/2015/05/21/TockingTime/
Other
121 stars 37 forks source link

changes weekly allocation hour estimate calculation #1626

Closed jduss4 closed 1 year ago

jduss4 commented 1 year ago

Description

Previously, we changed total_allocation_hours (an estimate of how many hours a person with weekly allocation % spent working on the project) to use target_hours in its calculation. This worked great for individuals with a .8 billable expectation, but not so well for folks like supervisors with a .4 billable expectation, as it then halved their potentially contributed hours.

Here is a new proposal for the total_allocation_hours estimate that returns to the assumption that there is a set number of hours that people would be likely to bill during the week (current values are 32 hours / .8 billable expectation, set in base.py), and that a person's allocation % is a percentage of THAT time. Therefore, we use the default billable expectation to compare allocation %s against.

This adds a test for a lower billable expectation (.4) with out of office time, and checks the allocation hour estimate in several other tests.

Additional information

We have gone back and forth a little on how to consider utilization for supervisors. Is a supervisor with a .4 expectation (16 hours a week) who bills 50% (16 hours) to a weekly project considered 50% utilized or 100% utilized? The current utilization behavior is that a supervisor billing 50% would be 50% utilized (out of their entire week), but if this is incorrect, then we need to revisit how utilization is being calculated.

cantsin commented 1 year ago

Is this ready to be reviewed? Looks like it's still in draft form?

jduss4 commented 1 year ago

We are hoping to get @kfoley-18F 's sign-off or make adjustments to the logic based on her review before we can make it a real PR!

jduss4 commented 1 year ago

Thanks for your review, @kfoley-18F !

Would you mind double checking our understanding of this question, as well?

Is a supervisor with a .4 expectation (16 hours a week) who bills 50% (16 hours) to a weekly project considered 50% utilized or 100% utilized? The current utilization behavior is that a supervisor billing 50% would be 50% utilized (out of their entire week), but if this is incorrect, then we need to revisit how utilization is being calculated.

jduss4 commented 1 year ago

@cantsin ready for code review at your convenience! Thank you!

kingcomma commented 1 year ago

@kfoley-18F If it's helpful for answering this question, we put together some example scenarios in this doc. I've highlighted the places we have questions and added comments to explain our uncertainty.

Thanks for your review, @kfoley-18F !

Would you mind double checking our understanding of this question, as well?

Is a supervisor with a .4 expectation (16 hours a week) who bills 50% (16 hours) to a weekly project considered 50% utilized or 100% utilized? The current utilization behavior is that a supervisor billing 50% would be 50% utilized (out of their entire week), but if this is incorrect, then we need to revisit how utilization is being calculated.

kfoley-18F commented 1 year ago

Is a supervisor with a .4 expectation (16 hours a week) who bills 50% (16 hours) to a weekly project considered 50% utilized or 100% utilized? The current utilization behavior is that a supervisor billing 50% would be 50% utilized (out of their entire week), but if this is incorrect, then we need to revisit how utilization is being calculated.

Their Billable utilization is 50%. The expectation is that they are carrying supervisory load and some org things like staffing or scoping/intake or hiring or Tock or..... So their full NB + Billable utilization will be 100% once 18F Administrative & Supervisory work is factored in. This is work "on the business" rather than "in the business" that is necessary to make 18F go.

jduss4 commented 1 year ago

I clarified a comment but otherwise, I think this is good to go after confirming desired behavior with @kfoley-18F ! 🥳

cantsin commented 1 year ago

Yay! Builds are failing for an entirely unrelated reason (we need to bump up the CACHE_VERSION in CircleCI) so let me quickly fix that and then, once builds pass again, we'll merge!