DevOps案例研究:知人善任——Google敏捷核心文化

内容来源:DevOps案例深度研究-Google敏捷实践战队,本文只展示部分PPT及研究成果,更多细节请关注案例分享会。

本文内容贡献者:陈霁、刘翀、谈佳婧、张霖。

阅读干货前先感受一下热烈的氛围~


一、Google如何快速交付原型

640?wx_fmt=png

1.1 Savioke公司实例

Savioke(公司真实存在,但公司名为化名)是一家刚创立6个月的公司。公司创立之初,大家都会思考一个问题:我们要做什么?他们的答案是:做智能机器人,并且致力于把机器人带到人类的日常生活中,如餐厅、医院和老人护理中心。

Savioke明确了目标并且通过这个目标获得了一笔融资,而公司要想存活并发展,需要准确判断和把握商机。产品已确定是机器人,那么要通过什么样的机会将这一产品推向市场呢?

640?wx_fmt=jpeg

他们发现在所有的酒店中存在这样的现状:在早上和晚上的高峰期,客人办理入住、退房、客房服务等各种需求会让前台人员焦头烂额,而这些需求和操作都是高频且重复的,这部分工作完全可以由机器人来代替,这就是机器人提供协助的绝佳机会。于是Savioke和百家连锁酒店达成实验协议,在这些协议酒店中引入机器人来解决上述痛点。

实施过程存在哪些困难呢?从我们自身出发,肯定首先想到的就是技术实现上的问题:怎么让机器人知道是哪个房间?机器人怎么才能通过电梯去到客人的房间为客人送东西?等等。

但团队发现其实更大的困难来源于场景:担心客户可能不喜欢递送机器人,也不确定机器人在客户面前会如何表现,毕竟机器人不可能表现得完全像真人一样,那客户会不会觉得机器人来提供服务这件事很诡异?比如下图右侧的图片来自一个电影《机械姬》看上去确实有些违和。

640?wx_fmt=jpeg

困难客观存在,实验的时间又非常短,只有三周,对于Savioke来说,这是用设计冲刺的好时机。最终结果如下图。

640?wx_fmt=jpeg

1.2 5天设计冲刺实例

设计冲刺-Savioke公司实例

还是以Savioke为例,详细拆解设计冲刺的过程。在机器人从实验到正式推向市场的三周中,最核心的只有五天,这五天就是在做设计冲刺,其中80%的时间在“设计”,技术实现只用了一天,剩下两周是原型优化和迭代升级。 

1)第一天,列出问题。

这个过程中的很多做法跟我们现在所说的用户故事地图很像,第一件事都是头脑风暴,把所有东西罗列出来。区别在于设计冲刺更专注于how级别的问题,而我们平时过早地把how转化成what具体的问题了。

640?wx_fmt=jpeg

第一天的问题罗列决定接下来所要做的范围。所以Savioke做了一件事,它选定了一个很常见的客户需求:酒店客人忘记带牙刷。围绕这一需求来进行功能设计,这就是所谓的MVP(最小可行性产品)的理念。

640?wx_fmt=jpeg

要完成机器人为客户递送牙刷这一服务,这一过程中包含的角色有四种:客人、酒店前台、机器人、其他相关人员。上图右侧是Savioke的机器人递送地图,详细展示了整个交付路径。

2)第二天,找出解决方案。

第一天把问题罗列好并确定下来之后,第二天就需要找出关键点,和对应的解决方案。罗列的问题和事情有很多,但不是所有的都要解决,不能给机器人设置过多的功能,而应该让它专注在某一个核心功能点上,解决关键需求

640?wx_fmt=jpeg

3)第三天,找出最佳方案。

640?wx_fmt=jpeg

每个人都依据“闪电演讲”的方法对自己做出的场景规划进行阐述,比如机器人看到客人时是说“Hello”还是“Bonjour”(法语“你好”),是不是需要考虑面对不同客人说不同的话?

通过闪电演讲一共收集了23个方案,用HMW投票和结构化讨论的方式选出最佳方案,即上图右侧所示。

4)第四天,制作测试原型。

三天过去了,似乎一点落地的东西都没有,第四天开始制作测试原型。听起来似乎有些不可思议,三天做计划一天做出原型,但仔细想想是可能的,因为前面已经明确了要做的事情,Savioke就是一个成功的案例。

640?wx_fmt=jpeg

5)第五天,执行测试。

原型做出来后,第五天执行测试。这个测试不是把机器人直接放到酒店中心,随机服务客户,而是提前选择用户,并征得用户同意,与客户沟通好后,再由机器人执行给客户送牙刷的工作。机器人到门口后会先敲门,客户打开门后看到一个很可爱的闪光的圆柱体(机器人)。

