写点什么

李倩:拖累开发团队效率的困局与破解之道

  • 2019-04-03
  • 本文字数:2470 字

    阅读完需:约 8 分钟

李倩:拖累开发团队效率的困局与破解之道

互联网时代,业务发展越来越快,而技术的迭代速度,技术团队之间快速的协作交付,越来越成为团队业务制胜的一个很关键的因素,工程效率应运而生。


或许工程效率对于大家来说,早已不是一个全新的概念。许多公司也专门成立的工程效率部门,那么我们该如何理解工程效率呢?工程效率能给研发带来什么帮助呢?听听 KodeRover 创始人 & TGO 鲲鹏会会员李倩的分享,她将从多角度为大家带来工程效率方面的经验及建议,希望能帮助企业更好地利用工程效率,提升研发效能。

研发交付都是它的事儿

对于大部分工程师而言,没办法把大量时间投入到写代码上。除了写代码,他们还要负责找 bug、上线等工作,尤其是事务性工作(比如调试环境,和各部门沟通等杂项)。其实这是一个普遍现象,尤其是在一些达到一定体量的公司里,在这种情况下很容易出现效率问题。



详解工程效率


工程效率,主要关注业务交付链条中研发交付环节的品控和效率,最核心的是缩短优质代码到客户 (用户) 交付间的距离。用一句话说就是:整个研发交付的事都要管。


工程效率到底要做什么?


首先,要关注一些重要不紧急的事情;其次,就是量化工程开发团队对业务的交付能力,并且识别薄弱环节。最后,向工程建设卓越的企业学习,比如 Google、Facebook 以及 Netflix。


我的理念是,工程效率不只是改善一个人力的投入,更重要的是为企业建立软件工程信息高速公路,让更多工程师可以专注于研发。

工程效率面临怎么样的形势?


举个例子,To C 的企业像 B 站这样成长非常快的公司,人员增长逐年成倍,加人以后业务复杂度提升了,产能并不一定可以成倍提升。要更稳定的业务增长务必要把工程这一层做厚,比如多套测试环境,提升自动化程度,CI / CD 建设等。


另外一个比较大趋势就是业务驱动的 IT。而对于软件工程而言,如何以业务维度来量化各个职能的产出,也就是做企业内部的数字化转型?举个例子,QA 的产能怎么样评价?两条业务线到底哪个产能更高?对于工程师而言,他们的技术实力代表的是他们的真实实力,而不是企业卖了多少钱代表他的实力。所以,工程师这块需要告诉他们更多的反馈,比如覆盖率指标,返工率情况等等,数据驱动我们不断的提升和成长。


再者就是协作难度大,假设公司有 500+ 研发人员同时写代码,分支众多,合并频度以及状态的跟踪等等都是挑战。那么我们怎么样快速迭代?怎么做才能又能保证质量保证效率?包括自动化 case 或者多场景的测试,都是要面对的一些实际场景。

面对挑战,我们该如何做?

面对这些挑战,李倩主要提出两点,一个是组织发展,一个是文化建设。

组织发展


组织发展这块中,三大块组成了我们整个工程效率的体系,这三大块对应我们的三个子 team。



质量管理是主要是可以在测试开发团队分很多线,效能运营是效能运营中心,是一个虚拟组织,但是包含多种服务。工程赋能是平台工具组,来做整个的研发支撑。质量管理这块我们 QA 的同学基本上是测试开发,还有技术专家这样一些职能。大部分情况下,他们做全流程质量的把控,核心工作在熟悉业务,写自动化,构建不同的场景。


质量运营主要是关注 PMO 以及流程的产品化,还有我们整个内部系统的运维支持,还会做竞品分析等。以前做直播 SDK 我们会把竞品的几家 SDK 的自动化实现了以后去观察他们的一些性能指标。比如 ,CPU、Memory 以及丢帧或者一些实际的推流、播放的效果,会去做一些监控,这样就可以给内部提供更多的技术改进方向,或者是看得到其他人的技术成长。


然后现在他们的 scope 扩大了,就会去做一些质量分析。比如某团队,我们通过质效数据看到它是否有一些特性;比如通过事故统一分析下来,发现某个组件的性能非常容易出问题,技术专家会参与出专项改进方案,最终落地以及提供环境支撑等。


另外就是研发最佳实践的传播,比如单测或者是集成测试等做得比较好的,还有 codereview 做得比较好,都有这个组织来进行发起。


然后是工程师,大概都包含哪些工程师?质量管理制度会分几条线,有技术线和管理线。比如,业务质量负责人类似于质量 owner,测试开发有两个方向,一个是技术专家方面,一个业务专家方向。质效运营中心包含三部分,一个是针对测试服务的 service,一个是 PMO 负责流程设计和产品化,另外是 sre 内部平台的运维支持。

文化建设

第一、工匠精神

工程师对于质量应该有极致地追求,eat your own dog food。我们的理念是:代码是工程师写出来的,bug 也是他写出来的。举个例子,如果一段代码写的不好,给他多少个 QA 都解决不了问题,所以根上仍然是工程本身的质量怎么样。所以我们不会把质量往下游放,而是不断地向上游去思考,以及不会对 QA 追责,而是关注这个问题到底谁去解决成本更低。比如,一个问题如果是在 codereview 阶段就应该发现,那么就不应该到 QA 阶段。

