项目管理流程

项目管理流程 #

团队项目开发采用kanboard平台管理。平台介绍可见 kanboard平台搭建

项目管理应该分为:需求、研发、测试、部署、用户反馈、代码修改、测试、部署等操作。相应的划分栏目:

创建项目 #

  1. 要把项目名称,项目代号,项目描述写得尽量详细。
  2. 在github上,建立以P-开头的项目,并建立github webhook链接。建议只开启ISSUE相关的自动行为,不要开commit等操作。

需求分析部分 #

  1. 需求分析:设置两个级别:项目级别描述、任务级别描述。
  2. 需求拆解:设置两个级别:项目级别拆解(形成任务)、任务级别拆解(形成子任务)。
  3. 功能验证:提出<整合>的任务,形成相应的需求,确保从需求层面,能够使用已存在的各任务成果整合出结果。
  4. 完成:需求分析完成后,放入待认领栏目,等待开发人员认领。

项目开发部分 #

  1. 将任务拖拽到进行中栏目,认领任务,以任务为单位进行开发。
  2. 模块需求:在任务中描述模块的输入输出,保证与需求的输入输出一致。
  3. 编码:线下进行,代码提交到github,相关信息附在任务中。完成后将任务拖拽到测试栏目。
  4. 测试:如果不通过,将任务拖拽到进行中栏目,确定负责人,继续编码。包含单元测试和分支覆盖率检测。线下进行,测试结果提交到任务中。
  5. 完成:放到完成栏目中,待确认

项目部署 #

  1. 根据<整合>任务,明确模块间的组装关系。
  2. 设计部署流程,形成markdown的脚本描述,附到部署任务中。
  3. 撰写部署脚本,完善markdown的脚本描述,附到部署任务中。
  4. 测试部署脚本,完善markdown的脚本描述,附到部署任务中。
  5. 合并到代码中,github打TAG,将TAG和Github链接附在任务中。
  6. 部署。将部署相关环境、服务器待信息汇总到任务中。
  7. 完成:放到完成栏目中,待确认

项目维护部分 #

  1. ISSUE,与Github绑定,当有人提issue时,直接加入到ISSUE栏目中。
  2. 明确问题原因,附在任务中。并认领任务到进行中
  3. 编码,线下进行,代码提交到github,相关信息附在任务中。将任务放到测试中。
  4. 测试,如果不通过,将任务拖拽到进行中,确定负责人,继续编码。
  5. 完成:放到完成栏目中,待确认
  6. 确认后到github关闭issue,任务会自动关闭

算法库整理 #

根据已生成项目,整理算法。算法库应当整合到一个特定的库中,根据需求获取。算法库配备整体介绍(README.md),也分模块介绍。具体参考microsoft的muzic库维护方式。在Kanboard中,算法库分为两种类型:

  1. 已有项目中已经完成开发的算法,则提出需求,进入到待整理状态;
  2. 算法待开发,则提出需求,进入到待开发状态;
  3. 算法完成、修改算法README,进入到待整合状态,由管理员整合到算法库中;
  4. 整合完成后,任务完成。

注意,算法的README需要具有如下内容:

  1. 安装环境,包含开发过程中全部的执行环境,例如:操作系统版本,python版本,cuda版本,torch版本等。
  2. 完整的无脑安装步骤
  3. 使用方法:明确的输入输出准则
  4. 使用案例:按照3中方法的分步执行效果,配图。
  5. (可选)Docker环境安装方法及相关配置。