从效能公式解构研发效能

这几年,云原生、Web3.0、元宇宙等技术的出现和应用,正在深刻地改变着我们这个世界。以数字技术应用为主线的数字化转型是此次人类文明变革的核心动力。在这一变革过程中,软件研发模式的发展起到了重至关重要的作用。从早期瀑布式、精益敏捷、DevOps,再到BizDevOps,其实背后一直在解决的是效能的问题。

效能公式

我们常常聊效能,但研发效能对于不同的人来说,有着不同的定义。对于处在研发一线的个人来说,效能就是提升自己的工作效率,提升工作的幸福感;而对于企业经营者来说,效能就是在不确定性的环境下,确定性地获得最大的商业成功。

因此,提升效能,就是让每个人能够高效、专注的工作,工作更有成就感;提升效能,就是让一群人干成一件值得骄傲的事。

我们之前定义过,研发效能就是组织持续、顺畅、高质量交付有效价值的能力。从提升效能的角度,研发效能就是提升个体和协同效率,最大化价值。将这个三个变量组合在一起,形成的效能公式就是:

个体效率 x 协同效率 x 价值 = 研发效能

个体效率

对于个人而言,个人的工作效率其实是最影响幸福感的。事情做不好,很大部分原因是,事情理不清、理不顺。老师通过看一个学生的课桌和书包,基本就可以判断这个学生的学习成绩好不好了。桌面干不干净、书本整不整齐、教材和教辅分类是否清楚、考卷有没有分门别类整理等,这些都直接影响着学习的效率。所谓“学霸两支笔,学渣文具多”,如果绝大多数时间和专注力花在找书本找文具上,学习自然是好不了的。

另一个影响的效率的重要因素,是那些高频且低效或易于出错的工作。简单重复性强的工作,引入自动化的手段就可以解决。高危操作,出错和返工的成本都极高。将这些问题,交给工具来完成,可以极大地减少由于人为操作导致的问题。

所以,我们希望在日常工作中,事情能够有条理的按部就班,要的东西找得到,看得见。重复繁琐的事情,让工具代替手工,更轻松地做,省心、安心、放心。我简单总结,就是三个关键词:找得到、看得见、轻松做。

今年,云效分别升级了全站搜索、个人工作台、代码合并、智能测试和应用发布等能力,旨在让:

零散信息找得到:通过个人工作台,我们可以将自己关心的工作内容展现在一个页里,“我的项目、我的任务、我的提交、我的发布”,个人工作台就是自己的专属线上办公桌。像整理自己桌面一样整理好自己的工作台,让任务轻松触达;同时,通过全站搜索能力,无论是需求、任务、缺陷、代码、应用、变更等等,都能通过 CMD + K 找到。

任务、进度看得见:每个人对自己关心的任务、关心的进展,都能轻松地看见。就像观测地铁到站表一样,非常清晰地知道当前任务经过了哪些阶段,当前处在什么阶段,到结束,还需完成哪些阶段。

代码提交轻松合:开发者有大量的代码合并和评审的场景,通过辅于自动化的检测能力,帮助开发者在代码合并的时候,轻松判断合并条件,有针对性地进行评审,放心轻松地合并代码。让代码合并省心。

回归测试轻松测:测试工作在软件研发过程中,承担着非常重要的质量守护工作,测试工作从写case、准备环境、准备数据...,琐碎而重复,对于这样的工作,我们建议这样的工作交给工具来做,云效除了接口测试、UI测试这些传统的测试工具之外,推出智能流量回放测试。采用智能流量回放测试,可以自动生成测试用例,自动生成测试数据,自动Mock,大幅节省回归测试的成本。让质量内建安心。

应用上线轻松发:软件的发布在云研发时代是一个高频操作,同时也是高危操作。云效应用发布平台AppStack,推出面向云原生的应用发布能力,将资源、流程和工具以应用为核心组织在一起,从应用的创建、代码变更、部署发布整个流程固化下来,减少过程中由于人为操作不当而引起一系列问题。同时,部署是最后的临门一脚,辅于发布过程中的可观测能力和部署模式的支持,有效降低发布过程中的风险,应用的发布上线不再熬夜加班。让应用发布放心。

只要善于发现,可提升、改进的机会还有很多。不要低估持续不懈地优化和改变,进步的力量,始于每一点微小的改变。

协同效率

如果说个体效率的提升,影响的是工作幸福感的话,那么协同效率的提升反映的就是组织的成熟度和活力。

软件研发是典型的集体性创造活动。人多了,就会有分工,分工有很多好处,亚当·斯密最早提出了分工理论,通过比较优势,分工可以提高效率。但随着组织的发展,职能分工带来最直接的问题就是:效率竖井。

关于效率竖井,我们以前讲过很多次。不同的职能分工,职能间的关注点不同,优先级不一致,经常出现扯皮的现象。同时,在整个交付过程中,出现阻塞、等待、返工的情况。彼此沟通过程中,概念不一致,鸡同鸭讲,聊不到一块儿。这样的后果是,每个团队看上去,繁忙而高效,而整体却效率低下。

协同的目标,就是让一群人确定性地共同完成一件大事。整个协同应该是一条通路,通是关键。在DevOps中,打破Dev和Ops的墙是为了通,在BizDevOps中,打通Biz和DevOps的墙,也是为了通。这里我把它归纳为两个关键词:连接和透明

通过一个需求,与应用的变更建立关联,通过一个需求,与代码合并请求建立关联。双向互联互通,基于统一的数据模型,将这些核心作业对象关联起来,形成一张价值网,这样就建立起来了从协作到工程的完整链路。

连接的意义,远大于在研发流程中,将工具简单的拼装在一起。有了核心工作对象的关联,就像接通了整个研发协同系统的血液循环,活了过来,整个系统也就具有了生命力。

连接建立了基础,透明化就不再话下。这样,整体的工作进展,从需求、代码、发布完全打通,工作进展更准确、透明。迭代进展能够及时、准确地看到;工作安排是否合理,通过工作负载也能展露无疑。

有了连接做为基础,数据在各环节就能共享,任务和进展可以轻松看得见,效能现状也能轻松看得见。

一群人,安排了哪些活、在哪一天,工作量是否过大等等。对于管理者而言,效能现状也能做到胸有成竹,团队效能有没有“病”,要不要“吃药”,有了数据的支撑,就能做到对症下药了。

同时,通过关系和信息的配置,将流程固化在工具上。让过程管理不再局限于纸面文章,而是可运行、可重复、可推广。

然而,无论是提升个体效率,还是协同效率。在软件研发工作中最大的问题,其实是机会的浪费。

价值

选择比努力重要。资源这么多,只能选择最有价值的事情来干。如果说连接是血液循环系统的话,那么价值就是这个系统支撑的魂。但实际的工作中,往往容易丢了“魂”。丢了“魂”的工作是怎么样的呢?

是工作说不清楚价值;是需求很多,但不知道哪个更重要;是我的工作和老板关心的工作不一致;是需求层层分解、任任层层转交,导致信息严重失实。

人就那么多,时间也很有限,选择一件对的事情,并且做好分解和传递很重要。所以,我认为做好价值最大化的两个关键因素是:选择和传递

关于选择,收益和成本是最简单的两个变量,通过收益除于成本就可以简单得到一个基础投资收益得分,基于此做为选择需求的参考。

一定会有朋友说,价值模型有很多,单纯靠这两个变量是否过于简单。其实,从本质上讲,无论多么复杂的价值模型,背后的底层逻辑都是收益和成本。有了这两个简单的变量,争论便有了基础,而不是看谁嗓门大、关系亲疏、职级高低来决定做哪个需求。这就很有意义,让价值的争论发生在越早越好。

同时,有了评估选择的基础,我们就可以做到:以终为始(在开始的时候,就以最终想达成的结果来进行评判选择)和量出而入(在排入需求的时候,就以输出的时候为标准,无论是质,还是量)。

从收到一个前线的原始需求,转化为一个产品主题,再逐层分解,直到开发任务,这是整个价值传递的过程。研发的整个流程,其实就是价值流,价值流上的各环节是增值活动。这样,整个价值链上的每个事情都是有价值的,每个事情也都能说明价值。

同时,对于业务、产品或技术来说,用一套话语体系说话。从原始输入,到产品需求,再到技术任务,云效通过关联所有的核心对象,让事事有着落,件件能溯源。

写到最后

通过让事情找得到、看得见、轻松做,提升工作的幸福感,提升个体效率。通过连接和透明化,建立彼此协作的桥梁和信任,提升协同效率。通过价值有效选择和传递,最大化价值。整体共同作用,提升研发效能。

基于这个逻辑,让我们从面向流程到面向价值进化,从提升效率到提升效能进化。当然,云效也无法兼顾到研发活动的方方面面,我们愿意和我们的伙伴和用户一起努力,做一点点改变。进化,其实就是每一点点进步。

感谢我的同事们努力的工作,让进步一点点发生。最后,欢迎大家对我们的产品提出更多的想法和建议。

作者:张燎原,阿里云云效 产品负责人

原文链接

本文为阿里云原创内容,未经允许不得转载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/510328.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

sdut 汉诺塔系列2

汉诺塔系列2 Time Limit: 1000MS Memory Limit: 65536KBSubmit Statistic DiscussProblem Description 用1,2,...,n表示n个盘子,称为1号盘,2号盘,...。号数大盘子就大。经典的汉诺塔问 题经常作为一个递归的经典例题存在。可能有人并不知道汉诺塔问题的典…

阿里CCO:基于 Hologres 的亿级明细 BI 探索分析实践

CCO是Chief Customer Officer的缩写,也是阿里巴巴集团客户体验事业部的简称。随着业务的多元化发展以及行业竞争的深入,用户体验问题越来越受到关注。CCO体验业务运营小二日常会大量投入在体验洞察分析中,旨在通过用户的声音数据结合交易、物…

ubuntu软件安装 caffe相关软件安装 学习笔记

解压rar文件sudo 7z x filename.rar解压zip文件unzip archive_name.zip解压TAR文件# tar -cvf archive_name.tar directory_to_compress运行ssdsudo sucd caffepython ///caffe出现no mudole caffe解决方法source /etc/profile编译caffemake cleanmake all -j8获得复制文件权限…

sdut 青蛙过河

青蛙过河 Time Limit: 1000MS Memory Limit: 65536KBSubmit Statistic DiscussProblem Description 1)一条小溪尺寸不大,青蛙可以从左岸跳到右岸,在左岸有一石柱L,石柱L面积只容得下一只青蛙落脚,同样右岸也有一石柱R&…

python调用shell脚本

python程序 import osimport subprocessimport syswhile(1):subprocess.call("/home/your_host_name/caffe/detection_position/test_code/new/call_parse_position.sh", shellTrue) call_parse_position.sh 文件 #!/bin/bash # # #gcc m1.cpp -o m1_run echo &…

sdut 数字三角形问题

数字三角形问题 Time Limit: 1000MS Memory Limit: 65536KBSubmit Statistic DiscussProblem Description 给定一个由n行数字组成的数字三角形如下图所示。试设计一个算法,计算出从三角形的顶至底的一条路径,使该路径经过的数字总和最大。对于给定的由n行…

caffe编译出现 libcudart.so.8.0 cannot open shared object file: No such file or directory的错去

"libcudart.so.8.0 cannot open shared object file: No such file or directory"解决办法是将一些文件复制到/usr/local/lib文件夹下:#注意自己CUDA的版本号!sudo cp /usr/local/cuda-8.0/lib64/libcudart.so.8.0 /usr/local/lib/libcudart.s…

sdut 装船问题

装船问题 Time Limit: 1000MS Memory Limit: 65536KBSubmit Statistic DiscussProblem Description 王小二毕业后从事船运规划工作,吉祥号货轮的最大载重量为M吨,有10种货物可以装船。第i种货物有wi吨,总价值是pi。王小二的任务是从10种货物中…

