团队贡献分分配规则制定
小组成员工作准则
- 全体成员
- 按时完成工作,并在工作完成后立即汇报进度
- 若工作完成存在技术性困难,可向组内其他成员求助
- 若无法按时完成任务,则需及时向所在组的负责人反映,协调工作
- 开展工作之前,若工作涉及到与其他成员协作,则必须提前将规格等商定一致
- 开发组
- 按时完成开发任务,在 push 前完成基本测试
- 确保良好的代码规范,若不符合代码规范,则不允许提交
- 测试组
- 在开发组完成阶段性开发后,测试组须及时完成测试工作
- 测试覆盖全面,对前端测试需要考虑非常规操作的测试方式
- 可协助开发人员提出解决方案
- 产品经理
- 及时完成任务分配与协调
- 及时完成博客
贡献分的计算
定义:
- 团队人数,记为 \(N\)
- 贡献分 指提交至课程组的各个成员的最终得分,记为 \(S\)(Score),反映了成员在组内的贡献
- 纸面得分 指为了方便计算贡献分,在提交最终的贡献分前用于计算成员贡献的分数,记为 \(P\)(Point)
纸面得分可通过如下过程转换为贡献分(其中 \(i = 1, 2\dots N\) 表示第 \(i\) 个组员):
- 首先计算初步得分 \(S_i' = \left\lfloor 50 N\cdot \cfrac{P_i}{\sum_{j = 1}^{N} P_j}\right\rfloor\)。
- 考虑剩余的分值,这部分为 \(50N-\sum S'_i\)。
- 计算每个人剩余未分的贡献:\(R_i=P_i-S'_i\cdot \cfrac{\sum P_j}{50N}\)。
- 计算未分贡献的组内排名:\(A_i=\left|\{R_j\mid R_j\geqslant R_i\}\right|\)。
- 我们将剩余的分数按此排名分配,每人 \(1\) 分。
- 这里不难证明 \(\left|50N-\sum S'_i\right|<N\)。
最终得分为:
\[S_i=S_i'+[A_i\leqslant 50N-\sum S'_i]
\]
- 这里的方括号是 Iverson bracket。
纸面得分计算规则
每个组员的纸面得分起评分为 50 分,根据工作的难度、完成情况、工期以及是否存在延误、过失等情况进行加减分,具体加减分情况见表 1 。其中,工作难度、工作量和完成情况由组员共同认定。
表 1 - 加减分指标
加减分类型 | 具体项目 | 加减分数 |
工作难度 | 困难 | +2 |
一般 | +1 | |
简单 | +0 | |
工作量 | 特别多 | +2 |
较多 | +1 | |
一般 | +0 | |
完成情况 | 完成情况好,可扩展性强,性能好 | +2 |
按照文档需求完成 | +0.5 | |
不符合文档需求* | -1 | |
工期 | 提前完成 | +1 |
按时完成 | +0 | |
无法按时完成但及时请求他人协助完成 | -0.2 | |
延误,但不影响其他成员进度 | -1 | |
延误,且影响其他成员进度 | -3 | |
bug | 严重 bug,影响数据库、安全、用户信息等 | -2 / bug |
一般 bug,不涉及数据库、安全、用户信息等 | -0.5 / bug | |
接手他人因故无法如期完成的工作 | +2 | |
协助他人存在技术性困难的工作 | +0.5 |
对于表中的因 bug 扣分情况,一旦发现 bug,则开发组相关人员将按照表中规定扣分;对于测试人员,若在测试中发现相应 bug,则不扣分,否则扣分为表中值 \(\times 2\)。
对于非常规情况,可额外进行加分:
- 若成员对既定的需求、系统设计等有重要修改意见并被采纳的,可酌情加 \(1 \sim 5\) 分