-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Deadlines Incentive #66
Comments
Used AI for comment structure Accurate Time Estimates for TasksFor time estimates to be meaningful, labels must accurately reflect task complexity. This requires a strong understanding of the codebase, whether assigned by a human or an LLM. One requires having a dedicated "repo expert" while the other requires complete codebase awareness (codebase embeddings). Deadline-Based IncentivesA possible incentive structure:
Similarly, reviewers could earn bonuses based on how quickly they respond to a Example Scenarios
This maintains existing disqualification logic but rewards efficiency. Potential Exploit & CounterbalanceOne could delay
An insightful move might be to gather the data from all previous tasks including:
The above would allow for better informed decisions to be made based on historical data (https://github.com/ubiquity-os/dao-analytics), especially when considering training an LLM fit-for-purpose. |
I really like the idea of having "two timers" and how it flips based on the draft/ready state of the pull - one timer for the assignee and one for the reviewers. One thing that is tricky though is if the timer is flipped back to the assignee but they already logged out for the day/are sleeping...then 8+ hours later when they check back in, they might have timed out/gotten disqualified.1 The questionable part of the idea though is that it is built with our label system in mind. However I think that the interviewees want a traditional "deadline" like to input a date, which would simplify the complication I mentioned above. So lets say a GitHub issue is created with our time and priority labels, and then a team member writes
(will need timezone configured in yml) we need to think through what happens next. Perhaps an XP/USD bonus can be applied as a linear drop off from the moment the deadline was set, to the deadline time. I'm not sure what the max reward should be (perhaps lets default to the task price i.e. 100 USD) and then the assignee finishes halfway to the deadline time, then they receive a 50 USD speed reward. This plugin could also disqualify the assignee if they miss the deadline. GitHub Timeline ViewWe could take advantage of GitHub Projects timeline view and set the current task's timeline from now to the deadline. This will make visualization simple and use built-in GitHub APIs2. Footnotes |
A I think it raises a point that at a high level we need to know and accommodate for, what partners expect of their people.
Then we adjust accordingly? I imagined a slider during setup, on the left |
This comment has been minimized.
This comment has been minimized.
This feature is definitely intended only for the closed source "occupational" side because it seems that this is the most common management style of those I had discussions with for piloting. I think most of your previous comment spans quite a bit out of scope. We need to keep this as simple as possible or else it will never get shipped. The primary business problem is 1. Accurate time estimates and 2. Getting people to hit deadlines. I realize that the drop off should probably occur if the task is not completed by the deadline, meaning that the drop off should start after the deadline date has passed. I suppose we can "mirror" the deadline duration to model the drop off. For example:
|
Agreed.
This also highlights a gap—assuming reviewers are more active and efficient than contributors may not hold true, especially in smaller teams. Since reviews are crucial for meeting deadlines, penalizing only assignees ignores the impact of slow or subpar reviews—reviewers should also be accountable, so I don't think we should forget the In my previous career, I experienced an efficiency-based bonus system (1.5x – 3x hourly rates per hour of efficiency) that was highly effective. While salaries prevented base-rate reductions, consistent inefficiency led to discussions about fit. This model might offer useful insights for structuring incentives here if catering to the "occupational" side due to salaried employees (I assume) and the new pricing logic required for E.G:
|
Think that suggestions can be made from similar issue deadlines and time estimate labels but it is highly dependent on the specific repository's code base and team members' talent. There is a GitHub issue up to predict time labels. We can make another in the future for predicting deadlines which is dependent on this v1 to be up.
I agree with your point perhaps we can start with 200% and then 100% at deadline and 0% at the end of the score decay timer.
Agreed but I think that it should be in v2 of the plugin. Basically we can make a task after v1 is up.
Can you elaborate on how efficiency was measured? Can you reiterate your last sentence? We use the term "base pay" as a parallel to salary so I am confused. Less commonly we use the term "base rate" as a baseline multiplier for incentives in |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
1 similar comment
This comment has been minimized.
This comment has been minimized.
/annotate #66 (comment) global |
Measuring EfficiencyEach job was assigned a total estimated time, calculated by software that broke down all tasks—both large and small—using industry-wide average completion times. A buffer was added to account for unpredictability. In our context, this translates to harvesting objective data, such as:
Using comments and discussions to train the model is too subjective. Ideally, the model should be trained on datasets built from robust organizational statistics, with each partner having their own specific model for their needs. The BufferThe buffer was set arbitrarily based on priority and business value. Time tracking was digital:
While I wasn't involved in back-office operations, the system was designed to be EV+ for the company. In our terms, such granular tracking is possible via the IDE although intrusive it's ideal. We could implement a Accruing Efficiency
For example, completing two 8-hour jobs in a day meant accruing 4 extra hours of efficiency. Efficiency was tracked over the month and distributed in arrears to account for later fixes or adjustments. Bonus Structure
The system was straightforward:
In our context, I'm assuming Using fixed monthly salary/wage/base pay would require injecting those figures into a config/DB per team member, which seems undesirable. |
"Sign on" and "sign off" may possibly be automatically derived from what event the contributor invoked. For example instead of writing sign on and coding, we possibly may be able to set a 30 minute buffer around each commit (let's say from the perspective of context switching) And then we could consider a 5 minute buffer around each comment. The idea here is that while they work, instead of manually saying when they started and stopped, we may be able to automatically calculate a roughly accurate duration of time they worked based on the specific action they took. It seems shaky for accuracy but I couldn't imagine that manually clocking in and out is the best approach. It seems easy to make a mistake or abuse. But I suppose this is getting to off topic territory but interesting to do some research around sometime. |
I'd be happy to start working on this if we could split it two manageable tasks.
Once the first is through and refined to match expectations regarding task price considering all factors then the second will be much easier to create a spec for. |
/ask write the first task specification draft. Use what I said to take precedence. Focus on making v1 as simple as possible. |
This comment has been minimized.
This comment has been minimized.
I realized that we can't implement rewards until the kernel is upgraded to support "payment permit requests" from every plugin. Otherwise, again, it will need to be consolidated inside of |
This comment has been minimized.
This comment has been minimized.
No there's nothing in the spec about modifying labels. Just needs to be placed on the timeline GitHub project view. And the rewards need to honor the deadline date of course. |
I was working off of a different understanding of how "occupational" would be using the system based on the conversation my bad.
|
|
After a few calls with prospective pilot partners, it’s clear that teams care about accurate time estimates and incentivizing deadlines. This command should make deadlines more useful while rewarding contributors fairly.
Objective
Build the command-deadline plugin to:
How It Works
Setting a Deadline
/deadline [date]
to set a deadline on a GitHub issue.Rewarding Early Completion
By default, finishing a task on time earns 100% of the task value. If completed faster, the contributor gets a speed bonus. If late, they either receive a reduced payout or are disqualified (configurable).
Deadline Reward Ratio Configuration
Instead of always giving double the task value for instant completion, we introduce a configurable coefficient:
deadlineRewardRatio
→ Controls how much of the task value is used for speed bonuses.0.25
, meaning a max bonus of 25% extra for instant completion.1.0
, instant completion can double the reward.For example, on a $1600 task with
deadlineRewardRatio = 0.25
:$1600 + $400 bonus = $2000
$1600 + $200 bonus = $1800
$1600
(no bonus, no penalty)Final Reward Formula
How It Works
1 + deadlineRewardRatio
times the base task value.assignedDeadline
.2 * assignedDeadline
.Disqualification (Optional)
If enabled, contributors must complete the task before the deadline or they receive nothing. This can be toggled per project.
Mock YAML Configuration File
Here’s a sample
config.yml
with all possible settings and their default values:Configurable Behavior
deadlineRewardRatio = 0.5
, contributors can earn up to 50% extra for early completion.disqualificationEnabled = false
, contributors still get some payout even if late, but it gradually declines.projectView
is set, deadlines will be synced to the linked GitHub Project View.Final Summary
/deadline [date]
sets a deadline.deadlineRewardRatio
).This setup keeps the system flexible, fair, and easy to configure.
The text was updated successfully, but these errors were encountered: