提升研发效能:抵制无效加班文化

2023-10-19 04:40

本文主要是介绍提升研发效能:抵制无效加班文化,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

9a006fb24b320bd70b0a7e11cbfb2945.gif

程序员界有一个说法是"10x程序员",也就是"10倍程序员",意思是一个好的程序员,其工作效率可以达到普通程序员的10倍。这听起来似乎有些夸张,但是却是客观存在的真实情况。

由于软件研发具有高度灵活性,针对一个相同的任务,往往会有多种不同的解决方案可供选择,同时,每个解决方案又各自有不同的具体实现方法。这些不同的方案方法之间的效率差距就造成了程序员之间的效率差距。当要解决的问题比较简单、规模比较小的时候,这种效率差距还不太明显。而一但问题变得复杂之后,这些不同方案方法在设计复杂度、实现难度、可调试性、可维护性等方面的差距就会显著拉开,从而造成研发人员之间的巨大效率差异。

即使是在Facebook,在大部分开发人员的能力都比较接近的情况下,还是有一些特别突出的开发人员的水平可以达到平均水平的三四倍。

|你是否也曾为下面这些问题感到困扰?

团队角度:

1)加班也不少,但是产品发布还是常常延期,上线后产品问题频发。

2)从需求分析、产品设计、开发、测试到部署一个环节都不少,但最终发布的产品却与用户需求偏差很大。

3)产品发布上线时出现大量提交、合并,导致最后时刻出现很多问题,团队成员集体熬夜加班,却将大把的时间花在了等待环境、等待验证上。

4)开发提测质量不好,大量压力聚集到测试这一步,导致代码返工率很高。引入单元测试、代码审查,效果却不明显。

个人角度:

1)疲于应付业务,没有精力去精进技术。

2)工作过程中有大量的电话、即时聊天消息干扰,工作思路常常被打断。

3)对众多的工具(比如Git、命令行)的使用仅限于表层,工作效率较低,想提高却因为工具太多不知道从何下手。

4)有知识焦虑,但是没有找到好的办法系统地提高个人工作效率。

这其实是研发效能出现了问题。

|研发效能到底是什么呢?

一提到研发效能,很多人的第一反应都是开发的速率,也就是能否快速开发、发布产品。但事实上,速率只是效能的三大支柱之一。

相比快,产品开发更重要的是方向正确,因为不能为用户和公司真正提供价值的产品做了也是白做。另外,高效能还需要有可持续性,否则短期的高产出可能会严重伤害长期的产出。比如,连续熬夜加班虽然短期能增加一定的产出,但其带来的身体问题会导致后续工作效率低下,得不偿失。

因此,研发效能的完整定义应该是持续为用户产生有效价值的效率。它包括有效性(Effectiveness)、效率( Efficiency)和可持续性(Sustainability )三个方面。简单来说,就是能否长期、高效地开发出有价值的产品。

对于团队研发效能和个人研发效能来说,其核心都是这三个方面,只不过在价值的侧重点上有所不同。团队研发效能更注重对公司、团队、客户产生价值,而个人研发效能更注重个人的产出、技术的成长、个人的提高。

可喜的是,最近几年,国内越来越多的公司开始在研发流程、工具、文化等方面下功夫,很多百名研发人员规模的公司开始组建专门的效能团队,以提高整个公司的研发效能。这是一个很好的现象和趋势。

|为什么要关注研发效能?

2019年3月26日,一位昵称为996icu的用户在GitHub上创建了名为996.ICU的项目,自此996这个话题被推上了风口浪尖,该项目也在几个月之内就拿到了25万多颗星。那么,硅谷的公司有没有996”

在硅谷,很少有公司要求996。不过,在初创公司,因为业务紧张以及同事间的激烈竞争,加班也很常见。但是硅谷的公司和国内的公司有一个很大的区别:硅谷的公司一般是任务驱动的,它们只要求员工完成任务,并不关心员工到底花了多少时间;而国内很多实行996的公司不仅要求完成任务,还强调工作时长。事实上,专注时长的这种做法在软件开发行业是不合理的,因为长期加班并不能保证持续的高效产出。

从多年经验来看,每天能够高效地产出代码五六个小时已经相当不错。短期突击加班会提高产出,但如果长期加班的话,效率、质量必定会下降。长期加班会产生更低效的架构,引入更多的Bug,导致后期需要花费更多的精力去修复,得不偿失。

长期加班还会导致无效加班。比如,某在国内一流互联网公司工作的朋友反馈,他所在的公司实行996,很多人加班其实是在磨洋工,明显是低效加班,甚至坐在工位上上网耗时间的“无效加班”也时有发生。连一流的互联网公司中都会出现这种情况,可想而知,其他推行996工作制的公司大概率也会存在这种问题。

长期加班效果不好,那么面对激烈竞争,我们到底应该如何应对?对于这个问题,我们需要从软件开发本身的特点上来寻求解决办法。

软件开发是一个创造性很强的过程,开发者之间的效率相差很大。比如,“10x程序员”的生产效率可以达到普通开发者的10倍。这样巨大的效率差别,在团队层面也有同样的体现。如果能够提高团队的研发效率,那么产品的产出和质量都会大幅提升。所以,相比工作时长,公司更应该关注研发效能

|Facebook是如何做的?

2b806a436417d6c66ebfbaed620c2fd2.png

硅谷的很多知名公司,比如Google、Facebook、奈飞等,在研发效能上做得很好(这也是它们业务持续成功的重要因素),是研发效能的标杆。

Facebook在达到10亿月活的时候,其后端服务及前端网站的部署采用的是每周一次全量代码部署、每天一次增量代码部署,以及每天不定次数的热修复部署,但部署人员只有2.5个(0.5个是因为有一人是来自工程师团队的自愿报名的助手),达到平均每个部署人员支撑4亿用户的惊人效率。Facebook做到这一点的基础就是不断提高的研发效能。

当社交网络出现Bug的时候,调测起来非常麻烦,因为要复现Bug场景中错综复杂的社交网络数据困难且耗时。但Facebook采用开发环境与生产环境共享一套数据的方法,使开发人员可以非常方便地在自己的机器上复现Bug,以进行调测。当然,这样的数据共享机制背后有着强大的技术和管理支撑来规避风险。

研发效能的提高需要整个公司在研发流程、工程方法、个人效能和文化管理等方面进行精心设计。 注重研发效能对个人也有巨大好处,它能够让开发者更加聚焦于产出价值,更容易精进自己的技术,同时让团队更容易建立起好的技术氛围,进一步促进团队生产效率提高,从而形成良性循环,支撑持续的高效开发。

想要了解更多硅谷明星公司是如何提升研发效能的,欢迎阅读:《高效研发:硅谷研发效能方法与实践》

|推荐阅读

e8ede5397e7697770f42f3eb4d7b02ea.png5e09871560a8fa2914e0efd2f9551e13.png

《高效研发:硅谷研发效能方法与实践》


本书以Facebook(Meta)等硅谷企业的研发经验为背景,结合作者17年的研发经验,讲解了如何实现个人和团队的高效研发。
全书主要从以下5个方面对硅谷的高效研发方法进行了总结,提供了非常系统的指导原则和实践指南。

(1)研发效能综述 

主要了讲解研发效能的定义、模型,以及研发效能度量的正确方法。希望借此帮助读者梳理出研发效能的主脉络,构建一幅清晰的知识图谱。

(2)个人高效研发实践
主要讲解如何提高个人研发效能,具体涉及深度工作、Git、命令行、VIM、工具环境集成等内容,旨在帮助读者提高技术的专精程度和持续成长。

(3)研发流程优化
主要讲解研发流程优化的基本目标和原则、代码优化、分支管理、DevOps、团队协同等,希望帮助读者深入理解研发过程中的关键流程,以及流程优化的基本原则,从而能够针对自己的实际情况,找到合适的工程实践,让软件开发的整个流程更加顺畅、高效。

(4)团队高效研发实践
主要讲解团队高效研发实践过程中各关键步骤的高效工程方法,内容涉及研发环境搭建、代码审查、合理处理技术债、开源利弊分析、测试等,同时对研发流程及工程方法的趋势进行解读,希望帮助读者掌握这些具体工程方法的正确使用。

(5)管理和文化
系统分析了硅谷研发团队的管理和文化,尤其是Facebook的工程师文化,并根据作者在国内公司的具体落地经验,给出推荐的文化引入和建设方法。

研发效能和软件开发一样,都具有很大的灵活性,提高研发效能不是生搬硬套就能做好的。本书带你深入了解效能实践背后的原理,然后才是具体的实践。因为只有深刻理解原理,才能灵活运用。

书中还分享了大量成功的案例,带读者一起了解国内外公司的优秀做法,分析它们成功的经验。当然,也会分享失败的案例,分析其背后的原因。希望读者通过对比思考,找到真正适合团队和自身的实践。

12fb33b36f70ec00544351c1cfaf3b73.png

7853315e516eb856f520857e92d758e1.gif

刷刷视频👇

fb9573b3b7b02849841a4d0f2f2cab0a.gif

更多精彩回顾

干货 |Java到底能干什么?有哪些实际用途?

书单 | 成为优秀Java开发者,我看了这几本书

上新 |《Core Java》作者亲授视频免费看,学习Java更轻松

资讯 |云原生时代,阿里如何让Java冷启动提速两个数量级?

资讯 | Python迎来31岁生日,蝉联年度编程语言排行榜冠军

干货 |一文带你掌握计算机体系结构核心内容

书讯 | 2月书讯(下)| 新年到,新书到!

书讯 | 2月书讯 (上)| 新年到,新书到!

da652647f990e3225724d0da8758db95.gif

62c12cf46ab84247da1d7a2b891bf119.gif

点击阅读全文购买

这篇关于提升研发效能:抵制无效加班文化的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/237384

相关文章

大模型研发全揭秘:客服工单数据标注的完整攻略

在人工智能(AI)领域,数据标注是模型训练过程中至关重要的一步。无论你是新手还是有经验的从业者,掌握数据标注的技术细节和常见问题的解决方案都能为你的AI项目增添不少价值。在电信运营商的客服系统中,工单数据是客户问题和解决方案的重要记录。通过对这些工单数据进行有效标注,不仅能够帮助提升客服自动化系统的智能化水平,还能优化客户服务流程,提高客户满意度。本文将详细介绍如何在电信运营商客服工单的背景下进行

跨国公司撤出在华研发中心的启示:中国IT产业的挑战与机遇

近日,IBM中国宣布撤出在华的两大研发中心,这一决定在IT行业引发了广泛的讨论和关注。跨国公司在华研发中心的撤出,不仅对众多IT从业者的职业发展带来了直接的冲击,也引发了人们对全球化背景下中国IT产业竞争力和未来发展方向的深思。面对这一突如其来的变化,我们应如何看待跨国公司的决策?中国IT人才又该如何应对?中国IT产业将何去何从?本文将围绕这些问题展开探讨。 跨国公司撤出的背景与

国产游戏崛起:技术革新与文化自信的双重推动

近年来,国产游戏行业发展迅猛,技术水平和作品质量均得到了显著提升。特别是以《黑神话:悟空》为代表的一系列优秀作品,成功打破了过去中国游戏市场以手游和网游为主的局限,向全球玩家展示了中国在单机游戏领域的实力与潜力。随着中国开发者在画面渲染、物理引擎、AI 技术和服务器架构等方面取得了显著进展,国产游戏正逐步赢得国际市场的认可。然而,面对全球游戏行业的激烈竞争,国产游戏技术依然面临诸多挑战,未来的

java学习,进阶,提升

http://how2j.cn/k/hutool/hutool-brief/1930.html?p=73689

JAVA用最简单的方法来构建一个高可用的服务端,提升系统可用性

一、什么是提升系统的高可用性 JAVA服务端,顾名思义就是23体验网为用户提供服务的。停工时间,就是不能向用户提供服务的时间。高可用,就是系统具有高度可用性,尽量减少停工时间。如何用最简单的方法来搭建一个高效率可用的服务端JAVA呢? 停工的原因一般有: 服务器故障。例如服务器宕机,服务器网络出现问题,机房或者机架出现问题等;访问量急剧上升,导致服务器压力过大导致访问量急剧上升的原因;时间和

基于javaweb的茶园茶农文化交流平台的设计与实现(源码+L文+ppt)

springboot基于javaweb的茶园茶农文化交流平台的设计与实现(源码+L文+ppt)4-20 系统功能结构 系统结构图可以把杂乱无章的模块按照设计者的思维方式进行调整排序,可以让设计者在之后的添加,修改程序内容的过程中有一个很明显的思维方向。同时结构图还可以让设计者以外的其他人更直观的看出整个系统的设计理论和设计过程。让系统的设计变的更直观。该系统的功能架构图如图3-1所示:

提升PrestaShop外贸电商网站安全的几款行业必备工具

提升PrestaShop外贸电商网站安全的几款行业必备工具 PrestaShop发展历程 PrestaShop是一款优秀且强大的外贸开源电商软件,我们开始使用PrestaShop始于2009年,那时PrestaShop还是0.9版本:界面清新,性能强悍,扩展友好等特性,既没有Magento的笨重,也没有ZenCart的古老,更没有OpenCart的脆弱,因此PrestaShop如雨后春笋,迅速

Axure元件库Ant Design中后台原型模板:提升设计与开发效率的利器

企业对于中后台产品的设计与开发需求日益增长。为了提升用户体验和开发效率,设计者和开发者们不断寻求更加高效、统一的解决方案。Ant Design,作为阿里巴巴开源的一套企业级UI设计语言和React组件库,凭借其丰富的组件和统一的设计风格,已成为众多项目的首选。而在Axure中使用Ant Design元件库,更是为中后台产品的原型设计带来了极大的便利。 Ant Design简介 Ant D

【JavaScript】let与var的区别及变量、函数提升

有var与无var的区别   在函数内部,有var和没var声明的变量是不一样的。有var声明的是局部变量,没var的,声明的全局变量,所以可以借此向外暴露接口。 let与var的区别   在上面代码中,我们使用var语句声明变量x。因此,变量x的范围是函数范围。if语句内的变量x就是if语句外创建的变量x。因此,在你修改if语句块内变量x的值的时候,也会修改函数中变量x的所有引用的

如何通过食堂采购小程序端降低成本,提升效率?

随着数字化管理工具的普及,越来越多的食堂正在引入小程序来优化采购流程,减少成本和提升效率。食堂采购小程序端通过技术手段实现了自动化、智能化的管理方式,为管理者提供了极大的便利。本文将探讨如何利用技术手段开发一个高效的食堂采购小程序端,并提供一些代码示例,帮助你理解其背后的实现原理。 1. 简化采购流程 在食堂采购小程序中,简化采购流程是核心目标之一。我们可以利用数据库和后端服务来实现快速下单