Rewarding the best contributors
Getting incentives right is very difficult, and maybe it’s tall poppy syndrome kicking in but one feels a pang of unearned privilege when trying to create them.
Nevertheless, I decided to offer a monetary reward in appreciation of the best contributor of the fortnight at Blockrazor.
Offering a reward for the contributor who best follows the C4 and other contributor guidelines should increase the overall effort that contributors put into following these processes. There is also a pretty good chance that this will cause resentment in contributors who have a generally negative disposition to start with (I can’t win, the game is rigged, the world is unfair, those grapes are probably sour anyway).
The following was posted to the issue tracker:
The following metrics will be taken into account for a before and after comparison:
- Ratio of C4 compliant to non-compliant pull requests,
- Amount of (codebase) commenting in commits,
- Correct housekeeping vs lazy or incorrect housekeeping (claiming issues before working on them, not claiming more than one issue at once, closing resolved issues, commenting when an issue is complete and ready to be tested),
- How often tests are written for commits,
- How often people help out others when they are stuck,
- interpersonal conflict between contributors.
Initial responses were very positive. But very quickly, this happened:
The other contributor was discouraged by this comment, so I tried to give the original commenter a way out and defuse the situation, but he was insisted on making things personal between himself and the other contributor:
I gave it one more attempt to nip this silly behaviour in the bud:
At the same time, Stewart, who is using the C4 in his own project jumped in and created this thread to document the negative impacts of this appreciation reward:
There were no further personal attacks after this.
In the two weeks prior to the announcement of this award, 12% of pull requests had to be amended to be C4 compliant. This was reduced to 2% in the following two weeks.
Commenting (of the codebase) showed marginal improvement.
Instances of bad housekeeping went from happening in 36% of issues down to 2%.
The number of commits adding new tests dropped off completely. 16 tests were added in the two weeks prior, 0 tests were added after. This came as a surprise.
Contributor interaction is more difficult to quantify, but it has definitely trended upwards, contributors are a lot more open to helping out other contributors when they are stuck.
Interpersonal conflict is something to keep an eye on, it hasn’t returned since the above, but the contributor who conducted the attack is also very uninterested in the award process - he voted for me which is clearly just silly, and when told about this he voted for himself (despite the rules clearly stating this isn’t allowed).
This type of nihilistic personality is very difficult to integrate into a community, and the prudent thing to do is purge them before they get a chance to do damage. Not having flame wars is probably the best we can hope for. However I think purging him is the easy way out, the right thing to do is to find some way to accept the positive things he brings to the project and nullify the negative impacts of this personality type, that way everybody wins. So as another experiment I increased his salary as I suspect this feeling of resentment stems from being unappreciated throughout life, and I can say that he does deserve appreciation. I will report on how this goes.
That said, one negative person can completely poison an entire community like a single drop of sewage can destroy a whole bucket of drinking water, so this has to be monitored very carefully with a finger constantly on the trigger - the person will have to be immediately removed if he causes any further pain to others.