SSD( Single Shot MultiBox Detector)关键源码解析

SSD(SSD: Single Shot MultiBox Detector)是采用单个深度神经网络模型实现目标检测和识别的方法。如图0-1所示,该方法是综合了Faster R-CNN的anchor box和YOLO单个神经网络检测思路(YOLOv2也采用了类似的思路,详见YOLO…

sdut 删数问题

删数问题 Problem Description 键盘输入一个高精度的正整数n(≤100位),去掉其中任意s个数字后剩下的数字按照原来的左右次序组成一个新的正整数。编程对给定的n与s,寻找一种方案,使得剩下的数字组成的新数最小。Input …

爬取百度搜索的图片

#encoding:utf-8import urllibimport requests #首先导入库import reMaxSearchPage 20 # 收索页数CurrentPage 0 # 当前正在搜索的页数DefaultPath "/home/mindfusion/pic" # 默认储存位置NeedSave 0 # 是否需要储存n0def imageFiler(content): # 通过正则获取当…

sdut 活动选择问题

活动选择问题 Time Limit: 1000MS Memory Limit: 65536KBSubmit Statistic DiscussProblem Description sdut 大学生艺术中心每天都有n个活动申请举办,但是为了举办更多的活动,必须要放弃一些活动,求出每天最多能举办多少活动。Input 输入包括…

YOLO升级版:YOLOv2和YOLO9000解析

论文笔记:YOLO9000: Better, Faster, Stronger;官方网站 评论:YOLO是基于深度学习方法的端到端实时目标检测系统(YOLO:实时快速目标检测)。YOLO的升级版有两种:YOLOv2和YOLO9000。作者采用了一系…

sdut 马的走法

马的走法 Time Limit: 1000MS Memory Limit: 65536KBSubmit Statistic DiscussProblem Description 在一个4*5的棋盘上,马的初始位置坐标(纵 横)位置由键盘输入,求马能返回初始位置的所有不同走法的总数(马走过的位置不…

python 生成xml文件

from xml.dom.minidom import Document # 确保caffe在Python路径: import xml.dom.minidomdoc Document() #创建DOM文档对象Object doc.createElement(Objects)doc.appendChild(Object) objec_namepersonlable15xmin207ymin106xmax489ymax381score0.99566object_name doc.c…

sdut 懒虫小鑫

懒虫小鑫 Time Limit: 1000MS Memory Limit: 65536KBSubmit Statistic DiscussProblem Description 小鑫是个大懒虫,但是这一天妈妈要小鑫去山上搬些矿石去城里卖以补贴家用。小鑫十分的不开心。不开心归不开心,小鑫还是要做这件事情的。我们把这个事情简…

c++ 解析xml文件

解析的xml文件 <?xml version"1.0" encoding"utf-8"?><Objects><person><label>15</label><xmin>207</xmin><ymin>106</ymin><xmax>489</xmax><ymax>381</ymax><scor…

sdut 最少拦截系统

最少拦截系统 Time Limit: 1000MS Memory Limit: 65536KBSubmit Statistic DiscussProblem Description 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能超过前一发的高度.…

ubuntu下动态链接库的编译和使用实例

以下实例的环境是amd64 ubuntu10.10 g 4.4.5测试成功&#xff0c;在其他配置的机器上可能有一点区别。 动态库的使用方式中有两种&#xff0c;第一种是类似于静态库的使用&#xff0c;另一种我称之为真正的动态加载动态库&#xff0c;主要是因为这种方式在程序运行的过程中加载…

sdut 数据结构实验之栈四:括号匹配

数据结构实验之栈四&#xff1a;括号匹配 Time Limit: 1000MS Memory Limit: 65536KBSubmit Statistic DiscussProblem Description 给你一串字符&#xff0c;不超过50个字符&#xff0c;可能包括括号、数字、字母、标点符号、空格&#xff0c;你的任务是检查这一串字符中的( )…