人力家:用云效搭建一站式发布工具链持续降本提效

企业背景

人力家公司规模约60人左右,主要负责人力资源SaaS系统开发,开发语言以JavaScript、Java为主。公司主要产品包括智能薪酬、智能工资条、智能社保、智能背调等等,目前已服务电子商务、零售服务等领域的多家客户。

人力家成立于18年年底,是由阿里钉钉和人力窝共同投资成立的互联网人力资源服务平台,主要提供包括人事管理、薪酬管理、社保管理、增值服务在内的人力资源SaaS服务,加速对人力资源领域赋能,实现人力资源新工作方式。

曾经面临的效率问题与痛点

人力家是一家典型的创业公司,处在一个竞争激烈的市场环境中,对团队最大的要求是快、快、快,既要快速满足客户需求,又要快速响应市场变化。目前产研团队30人左右,4、5条项目线同时进行是常态,团队采用业务线+职能线的矩阵式结构,具有很强的业务结果导向。在业务线越来越多,客户量越来越大的情况下,产研团队遇到了以下挑战:

1)需求紧急且变化快,沟通成本上升

公司在快速成长,客户需求复杂多样、变化频繁。在市场压力下,团队很容易迷失在大量的紧急需求中,失去目标和方向感;同时沟通成本和协作成本快速上升,常常由于沟通不到位而产生重复性的工作。

2)团队交付能力呈现下降趋势

随着项目线增多,业务场景越来越复杂,研发同学常常因为环境问题、协作规范问题、和其他人为因素导致资源浪费,将宝贵的时间花费在一些原本可以标准化,自动化完成的工作中,团队整体交付能力呈现出下降趋势。

3)协作过程不透明,好的经验难复制

项目协作过程中缺少可视化的数据支撑,业务线各自发展,交付质量参差不齐。到最终总结时好的项目到底优秀在哪里?差的项目到底哪里出了问题?好的经验难以复制,坏的问题也无法二次避免。

人力家提效成果

在需求管理方面,引入云效之前,产研团队通过定期的需求排期会沟通迭代目标和规划,通过早会沟通每日任务。所有会议要求大家时间同步,难免会有部分同学因为请假、时间冲突等原因不能准时参会,导致信息不能准确清晰地传递。引入云效之后,所有的迭代、需求、任务、缺陷,包括已排期的、未排期的都在一个工具中呈现;缺陷解决、代码评审、流水线发布状态一目了然。所有项目组成员只要登录系统就可以对自己手上任务,或者下一期迭代规划看的清清楚楚,减少了线下沟通成本。

在质量管理方面,引入云效之前,所有的代码规约扫描、安全扫描、测试脚本执行、代码评审都靠团队成员的自觉意识,很容易出现疏忽和遗漏。引入云效之后,我们把这些都集成在代码服务和流水线中,并通过插件,把执行结果实时同步到钉钉群,减少由于人的因素产生的低级问题。

在数据统计方面,产研团队需要定期统计每个迭代的关键过程数据,以便持续改进。引入云效之前,数据由PM手工收集整理,这些数据包括:每个需求的记分卡、完成情况、工时,代码评审问题记录,线下缺陷,线上故障,安全问题等。这些记录散落在各个地方,有的在审批单里,有的在Excel表里,收集起来费时费力。引入云效后,所有记录都统一记录在云效中,每个成员只要随时更新与自己相关的记录即可,数据统计省时省力,项目过程数据随时可查。

以下是对各改进项目的对比和效能提升结果:

对比项目

改进前

改进后

提效成果

需求管理

定期组织需求规划,会议纪要淹没在大量邮件或者聊天记录中; 因沟通不畅,导致实现与需求不符,产生无效工作。

团队可以异步工作,目标、需求、每日任务,以及完成状态通过云效看板一目了然,减少了大量同步沟通,协作时间。

按6人规模团队,月为周期统计: 需求规划会至少节省6小时;每日站会至少节省10小时。

代码评审管理

通过审批单执行,评审记录沉淀在审批单中,无法数字化; 没有强制流程,评审不通过也可以发布。

通过Codeup强制执行评审,支持多人评审,没有评审记录无法发布; 评审问题实时反馈,评审效率提高。

