近日,国内知名记账理财App随手记发布了全新V12改版版本,是对随手记产品的一次非常大的重构带来全新的移动记账体验。,如首页的信息流,简洁的记一笔,多场景账本的个性化支持和灵活扩展,目的是让专业记账变得更简单,满足不同场景用户的需求。
这也是拥有2.2亿用户的随手记,9年来首个改动较大的迭代,从研发测试到平稳上线,到短时间内快速被老用户接受、喜爱,背后离不开技术团队的付出和努力。
作为随手记的技术团队,在整个随手记V12改版的过程中,我们基于工程化的团队管理协作开发流程,为随手记V12的改版提供了敏捷的开发协作方式,保证随手记V12改版高效率、高质量的完成,实现了技术服务产品、技术赋能产品,提升开发效率,保证产品质量,以交付为目的的工程化实践。
技术工程化的核心-交付
在随手记开发负责人看来,带团队管理,核心目标就是交付,这也是唯一的目标,没有交付都是白搭,都是无用功。很多缺乏经验的管理者,会把精力放在无关紧要的细节过程中,忘记了目标,偏离了方向,导致项目不停的延期。
“细节并非指小工作,而是指和目标不相关的,不重要的工作任务。对于随手记V12改版来说,我们的目标就是完成整个随手记改版,提升用户体验,满足随手记平台的扩展,按时高质量的交付一个新版本。为了用户的体验,产品的质量,哪怕是界面一个像素,一个阴影,一个字体的偏差,我们都要核对和修改,这类问题虽然看着小,但是对我们这次随手记V12改版的目标是至关重要的。”
比如在改版的过程中,有一些新的想法,想加入一些新的功能,对于这些,如果不是对用户的价值非常大,不是对产品本身的体验有益,我们就可以先放一放,虽然这类任务看着大,但是并不重要,和我们改版要交付的目标关系不大。
交付是技术工程化的核心,也是我们技术工程化的目的。
交付的关键-协同
随手记V12改版,从进入开发开始,到产品验收、设计验收、测试、内测、灰度发布,直到最后全部上线,历时3个多月,参与人员20多个。在这个过程中,我们一方面要保证随手记V12改版按计划的进行,另一方面,还要保证随手记本身的正常功能迭代、维护和发版,两条主线同步进行,这就对团队的协同提出很大的挑战。
“随手记工程化的推广、普及、积累和实践,为我们的这次改版提供了很大的助力,让我们可以更好的地做好这次改版升级。” 随手记开发负责人总结了这样的心得。
项目负责人,要想做好协同,完成交付目标,就要详细的地理清楚以下四个要素。
(人、事、目标、结果)
“我们理清楚人、事、目标和结果后,就知道让哪些人,做什么事情,做到什么程度,什么时候完成,哪些人是相互关联协作的,哪些事是相互依赖完成的,谁先谁后,这样整个团队才能更好的协同完成同一目标,才不会乱。”
项目延期的最多的原因就是协同,比如一个任务完成了,其他人不知道,没有进行下一步的行动;沟通不顺导致做出来的东西和产品预期的不一致,要重新返工等等,做好协调同步,才能有条不紊,每个人才能在正确的时间点和正确的人配合完成工作,最终整个项目才能高效率、高质量的完成。
在随手记V12改版中,随手记团队应用了文档、项目管理工具、晨会、群、即时沟通会、周总结等工具办法保证了我们团队的协同。
随手记的技术工程化
随手记的技术工程化,在2018年初正式提出,然后开始逐步推进和普及,渐渐的形成基于技术工程化的效率团队。
(随手记技术工程化)
以上是随手记工程化的概览,涉及规范化、流程化、积木化、自动化和效率化。
通过规范文档我们积累沉淀,标准统一,减少差异带来的协作、沟通和代码等问题。
通过流程,我们规范开发到上线的整套标准,提升开发效率和质量。
组件的积累、模块的切分、微服务的搭建,让技术工程师我们可以实现更多的复用,减少工作量,提升效率,同时可以更好的保证质量。
“能用系统、工具、机器做的事情,都尽可能不要人手工来做,减少重复的劳动,提升效率,让员工投入到更具有创造性的工作上。”随手记开发负责人进一步强调。
清晰的职责,高效的协同,这样才能更好的助力随手记V12的改版。
助力随手记V12改版
在随手记V12的改版中,技术部门在我们以前积累的文档,对我们这次统一梳理随手记、分解随手记V12改版任务起到了很大的作用。
比如通过流水的文档,不光可以让我们熟悉以前的业务,让没有负责过流水的同事容易可以上手,也可以查到很多以前逻辑的原因,为我们新的V12改版提供参考。
好记性不如烂笔头,文档不管对于熟悉业务、人员流动交接、业务变更等都有很大的作用,是一份不断的传承。
随手记整个平台的模块化,让团队我们可以根据模块任务,进行任务拆分,并行独立开发,相互之间不影响。“比如账户、理财、记账等模块,我们可以把他们分给一个或者多个人,进行这个模块的协同开发,他们可以自己合并代码,持续集成验证,和其他模块完全独立,提升开发效率,减少耦合带来的产品质量问题。”
在模块化之外,技术团队我们还做了很多业务组件,有基础业务组件,可以为多个模块共用;也有模块特有的业务组件,只为该业务模块使用。业务组件和一般的开发组件不同,业务组件是带有比较强的业务性,比如超级流水组件,所有需要展示流水的功能都可以直接使用。
大量的模块和组件的积累,可以在我们这次V12的改版中,提升开发效率,提升产品的质量。这也是随手记我们技术工程化中「积木化」的一部分,我们可以像搭建积木一样开发自家我们的产品。
在大的项目开发的过程中,团队的配合和协作是非常重要的,作为负责人,需要让整个团队目标明确,每个人的人任务也要明确,谁和谁配合,谁和谁相互依赖也要明确,这样整个团队才不会乱,效率才会更高。在随手记V12改版的过程中,负责人我们通过项目管理工具把任务拆分和细分,并且把相关的任务建立关系,分配好经办人、验收人等;对于任务我们,大家定义了Epic,Story,Task,Improv,Bug等多种类型的任务,针对不同任务类型,使用不同的工作流,最大限度的提升任务完成效率。
(任务拆分、协作示意图)
基于项目管理工具,集合Gitlab,私有云存储,Jenkins等,实现的代码自动化构建,任务、代码、资源关联和流程自动化等,进一步提升开发效率。
上线前的最后一公里:从内测到灰度结语发布
在随手记V12改版的所有功能开发完成后,开始进入我们的合版测试。在合版测试的过程中,测试组我们每天都会持续集成至少一个版本,并同时发布这次集成的变更日志,用于随手记V12改版整体的验证,逐步的把发现的问题全部修复。
在随手记V12版本正式发布前,首先我们挑选了一些随手记的用户,对新的V12版本进行内测,然后根据用户反馈的建议,进行优化,进一步保证用户体验。
此外,我们还安排进行了灰度发布,一步步的扩大随手记V12版本的覆盖比例,到最终随手记V12全部上线后,随手记的稳定性一直保持在4个9。
随手记工程化的技术团队,基于敏捷的开发流程,可以小到一个功能任务,大到整个随手记V12项目团队,都可以灵活的解耦和协作,高效率高质量的完成这次随手记V12改版。