640?wx_fmt=jpeg上述就是Savioke五天设计冲刺的全过程,有几点值得注意:

  • 我认为它是一个比较典型的业务驱动的过程,需要在短时间内交付产品,并且强调花一天的时间去验证。 

  • 强调前面的设计过程,技术实现只用了一天时间,当然这取决于团队的技术基础,这也是后文将重点介绍的Google文化,业务敏捷和技术敏捷整合在一起,实现了Google敏捷化。

设计冲刺-实施准备

接下来我们通过几张幻灯片来看这五天设计冲刺的细节

640?wx_fmt=jpeg

640?wx_fmt=jpeg

640?wx_fmt=jpeg

640?wx_fmt=jpeg

1.3 Google最佳实践总结-设计冲刺

这是一种用一周时间,把领导、开发者、相关专业专家聚集起来,从找问题到做出方案、制作原型,并通过用户测试的快速验证想法和试错的方式,设计冲刺非常适合用于业务初期,利用很短时间快速试错,验证方案的商业可行性。

适合的项目和成功案例如图所示。

640?wx_fmt=jpeg

1.4 设计冲刺带来的启示

对于我们这些并非创业公司的SM或者PM们,从上述案例中能学到什么呢? 

640?wx_fmt=jpeg

实际上我们现在实行的CI/CD只是一个技术上的交付,并没有直接触达用户,敏捷的开发方式帮助我们快速实现价值交付的内环道,demo发布上线,还需要引入用户进行线上的灰度和体验。

640?wx_fmt=jpeg

用足以以假乱真的原型去替代我们以前做的内容,它会带来意想不到的效果。如果能够尽早做到真实性,且发起测试是在一个可控范围,得到的反馈效果会变得及时且有效。

640?wx_fmt=jpeg

在实施过程中,如果不能有效模拟出最终想要的效果,可以通过技术手段去规避和调整。

640?wx_fmt=jpeg

640?wx_fmt=jpeg

1.5 构成敏捷核心基础

640?wx_fmt=jpeg

Google具备两个特点:

  • 业务敏捷性,强调在初期使用五天设计冲刺的方法快速完成原型制作和与用户的沟通。 

  • 技术敏捷性,能够支撑一天制作出原型、两周把所有事情落地。

二、Google的核心文化

640?wx_fmt=png

技术和业务是不可分离的,技术敏捷和业务敏捷共同构成了整个敏捷的核心。那么支撑整个敏捷核心的关键是什么?答案是文化

640?wx_fmt=jpeg

640?wx_fmt=jpeg

2.1 选拔

在Google只招聘最优秀的人才。当然我们都知道要招优秀的人加入,但什么是最优秀的人才?Google如何招聘最优秀的人才?

640?wx_fmt=jpeg

640?wx_fmt=jpeg

2.2 使命

优秀的人才有了,如何让他们发挥最大的潜力呢?为工作赋予使命。

“地球上最有才华的人才需要能够激励人心的抱负。”通过赋予工作意义,更能激发和调动员工的潜力。

640?wx_fmt=jpeg

2.3 授权

人人平等和足够的授权,才能让员工有足够的发挥空间。只有公司基于员工充分的授权和信任,才能取得业绩提升。问题是如何让授权不仅仅是一个口号?

640?wx_fmt=jpeg

640?wx_fmt=jpeg

当管理者被限制起来以后,员工才能真正的被授权,做到员工自治。

2.4 培训

如何有效提升员工能力?

640?wx_fmt=jpeg

看数字很乐观,实际上,结果却是大部分的培训没有达到一个良好的预期,员工的行为并没有改变。为什么大部分企业做培训投入大回报少?

Google是怎么做培训的呢?在Google,培训是一种强目的性的活动。

640?wx_fmt=jpeg

2.5 激励

Google是如何激励员工的呢?在Google薪酬是不公平的,两个相同岗位的人员奖励却又百倍之差的情况。

640?wx_fmt=jpeg

2.6 绩效

Google如何评价员工?

640?wx_fmt=jpeg

评价员工最直接的方法就是通过绩效,当一个员工绩效不好的时候,如何对待他?传统公司的做法是:绩效糟糕要么走人要么好好干。Google是怎么做的呢?

640?wx_fmt=jpeg2.7 Google的敏捷文化

640?wx_fmt=jpeg

Google的敏捷文化可以用16个字总结:以人为本、开放透明、互帮互助、有效激励。

三、Google如何构建团队

640?wx_fmt=png

介绍了设计冲刺的实例和Google的敏捷文化,接下来简单介绍Google的团队结构。

3.1Google的 团队角色

我们较熟悉的Google三类角色:

640?wx_fmt=jpeg

值得注意的是:中间SET(也就是大家所说的测开)的角色已经不存在,这部分的工作主要是提供给软件开发工程师相关的自动化脚本测试支持等,现在大公司的一般做法是把测开重新调到工程效能团队,逐渐降低测开人员比重,提供平台承担相应工作。

3.2 Google的软件版本及发布规则

640?wx_fmt=jpeg

640?wx_fmt=jpeg

640?wx_fmt=jpeg

640?wx_fmt=jpeg

640?wx_fmt=jpeg

案例研究者介绍:

640?wx_fmt=jpeg

640?wx_fmt=jpeg


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

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

相关文章

Educational Codeforces Round 111 (Rated for Div. 2) E. Stringforces 二分 + 状压dp

传送门 文章目录题意:思路:题意: 给你一个串,只包含前kkk个字母和???,定义fif_ifi​表示第iii个字母在串中出现的最长连续长度,你现在需要将???替换为前kkk个字母&am…

MTT 学习笔记

很久以前就听说了这东西,一直没空学。最近重学多项式,就重新搞了一下。 MTT 主要解决的是任意模数(或者说是没有模数)的多项式乘法,可以用于应对专门恶心人的毒瘤题。 首先,假设多项式次数 10510^5105,值…

在 VS Code 中轻松 review GitHub Pull Requests

相信大家在平时工作或者自己的项目中,一定都有在 GitHub 上进行 Code Review 的经历。对于韩老师来说,不论是平时工作的项目,还是自己的业余项目,代码基本都是在 GitHub 上。所以,在 GitHub 上进行 Pull Requests 的 C…

Codeforces Round #732 (Div. 2) C. AquaMoon and Strange Sort 思维

传送门 文章目录题意:思路:题意: 给你nnn个数,每个数初始方向是向右,每次可以交换相邻两个位置并且将这两个位置的方向调换,问这个序列的最终状态能否是非递减且方向都向右。 n≤1e5,ai≤1e5n\le1e5,a_i\l…

【CC November Challenge 2012】Arithmetic Progressions【分块】【FFT】

题意&#xff1a;给定长度为 nnn 的正整数序列 AAA,求满足 i<j<k,Aj−AiAk−Aji<j<k,A_j-A_iA_k-A_ji<j<k,Aj​−Ai​Ak​−Aj​ 的三元组个数。 n≤105,Ai≤3104n\leq 10^5,A_i\leq 3\times 10^4n≤105,Ai​≤3104 三个位置只有 jjj 限制比较紧&#xff0c…

火热的云原生到底是什么?一文了解云原生四要素!

所谓云原生&#xff0c;它不是一个产品&#xff0c;而是一套技术体系和一套方法论&#xff0c;而数字化转型是思想先行&#xff0c;从内到外的整体变革。更确切地说&#xff0c;它是一种文化&#xff0c;更是一种潮流&#xff0c;是云计算的一个必然导向。随着虚拟化技术的成熟…

Codeforces Round #732 (Div. 2) D. AquaMoon and Chess 组合数学 + 找规律

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 给你一个010101串&#xff0c;当且仅当某个111的某一边i1,i−1i1,i-1i1,i−1有111&#xff0c;这个111可以跟i2,i−2i2,i-2i2,i−2交换位置&#xff0c;问最终能产生多少状态。 n≤1e5n\le1e5n≤1e5 思路&a…

为什么说拥抱.NET CORE的时候到了

微软和社区已经做了大量艰苦的工作&#xff0c;使.Net Core成为市场上具有竞争力的框架&#xff0c;帮助开发人员快速开发具有最佳性能和可扩展性的强大应用程序。做的最棒的事情是.Net Framework开发人员不需要任何新知识来处理.Net Core。这也是开发人员在很短的时间内采用.N…

【HNOI2016】序列【莫队】【单调栈】【ST表】

题意&#xff1a;给定序列 aia_iai​&#xff0c;qqq 次询问 [l,r][l,r][l,r] 所有子区间最小值之和。 n,q≤105n,q\leq 10^5n,q≤105 这种题一眼看上去是离线线段树&#xff0c;但这题每移动一位要维护区间取 min⁡\minmin&#xff0c;历史值之和&#xff0c;非常不可做。 所…

湖南大学第十六届程序设计竞赛 B Yuki with emofunc and playf 同余最短路

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 初始有一个数111&#xff0c;你每次可以将其∗10*10∗10或者(x−1)(x-1)(x−1)&#xff0c;现在给你xxx&#xff0c;问最少经过多少步能到达nnn。 1≤n≤1e6,1≤m≤1e91\le n\le1e6,1\le m\le1e91≤n≤1e6,1…

