项目管理流程 #
团队项目开发采用kanboard平台管理。平台介绍可见 kanboard平台搭建
项目管理应该分为:需求、研发、测试、部署、用户反馈、代码修改、测试、部署等操作。相应的划分栏目:
创建项目 #
- 要把项目名称,项目代号,项目描述写得尽量详细。
- 在github上,建立以
P-
开头的项目,并建立github webhook链接。建议只开启ISSUE相关的自动行为,不要开commit等操作。
需求分析部分 #
- 需求分析:设置两个级别:项目级别描述、任务级别描述。
- 需求拆解:设置两个级别:项目级别拆解(形成任务)、任务级别拆解(形成子任务)。
- 功能验证:提出<整合>的任务,形成相应的需求,确保从需求层面,能够使用已存在的各任务成果整合出结果。
- 完成:需求分析完成后,放入
待认领
栏目,等待开发人员认领。
项目开发部分 #
- 将任务拖拽到
进行中
栏目,认领任务,以任务为单位进行开发。 - 模块需求:在任务中描述模块的输入输出,保证与需求的输入输出一致。
- 编码:线下进行,代码提交到github,相关信息附在任务中。完成后将任务拖拽到
测试
栏目。 - 测试:如果不通过,将任务拖拽到
进行中
栏目,确定负责人,继续编码。包含单元测试和分支覆盖率检测。线下进行,测试结果提交到任务中。 - 完成:放到
完成
栏目中,待确认
项目部署 #
- 根据<整合>任务,明确模块间的组装关系。
- 设计部署流程,形成markdown的脚本描述,附到部署任务中。
- 撰写部署脚本,完善markdown的脚本描述,附到部署任务中。
- 测试部署脚本,完善markdown的脚本描述,附到部署任务中。
- 合并到代码中,github打TAG,将TAG和Github链接附在任务中。
- 部署。将部署相关环境、服务器待信息汇总到任务中。
- 完成:放到
完成
栏目中,待确认
项目维护部分 #
- ISSUE,与Github绑定,当有人提issue时,直接加入到ISSUE栏目中。
- 明确问题原因,附在任务中。并认领任务到
进行中
。 - 编码,线下进行,代码提交到github,相关信息附在任务中。将任务放到
测试
中。 - 测试,如果不通过,将任务拖拽到
进行中
,确定负责人,继续编码。 - 完成:放到
完成
栏目中,待确认 - 确认后到github关闭issue,任务会自动关闭
算法库整理 #
根据已生成项目,整理算法。算法库应当整合到一个特定的库中,根据需求获取。算法库配备整体介绍(README.md),也分模块介绍。具体参考microsoft的muzic库维护方式。在Kanboard中,算法库分为两种类型:
- 已有项目中已经完成开发的算法,则提出需求,进入到
待整理
状态; - 算法待开发,则提出需求,进入到
待开发
状态; - 算法完成、修改算法README,进入到
待整合
状态,由管理员整合到算法库中; - 整合完成后,任务完成。
注意,算法的README需要具有如下内容:
- 安装环境,包含开发过程中全部的执行环境,例如:操作系统版本,python版本,cuda版本,torch版本等。
- 完整的无脑安装步骤
- 使用方法:明确的输入输出准则
- 使用案例:按照3中方法的分步执行效果,配图。
- (可选)Docker环境安装方法及相关配置。