日期:2013-08-31  浏览次数:20530 次

流程,通俗来讲,就是许多人,在做一系列的事情时,怎样互相协调,安排好这一系列事情的先后顺序,有什么事先的商定,需求达到怎样的预期目标。

在UED里,前端同学需求处理的需求比较多,早些时候,前端这里的开发流程还是比较模糊的,UED以外的同学也不清楚这边的任务具体是怎样进行的,所以难免会有需求插队的情况发生,打乱了大家的计划,因此今年Q3的时候,在与SCM团队同学的共同努力下,构成了一个前端的ASSETS发布流程。

这个流程次要针对ASSETS发布的需求做了一些商定,制定了相关的几个时间点,包括审核需求、提交代码、daily测试、预发测试、正式发布到线上确认的时间。

ASSETS流程简述

需求审核

在提需求之前,需求方普通都会先找PM或者相应产品线的前端咨询一下,如果可行的话就会在周四之前将需求提到平台上,到了周四的时候,前端会结合本身的任务情况,将平台上的需求接收并纳入本人的日程中,预估完成时间、发布时间以及相关的发布简述。

编码开发

周四需求评估完当前,就会按计划开始处理需求,将涉及ASSETS发布的需求优先处理,不涉及ASSETS的放在靠后的时间处理,普通这段时间是从周四到下一周的周二。SCM会在每周四开一个新的ASSETS分枝供前端在下一周开发使用。

提交代码,合并到daily测试以及预发测试

如果有涉及到与后台开发相关的需求,前端的同学会在周一就把代码提交,这一天会有一次合并代码,方便后台开发来测试。其他的同学普通最晚会在周二下班之前把代码提交,在周二,会有多次合并代码到daily的操作,每次操作完后,SCM的同学会在前端的群里通知到大家,方便大家测试。

周三早上,SCM的同学会将代码发布到预发环境,此时就可以在HOST中绑定IP,换用线上的地址来测试。

正式发布

周四上午,SCM的同学确认后,将没有问题的代码发布上线。

流程的作用

在团队不断成长的过程中,处理的需求数量也在增长,需求考虑到开发的效率、产品的质量以及团队协作间的配合等要素,这个流程能为我们处理很多相关的问题:

督促需求方做好相关的规划

有些时候,一些需求的细节还没完全确定,但需求方总希望能将他想到的各种细节都实现出来,然后再挑选其中一种做为他的方案,所以需求的变更会有些频繁,然而这样的成本有些高,一切应该在计划后再去实现,而非反其道而行。如今需求方会在提需求之前,会花时间地去考虑他们的需求,将尽可能多的情况都想清楚,做好必要的沟通任务,权衡各种利弊之后,再给出一个比较成形的方案。

保证需求安排的有序性

在一个大的团队中,不同部门的同学在一同合作,由于沟通及一些特殊情况,效率或多或少会遭到一些影响,良好的规划能有助于提高开发的效率。

通过每周的需求审核,安排好下一周的日程,由于需求的优先级和先后顺序都已排定,任务的条理性会愈加清晰,需求插队的景象也有明显减少。当然我们也有紧急流程,但是它仅限于处理线上bug以及一些经过多方确认的紧急需求,有其本人的适用范围。

统一测试,归避风险

之前的日常处理中,可能会遇到这样的情况:甲、乙两个同学分别需求处理两个日常需求,他们的需求改动到的代码会有重合的部分,如果他们并不知道这个情况,那么在他们本地的单独测试中,一切都是OK的,然而当发布到线上去时,发现出了bug或者一方的改动没有同步到线上,查缘由后发现是提交的代码互相覆盖了。

如今要处理的需求数量越来越多,为了避免上述情况,新流程实行当前,大家会统一来做多次测试,这样就更容易发现bug,可以大大降低协作开发而产生的风险。

流程本身就是一把双刃剑,有利有弊。一方面,它使我们的需求变得有序,使前端能够在处理一个需求时,不会频繁被其他插队的需求打断。并且由于发布有时间点的设定,所以测试任务会愈加严谨,这有助于提升代码的质量。因此对于我们来讲,流程带来的好处是不言而喻的;但另一方面,它额外地添加了做事的成本,涉及ASSETS发布的需求,就像赶某班火车一样,错过了就只能等下一班,所以也给需求方带来了许多不便,有待改进,不过这可以通过长期的合作而慢慢被弱化,双方达成了一种默契当前,情况会好很多,如今这样的情况曾经比较少了。

虽然在流程使用之初,会带来诸多不便,但是从长远来看,流程有助于使一个团队构成统一的任务方式和态度,将繁杂的事情化整为零,有条理地去处理它们。由于流程,每一团体的责任感都会加强,对风险考虑得会更多一些,这一切都会使产品有质的提升。而我们所有与这个流程有关的人,都会不断地去推动流程改进的任务,这其中还有很多需求思考的:

  • 如何将我们的流程推广到整个公司,让大家都能了解我们的流程,这样在未来需求合作时,需求方需求留意些什么,相关的时间点以及开周时间的预估等,他们就会心中无数。
  • ASSETS的发布还不够灵活,如果把和使用相关的ASSETS独立划分出去与使用一同发布,这样剩下的需求发布的东西就会少很多。或者是按产品线来设计发布流程,依据实际情况来发布。
  • 如何来简化流程上的一些细节,在保持效率的同时,降低实际操作中的成本。
  • 每周二是一个特别的时间点,为了赶在这最后时间提交代码,之前的开发会有些紧张,这种情况也有待改善,比如未来可以一周有两次发布。

流程不是生来就完满,但从如今它带给我们的好处来看,遵照并使用它,对我们的开发会起到很大的协助作用。我们对待它的态度,决定了它对我们会有怎样的反馈,如果觉得它不合适了,就发出本人的声音,想办法去改进它,不要只是被动地等待。

———————————-

部分名词解释:

daily环境:UED的一个日常测试环境
预发环境:外网IP,需绑定访问,供内部使用测试
ASSETS:脚本和款式存放的目录
SCM:软件管理配置
PM:项目经理