【HNOI2019】白兔之舞【组合数学】【矩阵快速幂】【单位根反演】【Chirp Z-Transform】【原根】【MTT】

题意&#xff1a;有一张 (L1)n(L1)\times n(L1)n 个点的有向图&#xff0c;每个结点有二元组 (x,y)(0≤x≤L,1≤y≤n)(x,y)~(0\leq x\leq L,1\leq y\leq n)(x,y) (0≤x≤L,1≤y≤n) 表示。对于所有 (u1,v1),(u2,v2)(u_1,v_1),(u_2,v_2)(u1​,v1​),(u2​,v2​)&#xff0c;若 u…

程序员如何学习英语

首先&#xff0c;这不是一篇广告&#xff0c;虽然这个标题很像。其次&#xff0c;我的英语水平也很一般&#xff0c;所以更多的是谈谈一些失败的经历和思考&#xff0c;俗话说&#xff0c;成功的经验不可复制&#xff0c;失败的经验倒可以让我们少走弯路。英语的重要性毋庸置疑…

Educational Codeforces Round 111 (Rated for Div. 2) D. Excellent Arrays 组合数学

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 给你一个数组aia_iai​&#xff0c;定义一个数组是好的当且仅当对于所有iii都有ai!ia_i!iai​!i。定义f(a)f(a)f(a)表示数组aaa中i<j,aiajiji<j,a_ia_jiji<j,ai​aj​ij的(i,j)(i,j)(i,j)对数。定义…

使用Azure云原生构建博客是怎样一种体验?(上篇)

点击上方蓝字关注“汪宇杰博客”导语https://edi.wang我的网站是在.NET Core 平台上使用 C#语言编写的开源博客系统&#xff0c;运行于微软智慧云 Azure 国际版上。本文将重点介绍 Azure 的各项服务如何为博客带来丝滑体验与保驾护航。历史回顾我博客的历史可以追溯到2003年&am…

AtCoder Regular Contest 100 D - Equal Cut 思维 + 前缀和

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 给你一个数组aaa&#xff0c;你要将其分成四份&#xff0c;让这四份中和的最大值−-−最小值最小&#xff0c;输出这个最小值。 n≤2e5,ai≤1e9n\le2e5,a_i\le1e9n≤2e5,ai​≤1e9 思路&#xff1a; 直接枚…

【UOJ574】多线程计算【二元二项式反演】【定积分】【矩阵】【NTT 卷积】

题意&#xff1a;有 nmn\times mnm 的网格&#xff0c;每个结点在 [0,1)[0,1)[0,1) 内的一个随机时刻被点亮。有 hhh 个数对 xi,yix_i,y_ixi​,yi​&#xff0c;对于一个瞬间状态&#xff0c;如果存在一个 xi,yix_i,y_ixi​,yi​ 使得恰好有 xix_ixi​ 行 yiy_iyi​ 列被点亮&a…

Orleans 知多少 | 2. 核心概念一览

Orleans 术语解读上面这张图中包含了Orleans中的几个核心概念&#xff1a;GrainSiloOrleans ClusterOrleans Client从这张图&#xff0c;我们应该能理清他们之间的关系。Grain作为最小的执行单元Silo 是 Grain 的宿主运行环境&#xff0c;用来暴露具体的服务Orleans Server 提供…

Codeforces Round #587 (Div. 3) C. White Sheet 思维

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 给你一个白色的矩形和俩个黑色的矩形&#xff0c;问白色被黑色覆盖后还能不能看到。 思路&#xff1a; 经典被简单题卡。 一开始写了个自我感觉很对的做法&#xff0c;结果wa41wa41wa41&#xff0c;检查不…

【UOJ575】光伏元件【网络流建图】【上下界网络流】【费用流】

题意&#xff1a; nnn\times nnn 的 01 矩阵&#xff0c;对于 i∈[1,n]i \in [1,n]i∈[1,n] 有三个参数 li,li,kil_i,l_i,k_ili​,li​,ki​&#xff0c;表示第 iii 行&#xff0c;第 iii 列的 111 的个数分别在 [li,ri][l_i,r_i][li​,ri​] 中&#xff0c;且差的绝对值不超过…

动手造轮子:实现一个简单的 EventBus

动手造轮子&#xff1a;实现一个简单的 EventBusIntroEventBus 是一种事件发布订阅模式&#xff0c;通过 EventBus 我们可以很方便的实现解耦&#xff0c;将事件的发起和事件的处理的很好的分隔开来&#xff0c;很好的实现解耦。微软官方的示例项目 EShopOnContainers 也有在使…