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,一经查实,立即删除!

相关文章

在 VS Code 中轻松 review GitHub Pull Requests

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

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

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

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

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

程序员如何学习英语

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

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

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

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

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

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

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

通过 nginx-proxy 实现自动反向代理和 HTTPS

本章节代码已经上传至 https://github.com/siegrainwong/.NET-Core-with-Docker/tree/master/Part3系列大纲这次我们讲第三篇:用 docker-compose 启动 WebApi 和 SQL Server在容器中集成 Skywalking APM通过 nginx-proxy 对 Portainer、Skywalking、WebApi 实现自动…

P4781 【模板】拉格朗日插值

传送门 把公式实现一下即可: 当xxx连续的时候可以优化为O(N)O(N)O(N)。 // Problem: P4781 【模板】拉格朗日插值 // Contest: Luogu // URL: https://www.luogu.com.cn/problem/P4781 // Memory Limit: 125 MB // Time Limit: 1000 ms // // Powered by CP Edi…

MediatR-进程内的消息通信框架

MediatR是一款进程内的消息订阅、发布框架,提供了Send方法用于发布到单个处理程序、Publish方法发布到多个处理程序,使用起来非常方便。目前支持 .NET Framework4.5、.NET Stardand1.3、.NET Stardand2.0等版本,可跨平台使用。要在项目中使用…

不好意思,这么久没有更新《从零开始掌握ASP.NET Core 》

点击上方蓝字,关注「我们」等了快个月了,终于开始更新了。因为感冒,弄的嗓子有点沙哑。所以停了半个月才是更新,目前一口气更新了12个章节,大家可以耐心观看内容了。《从零开始学ASP.NET Core 》-- 更新通知视频课程更…

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

点击上方蓝字关注“汪宇杰博客”接上篇《使用Azure云原生构建博客是怎样一种体验?(上篇)》DNSAzure DNS 是一套分布全球的域名解析服务。具有超高可用性和接近实时的记录更新及生效速度。我的博客也使用了这项服务。Azure 现在可以提供域名注…

2021牛客暑期多校训练营1 G Game of Swapping Numbers 思维 + 巧妙的转换

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 给你两个数组A,BA,BA,B&#xff0c;你可以选择AAA的两个位置i,j,i<ji,j,i<ji,j,i<j交换Ai,AjA_i,A_jAi​,Aj​&#xff0c;需要交换正好kkk次&#xff0c;问你最大的∑i1n∣Ai−Bi∣\sum_{i1}^n|A_…

.NET Core 3.0之深入源码理解HttpClientFactory(一)

写在前面创建HttpClient实例的时候&#xff0c;在内部会创建HttpMessageHandler链&#xff0c;我们知道HttpMessageHandler是负责建立连接的抽象处理程序&#xff0c;所以HttpClient的维护实际上就是维护HttpMessageHandler的使用&#xff0c;释放HttpClient并不会及时释放连接…

WTM 构建DotNetCore开源生态,坐而论道不如起而行之

作为一个8岁开始学习编程&#xff0c;至今40岁的老程序员&#xff0c;这辈子使用过无数种语言&#xff0c;从basic开始&#xff0c;到pascal, C, C&#xff0c;到后来的 java, c#,perl,php,再到现在流行的python。小时候的我总觉得多掌握一门语言&#xff0c;我的技术能力就又前…

架构杂谈《六》

超时处理模式在服务化或者微服务架构里&#xff0c;传统的整体应用拆分成多个职责单一的微服务&#xff0c;微服务之间通过某种网络通信协议互相通信和交互&#xff0c;完成特定的功能&#xff0c;然而由于网络通信的不稳定&#xff0c;在设计系统时必须考虑到对网络通信的容错…

【BZOJ4543】Hotel加强版【神仙树形dp】【长链剖分】

题意&#xff1a;给一棵 nnn 个点的树&#xff0c;求两两距离相等的三元组个数。 n≤105n\leq 10^5n≤105 显然相当于是找一个点到这三个点距离相等。子树内和子树外到当前点的距离为某个值的点的个数可以长链剖分快速得到&#xff0c;但统计答案非常棘手。 接下来是个鬼才想…

基于surging 的stage组件设计,谈谈我眼中的微服务

一、前言surging 开源地址&#xff1a;https://github.com/dotnetcore/surging随着业务的发展&#xff0c;并发量的增多&#xff0c;业务的复杂度越来越大&#xff0c;对于系统架构能力要求越来越高&#xff0c;这时候微服务的设计思想应运而生&#xff0c;但是对于微服务需要引…

HDU - 6971 K - I love max and multiply sosdp

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 思路&#xff1a; 直接求i&j>ki\And j>ki&j>k不是很好求&#xff0c;所以转换成i&jki\And jki&jk的情况。 考虑对a,ba,ba,b求一遍超集&#xff0c;让后从[0,n−1][0,n-1][0,n−1]扫…

推荐10个技术圈优质的公众号大号

公众号有很多但需要什么只有自己知道本次筛选了一批技术圈优质的公众号&#xff0c;主要与python、人工智能、机器学习、技术人生相关希望对你有所帮助!▼★长按二维码&#xff0c;选择“识别二维码”进行关注。▲长按二维码&#xff0c;识别关注简介&#xff1a;Python爱好者社…