第二、质量意识

我们这块会做大量的质量服务化工作,比如单测或者静态扫描等,我们会做成服务化。很多时候开发同学不是不愿意把代码写得好,而是自己不知道写出来到底能不能 work,我们就需要给他提供更多地支撑。比如,他不 work 的时候反馈给他原因。比如,一旦单测不过,或者说单测覆盖达不到要求,我们会让他看到,他会针对这个去做修改,而且是基于 Pr 级别的,秉承着“持续集成,小步快跑,快速反馈”的理念。

第三、工程文化

凡是超过两次都要考虑自动化或者服务化实现,Everything is Code。我们 CEO 许式伟先生曾经在群里说了一句话叫“系统性地解决一下”,这句话挺有意思,也是我们日常的工程文化体现。




TGO鲲鹏会,是极客邦科技旗下高端技术人聚集和交流的组织,旨在组建全球最具影响力的科技领导者社交网络,线上线下相结合,为会员提供专享服务。目前,TGO 鲲鹏会已在北京、上海、杭州、广州、深圳、成都、硅谷、台湾、南京、厦门、武汉、苏州十二个城市设立分会。现在全球拥有在册会员 800+ 名,60% 为 CTO、技术 VP、技术合伙人。


会员覆盖了 BATJ 等互联网巨头公司技术领导者,同时,阿里巴巴王坚博士、同程艺龙技术委员会主任张海龙、苏宁易购 IT 总部执行副总裁乔新亮已经受邀,成为 TGO 鲲鹏会荣誉导师。


如果你想和这些优秀的科技领导者们一起前行,欢迎参加「GTLC 全球技术领导力峰会 」


2019-04-03 14:234826

评论

发布
暂无评论
发现更多内容

10个AI人工智能PPT生成软件,轻松搞定PPT制作!

彭宏豪95

人工智能 在线白板 AIGC 效率软件 AI生成PPT

业界首份 GitLab DevSecOps 线上成熟度评估邀您来测

极狐GitLab

人工智能的本质是编程+数学吗?

算法的秘密

【教程】oc代码混淆_OC代码混淆工具

跨端轻量JavaScript引擎的实现与探索

京东科技开发者

嘿!AI 编码新玩法上线!

阿里巴巴云原生

阿里云 AI 云原生

如何关闭Windows自动更新

霍格沃兹测试开发学社

Docker cp命令详解:在Docker容器和主机之间复制文件/文件夹

霍格沃兹测试开发学社

IO模型介绍(select、poll、epoll)

京东零售技术

Java 后端 io

ChatGPT是什么意思?从产品简介、替代软件到应用场景等全方位解读!

彭宏豪95

人工智能 在线白板 AIGC ChatGPT 效率软件

✅inventory hint,解决热点数据如何高效更新

派大星

:MySQL 数据库 java 编程 热点数据

ElasticSearch架构介绍及原理解析

霍格沃兹测试开发学社

度小满轩辕:金融行业的大模型实战派

脑极体

AI

Libcomm通信库:GaussDB(DWS) 为解决建联过多的小妙招

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 华为云GaussDB(DWS)

「2024」不再内卷,让AI低代码带你玩点新花样!

优秀

AI 低代码 AI低代码 AI 人工智能

两会热议高质量发展 华大北斗用芯领航

江湖老铁

Easysearch 内核完善之 OOM 内存溢出优化案例一则

极限实验室

elasticsearch OOM 内存 easysearch

官宣!前联邦快递亚太区董事总经理 Robin 加入 Tapdata 担任首席运营官

tapdata

数据库

四种领导风格的大白话理解

芃篙君

管理

Apache Doris 2.1.0 版本发布:开箱盲测性能大幅优化,复杂查询性能提升 100%

SelectDB

数据库 大数据 查询性能 物化视图 #数据分析

Mysql join加多条件与where的区别

百度搜索:蓝易云

MySQL 云计算 Linux 运维 云服务器

re:Invent 产品体验与感受分享:Amazon ElastiCache Serverless 缓存的即时扩展

亚马逊云科技 (Amazon Web Services)

Serverless

聊聊CWE 4.14 与 ISA/IEC 62443中,如何保障工业软件的安全性

华为云开发者联盟

安全 开发 华为云 华为云开发者联盟 工业软件

印度股票盘开发

GangguHK

Vue3 - 插槽 Slots

霍格沃兹测试开发学社

Java HashMap 和 HashSet 的高效使用技巧

小万哥

Java 程序人生 编程语言 软件工程 后端开发

如何修复MySQL中损坏的表

百度搜索:蓝易云

MySQL 云计算 Linux 运维 云服务器

LLVM编译报错解决:collect2: fatal error: ld terminated with signal 9 [Killed]

百度搜索:蓝易云

云计算 Linux 运维 云服务器 ECS

100M 768 维向量数据,Zilliz Cloud 稳定支持 Shulex VOC 业务场景

Zilliz

AI Zilliz 向量数据库 zillizcloud

你知道h.265吧?但关于AV1编码格式你也来了解一下吗?

Geek_ee6d52

低代码与前端框架:现代软件开发的新黄金搭档

快乐非自愿限量之名

软件开发 低代码 前端框架

李倩:拖累开发团队效率的困局与破解之道_技术管理_李倩_InfoQ精选文章