农村的师傅的博客

一个迫于生计,无法放飞自我,导致喜欢上了前端开发,并即将成长为强者(指头发)的程序猿。

0%

团队研发流程探索思考

为什么需要规范研发流程?

研发流程,其实部门之间:比如开发、产品、测试等等成员的一个沟通过程。研发流程对于研发的工作是非常的,几乎贯穿于他们的整个工作内容。

研发流程的制定,是为了规范公司团队协作,减少研发的混乱和沟通成本,以此来达到对需求迭代的可控、可预期。且在规范化之后,可以更好的对资源进行利用以及对成本进行评估。

研发流程的考虑点有哪些?

寻找合适的研发流程而不是完美的

每个公司所面临的需求不一样,侧重点可能也不一样,而且根据项目的性质、团队规模,其研发流程可能都会有差异,我们需要根据具体的问题,所遇到的痛点去分析和优化我们的研发流程。

研发流程不是一成不变的

公司在发展,团队规模在变化,项目在逐渐变多变大,我们的研发流程也不应该是一成不变的,我们需要不停的改进和优化我们的研发流程,以适应这种变化。

针对痛点问题进行解决

没有最好的流程,只有最合适的流程,就和软件开发中没有银弹一样,我们的研发流程是符合我们公司文化、开发习惯以及根据项目性质去设置和优化的,而我们制定的研发流程,其主要是为了解决我们研发中的痛点,而且,实际中的研发流程不可能在所有条件下都真的完美,我们也不太可能在所有方面都对这个流程满意,我们需要有所侧重的去制定我们的流程,基于现实情况。

研发流程不要死板

流程本身不应该限制死工作的灵活性,而是根据不同的场景,合理的进行变通。比如一个小缺陷、一个小功能如果也需要走完整个流程,那很显然会让研发流程陷入到一个繁琐的地步。我们可以根据具体的场景,简化或者修改某个流程步骤,来更好的适应我们的开发习惯。

及时收集反馈

在新的研发流程推进过程中,我们需要慢慢逐步推行并及时收集流程中各个角色的反馈来调整我们的流程细节,流程的制定可能只是由少数人去制定的,虽然他们考虑了可能存在的情况和问题,但是不大可能能考虑到所有情况,而且所想得和实际推进的可能会存在差别,流程被制定之后需要被检验,而检验的最好方法就是定时收集各种反馈,毕竟,和研发流程最贴近的就是流程中的人。

将整个研发流程分阶段

将公司的整个研发流程,分为不同的阶段,每个阶段对应于不同的部门,便于清晰职责,方便研发流程状态的单向流转,而且不同部门不同角色可以针对自己关注的阶段自行去探索符合部门习惯的子流程。

研发流程阶段定义

这是我个人所认为的研发流程中所需要包含的阶段。

流程中的角色定义

  • 产品:产品经理负责产品的需求调研,需求评估以及需求设计
  • UI/UX,即UI和交互设计师:根据产品经理的需求,产出UI/UX文档
  • 开发:负责需求的实际开发工作,以及实际版本发布工作
  • 测试:负责功能和UI/UX还原性测试

需求阶段

此阶段通常是产品进行需求调研、需求分析的阶段,通常其会输出需求文档和需求原型。待需求完成后,通常会进入预评审阶段

需求预评审阶段

这个阶段主要是让产品将需求文档和需求原型同开发以及UI/UX过一遍,其作用是为了提前将需求和他们过一遍,以防止有明显的需求不合理和需求无法实现的问题,导致在正式需求评审后的大范围修改,当大致功能过了一遍,且一些细节上没有问题之后,才会进入UI/UX的设计阶段。

这里也是为了让开发和UI/UX可以先一步针对一些UI和交互上的问题进行提前沟通,防止后续的返工。

UI/UX阶段

当产品输出需求文档和需求原型并经过预评审之后,UI/UX会针对需求进行详细沟通以便理解需求,之后UI/UX会基于需求输出UI稿和交互稿。

需求评审阶段

这里是正式的需求评审阶段,产品会拉上相关人员,比如开发、测试、UI/UX等来对接整个需求,同时也会对UI/UX进行评审。即使存在预评审,仍然无法保证需求、UI/UX没有问题,但是索性经过预评审,需求的大框架基本不会有问题,更多的只是细节上的确认,如果相关的人员对需求或者UI/UX有疑问,会在评审会议上提出来并进行沟通解决。

开发阶段

这个阶段自然就是开发根据需求、UI/UX进行真正的业务开发了。如果在开发过程中仍然发现存在问题,会和产品、UI/UX再次进行沟通和确认,但基本上在这个阶段不会出现很大的问题。

测试阶段

当开发完毕后,会由开发提交测试,此时进入测试阶段,测试会进行功能测试、UI/UX还原性测试,如果存在缺陷,则录入缺陷然后交由开发修复,此过程可能会重复1到2轮。

版本发布

当一个功能开发完毕,产品觉得可以发布时,可能立即发布,也可以后续和其他功能一起发布,这个由产品决定,且在最后确定版本时确定需要发布的功能。

待发布之后,会有开发、产品或者测试进行回归测试。至此,整个需求的研发流程完毕。

总结

以上就是我对团队研发流程的探索和思考,然而这里从整体流程上的一种考虑,实践中所需要面临的问题和优化的点,更多的还存在于一些细节方面,具体的实践部分,请参考我的另一篇文章:团队研发流程改进实践