任务分配

项目开发过程中的所有任务都应该使用 GitLab 内的 Issue 功能来提出并分配给成员。 Issue的完成时间预估与记录、与Commit的关联,见GitLab文档。 任务的分配应遵循如下原则

每名成员在每一时间段都应该有任务

Issue 的发布与关闭标志着任务的开始与完成,一名成员在上一个任务结束到被分配下一个任务之间会存在一个没有任务的窗口期,定义窗口期短于三天为合理的,长于三天为不合理的。 设第 i 名成员没有任务的窗口期有 m_i 个,第 j 个窗口期时间跨度为 Free_{i,j} ,记 W_{free,i,j} 表示这个窗口的是否不合理, Free_{i,j}>3dW_{free,i,j}=1,反之 W_{free,i,j}=0

每个任务都应被及时完成

根据课程要求,各小组每两周与用户代表见面一次,此时项目应有阶段性的成果展示。 因而当任务的完成时间长于两周时,认为任务完成过程中出现了拖延,或单个任务量太大,都是不合理的情况。 设第 i 名成员有 s_i 个任务,第 j 个任务时间跨度为 Time_{i,j} ,记 W_{laze,i,j} 表示该任务的时间跨度是否不合理, Time_{i,j}>2wW_{laze,i,j}=1 ,反之 W_{laze,i,j}=0

若共有 n 名成员,定义第 i 名成员的无效时间为 $$ Invalid_i=\sum_{j=1}^{m_i} Free_{i,j} \times W_{free,i,j} + \sum_{j=1}^{s_i} (Time_{i,j} - 2w) \times W_{laze,i,j} $$ 记项目跨度为 T ,定义第 i 名成员的有效时间比例为 R_{valid,i}=\frac{T - Invalid_i}{T} ,计算结果小于0时取0。 定义小组的任务分配情况为 $$ Task=\frac{nT - \sum_{i=1}^{n}Invalid_i}{nT} $$ 计算结果小于0时取0。