评审反馈时间缩短,评审记录数字化; 发布受控,减少因低级错误产生的隐患。

流水线任务

测试脚本、安全扫描、代码规约扫描手工执行;执行结果人工记录与反馈。

全部集成到流水线中自动执行,执行结果实时同步到钉钉群。

一次发布由平均30分钟减少到2分钟。

数据统计

依靠PM手工从各个角落收集统计。

所有数据集中在云效中,团队成员可以随时查阅、维护与自己相关的数据; 支持统计和分析,项目数据和关键问题一目了然。

每月统计一次变成随时统计;一次完整的统计从花费数小时减少到一分钟。

云效&人力家解决方案

结合云效的工具能力和人力家研发管理流程,我们采用了如下解决方案:

1

用云效统一每个敏捷团队的协作工具,让所有成员都能快速找到自己的关键任务,并清晰地了解任务的优先级、交付时间,减少沟通成本,支持异步协作。

1)迭代和需求管理

迭代规划、进行、完成、逾期一张图可见,团队成员可以随时了解项目进度和面临的风险:

1

基于看板各个角色可以实时同步状态,由原来同步组织线下会议转化为线上异步合作,提高协作效率:

1

2)代码质量管理

开发人员提交代码后将自动触发代码的扫描,如代码规约扫描及代码安全敏感信息扫描等,并快速反馈给开发者,尽快排查修复:

1

预发环境分支采用publish/*分支,并设置分支保护模式;开发通过merge request提交测试通过后分支到publish/*分支;灵活的codereview支持,有问题的地方直接备注,实时反馈给开发者:

11

3)流水线自动部署

将构建、测试、发布用一条流水线串联起来,发布状态可见。流水线中集成了代码扫描、单元测试以保障产品发布质量,执行结果实时同步到钉钉。事务性工作自动化,让研发人员精力集中在高质量、高效率交付的核心事件上。

111

通过在流水线中增加人工卡点,满足发布流程对产品上线前需执行人工审核的要求:

1

一致的开发、测试、预发、生产环境,避免了因环境差异带来不可预期的结果。四种环境和用途如下:

•日常环境:部署以后自动执行代码扫描,供开发者使用,用于自测、联调;

•测试环境:需要测试审批,部署后自动执行自动化测试;

•预发环境:产品上线前视觉验收、功能确认、执行代码扫描、安全扫描,需要Owner审批;

•生产环境:正式对外提供服务,需要测试审批,产品验收。

4)数据可视化

项目中所有过程关键数据沉淀在任务中,方便统计分析:

1

项目数据总览,方便及时发现问题,合理配置资源。在项目盘点时,也可以通过历史数据发现项目执行过程中的优缺点,有针对性地进行改进:

11

结语

云效是一个非常适合于产研团队进行敏捷协作的工具,特别是其中代码管理与流水线进行了无缝集成,完全可以满足中小型团队对代码托管、评审、发布的一系列需求。相对于自己维护一条“万国牌”发布工具链,其成本优势也是非常明显的。作为一家创业型企业,把有限的资源投入到产生业务价值的活动中,跑赢市场和竞争对手是最重要的,把专业的事交给专业的人做,希望云效越来越好,能给我们带来更多的惊喜。

作者(合作者)介绍

葛志刚,十多年互联网研发,丰富的架构经验。目前在人力家负责研发团队的管理,架构工作。负责过多个核心产品架构,包括智能薪酬,智能工资条,智能社保等。在团队内推动敏捷协作,安全体系建设,稳定性保障和治理工作。

张莉,前阿里巴巴云效解决方案架构师,拥有多年敏捷与持续集成工作经验,经历过通信及互联网多个行业,曾负责大麦持续交付流程建设,成功帮助飞猪、饿了么研发流程与阿里巴巴集团融合,对项目管理、持续交付过程中的痛点有深刻认识,专注于帮助中小企业提升研发效能,完成DevOps转型。

重要

本文内容非阿里云官方提供,如您发现本文档存在侵权内容或其他问题,请提供相应证明材料并在本页面内提交反馈信息,阿里云会协调或通知相关作者进行处理。