软件研发流程介绍

设定软件研发流程的目的

  • 清晰,完整的记录整个软件的研发过程。
  • 保证每次修改软件的功能,需求分析结果,都由相关部门的负责人确认。即 软件的需求文档描述,相关资料比如 UI, 由软件部负责人确定是否符合要求。同时由研发部门负责人,确定是否现有技术是否可以实现,并评估开发时间。
  • 消灭重复执行的事物,重复修改的内容和重复的沟通,来提高效率,并明确责任。
  • 部门,同事之间的配合应该以不影响打断其他人的工作为基本素质和要求。所以我们需要由需求文档来统一步骤,以及协调工作内容。除非是紧急事务。
  • 有一个统一的标准来解释软件的功能是否达到目的, 确保做出来的软件是大家的共识。

研发流程介绍

初步想法的记录

从最新的 master 上新建一个分支,基于这个分支来增加新的需求的内容。

文档修改完毕之后新建 Merge Request,新建之后建议 assignee 给自己的部门负责人审阅,由部门负责人确认之后再转给机器人进入需求评审流程。

进入需求评审流程之前请检查以下内容:

  1. 是否指定开发周期标签,开发周期标签是重要信息。比如: 在第一周期开发的中间阶段又添加了一个第一周期的需求评审。此时研发相关负责人就能基于这个情况进行评估。选择当前周期实现,还是选择在未来的周期实现,会导致选择的实现方案的区别。
  2. 如果是因为有相关 QA 才补充的需求,请在需求评审的 Merge Request 中增加 QA 的关联关系。

例如:

这是关联的 QA http://www.lejuhub.com/13 
当前需求补充 QA 中提到的没有处理 xxx 情况的问题

需求评审流程的阶段介绍

需求评审

此阶段为确保所有部门根据当前需求达成一致。

该阶段不同情况有不同的负责人。目前的机制是:只要你在文档的评论内容中被 @ 了,就需要回应。目前流程推进机器人会监控这个情况,它会反复的提醒你。

如下图:

同时当前阶段应该准备好相关生产或者研发资料。比如:效果图,切图,音频文件,视频。当前阶段提供的资料可以在开发过程中更新,但是要确保,文件名,文件内容(图片的尺寸,长宽比),保持一致。这样大家才能高效的配合工作。同时更新的方法应该是在同一个需求评审中更新内容,并在需求文档或者需求评审中说明更新的原因。

进入需求池

需求池为一个清单列表。理想情况下,开发周期启动的时候由研发相关负责人根据确定的时间来选择哪些需求会进入开发阶段。大部分实践情况下,由研发相关负责人和软件部负责人协商沟通确定哪些需求进入开发阶段。

软件部请定期回顾,浏览需求池的需求。清理废弃,无用的需求评审。

从需求池中拿出,进入开发阶段

当前阶段由研发相关负责人安排开发计划,并推进直到完成。

当前阶段有开发跟踪机器人负责跟踪和推进,研发相关负责人会在需求评审中进行类似以下的评论来通知机器人跟踪开发工单。

相关部门负责跟进进度的人可以申请访问相关的开发项目去查看工单的完成情况。 请注意如果只是知道工单的完成情况 `guest` 的权限就可以访问,不需要 `developer` 权限。

基本概念的解释

分支

维护文档事实上会存在很多副本,比如 A 修改的内容,在他电脑上有一份副本。B 修改的内容,在他的电脑上也有一份副本。

如果是使用传统的 word 文档来写作,目前我知道的有以下几种办法:

  1. 某个文档只能由一个人来编写。
  2. 专门还有一个人整合其他人编写的段落,整合出一个文档。

即使是通过以上的方法做到了,仍然很难解决一个问题。这次的文档和上个月某天的文档相比较,修改了什么内容?

而 分支 是 git 即我们平台使用的版本管理工具对副本的定义。每个需求评审都对应着一个分支,即每个需求评审都是一个修改中的需求文档的副本。当需求评审合并的时候,这个副本就和当前公认的副本整合到一起。这种整合大部分情况都是自动的,如果出现冲突,目前会由软件研发部接手解决冲突。解决冲突之后,会需要相关部门负责人重新审核解决冲突之后的内容。

使用分支,可以快速,并行,高效的来维护需求文档。同时能高效的解决,文档修改了什么的问题。

master 分支

master 分支,如果用副本来解释的话,就是一个官方的需求文档副本。所有软件的解释都由这个副本来解释。比如 测试,或者是对于实现的功能是否达到要求的讨论。

master 分支是一个无法由某个人直接修改的分支。它更新的前提是需求评审经历了需求评审的所有阶段,同时开发完成。以此来确保 master 分支是当前时间点内权威的需求文档。基本上需求评审合并就代表着这个需求经过三个部分负责人的签字确认。

需求评审

需求评审是对某个功能的讨论,描述,及执行。没有人可以脱离需求文档解释软件,所以我们需要有需求评审来协调三个部门对想要增加,调整的功能进行配合,实现。

变动内容的查看

使用 lejuhub.com 平台来管理文档,解决了以 word 文档为需求文档的不少痛点。前提是使用的文档格式是 lejuhub.com 平台能识别的文件格式,否则平台也只能识别出文件有变化,具体变化了什么内容也是无法识别的。 目前能识别的格式:

  1. 文档 Markdown
  2. 图片,png, jpg, bmp

如何查看文档的变化

在对应的需求评审中找到 changes 标签

查看当前需求评审的文本变化,绿色背景为新增部分,红色背景为删除部分。

查看文件变化

新增文件的提示效果

文件内容更新的是效果,一般我们文本都会发生变换,所以会看到下图

前面提到的更新图片的情况,我们也可以从方便的查看

从上面的截图,我们可以看到新旧两张图,包括尺寸,内容。

总结

当前流程目前如果正确执行能做到以下几点:

  1. 没有遗漏
  2. 减少反复沟通
  3. 详细的历史记录用于复盘和反省总结

同时在实践的过程中会发现新问题,有了新问题我们的流程调整来解决。整个流程是随着公司发展动态变化的。

avatar

极客世界

乐聚机器人研发总监 | 黄怀贤