写点什么

改变从内部开始:开发者与管理者的协作

  • 2016-06-12
  • 本文字数:3829 字

    阅读完需:约 13 分钟

GOTO 柏林 2015 大会上,Skyscanner 工程部高级副总裁 Bryan Dove 谈了如何从组织内部开始改变,开发者和管理者如何协作来了解和采用现代软件工程实践。

InfoQ 就过去 10 年中主要技术的发展以及它们对我们创建软件产品的方式的影响采访了他。InfoQ 还问了这样的问题,就是管理者和开发者可以做些什么来探索和发现更好的协作方式,他们如何互相支持,让自己和企业取得更大的成功。

InfoQ:在过去的 10 里,我们看到的新技术发展主要有哪些?

Dove:过去的 10 年见证了技术商品化的巨大进步,以前,只有世界上最大的软件公司才拥有这样的技术。这种商品化让新公司更容易快速交付价值,以及拥有可以轻松扩展到消费互联网需求规模的技术,而且成本更低。今天,一家全新创业公司所依赖的软件栈,其中的几乎每个组件在过去的 10 年中都已经创建了出来,而且是作为开源项目。Hadoop/MapReduce 是受 Google 的 Map-Reduce 论文所启发,然后是 Yahoo 的实现及后续的开源。NoSQL 引擎是受 Amazon 的 Dynamo 论文所启发,例如,由 Facebook 构建和开源的 Cassandra。还有其他常见的构建块,如 Docker、Mesos、MongoDB 等等。所有这些都是在过去 10 年中创建和发布的,已经将创建和扩展技术平台的工作量降低了一个数量级,甚至更多。

除了软件外,我们还见证了公有云的出现,这始于 2006 年推出的 AWS。这种巨大的变化已经将规模经济带给了大众,随着向公有云硬件经济的转型,资本部署已经从昂贵的数据中心和硬件转移,几乎全部集中到了员工身上,用以资助 IP 创建和支付。

InfoQ:这些发展对我们创建软件产品的方式有什么影响?

Dove:类似于我上面提到的,基本的影响是创建为客户提供价值的产品比以往任何时候都更简单更快捷。以前,公司需要从头开始构建所有技术,而从头开始针对互联网规模进行构建真得很困难。今天,任何公司都可以选取一整套开源技术,以最小的努力实现庞大的规模。在 Skyscanner,我是工程部的高级副总裁,我们为创业公司提供了 API 的免费入门版本,在 github.com/skyscanner 上开源了多个内部项目,我们内部也使用了多项开源技术。

InfoQ:您在演讲中举了一个例子,您做了一些很棒的工作,但没有告诉管理者。您能详细描述下发生了什么吗?您学到了什么?

Dove:我提到的场景是这样的,我正在做一些我认为对公司最有利的工作。在微软工作的时候,我同 SQL Server 领导团队建立了内部合作关系,共同构建一些新的分析软件,用于消费互联网规模的大数据系统。我觉得自己正在做的工作,对于团队、我的业务和公司而言都是正确的。

我犯的错误是,我没有考虑我将管理者置于了怎样的位置。他们不知道有关进展或同 SQL 领导团队的合作关系的细节,因为这是由我直接管理的。这让他们面临着一个风险,就是有人可能会问他们,我们的业务如何协同,而他们并不了解细节。

关于经验教训,我得出了两个重要的结论,它们影响了我此后的思维。一是选择了过度沟通和彻底透明。以前,我在我的团队里这样做了,但现在,我在组织里所有的方向(例如,管理者、同事、团队)上都以这种方式操作。二是我现在在简化同同事和管理者的沟通上投入了更多的精力。由于我的同事和管理者每天都会从许多数据源收到大量的信息,我设法为他们提供关键事项的小标题,然后期待他们问更多信息,如果他们想的话。如果他们询问所有细节,我当然会分享,但我会等着他们问,而不是预先就同他们分享,以此帮助他们首先专注于关键事项。如果你为人们提供了标题、结论和建议,那么他们总会询问更多的细节,如果他们需要的话。在 Skyscanner,我们使用“消息片段(snippet)”机制来分享信息,以防止信息过量。

InfoQ:您展示了开发者如何创建一个管理者待办事项列表,他们可以将希望管理者帮忙的事项列在上面。您能举几个在您待办事项列表上的事项作为例子吗?您的管理者是如何帮助您的?

Dove:这里有一个很好的例子,就是当我领导 Skype 数据方面的工作时,我们需要构建一个现代化的试验系统。虽然同那些过去从事过现代试验系统研发的人交流很简单,但我需要在组织内获得更广泛的支持,以便让这项工作能得到资助,继续推进,这让我陷入了挣扎。我的管理者和我都认为这样做是正确的,因此,我请求我的管理者承担起争取恰当支持、让新的团队和服务获得批准的任务。例如,我的管理者花时间同微软其他地方的独立组织取得了联系,使用那些团队的经验作为一种外部验证。外部验证在证实新工作的合理性方面总是非常有用,因为那个团体没有以任何方式成为你的团队成果的既得利益者。时至今日,我们设想的系统已经构建出来,并成为企业内大量团队的主要试验引擎。

InfoQ:管理者如何帮助开发者更好地工作?

Dove:我认为,作为一名管理者,你对工程团队的职责是围绕少数几个原则展开的。首先,我发现 Daniel Pink 的著作《驱动力》中的三个原则非常适合工程师——自主、专精、目的。我几乎每天都会考虑这三个原则,挑战自我,向团队授予更多的权限,让他们有更大的自主权,而不是最初那种可能让我感觉舒适的程度。在我看来,分布式自主是扩展大型团队最重要的因素,这也是 Skyscanner 所重视的东西。

下一个原则是彻底透明。关于分布式自主,其中一个常见的、让人纠结的逻辑是,担心个体无法作出正确的决定。开始的时候要相信,我团队中的每个人都是聪明、能干、理智的,然后我的工作就是为他们提供他们需要的所有信息,让他们能够作出对企业而言最好的决定。任何担心某个人不能作出正确决定的迹象都应该立即引发这样一种想法,就是我没有向他们提供足够的信息,让他们能够作出最好的决定。我个人倾向于彻底透明(比如,分享一切,只要它不是违法的,而且是我分享的信息),因为这样,我就可以少做一些用于筛选同团队分享的信息的决定。现在,我的团队拥有了同我一样的情境,处于一种更有利的位置,不需要请求批准就可以作出对企业而言最好的决定。

再下一个原则是了解细节及复杂性。工程师需要相信,他们的管理者了解他们正在做什么,并且了解那有多难。花费时间和精力获取这种知识让管理者能更好地掌握团队中正在发生的事情,同他们的工程师建立信任关系,让他们相信管理者完全能够恰当地评价他们的贡献。

最后一个我认为对管理着至关重要的原则是公开错误。我们从失败中学到的东西远比从成功中学到的多,这已被人们反复引用重申。不过,作为一名领导者,你需要创造一个环境,人们欢迎错误,将其视为学习机会,而不是应该谴责的东西。关于这件事,我发现了一项特别有用的技术,就是把一个我在领导者岗位上所犯的错误,尽最大可能公开地向我的团队描述。然后每次我犯了错误都会重复这样做。作为一名领导者,暴露那种程度的弱点需要很大的勇气,但是如果你不愿意这样做,你怎么能期望你的团队那样做?通常,我要么会通过邮件更新、博客来做,要么会在职工会议上讨论它,分享我犯的错误,为什么那是一个错误,我学到了什么,以及我会做什么来避免再次犯同样的错误。通过这样一次又一次的反复做,强化了这样一个概念,错误正是学习的机会,有弱点,犯错误,并从中学习,不用为此不安。

在 Skyscanner,我们有辨别失败并在整个企业内分享经验教训的程序。这帮助我们创建了一种公司文化,对于什么有效、什么无效、如何从错误中学习并进一步推进,我们持开放和诚实的态度。我们将这称为“反败为胜”,这个概念基于这样一种理念,就是没有错误就无法学习,因此就无法进步。这种失败理念可能会让一些人不舒服——更不用说在真正遭遇失败时分享经验。不过,在 Skyscanner,我们相信,我们需要接受失败,如果我们想继续取得成功。这样的失败案例为我们提供了重要的经验教训,让我们距离成功更近了一步;它们是影响重大决策的风险、测试和试验的结果,进一步推动我们走向成功。

InfoQ:开发者能做些什么帮助他们的老板取得成功?那如何帮到他们自己?

Dove:为了帮助他们的老板取得成功,工程师有几件可以做的事。首先,了解老板的目标很重要。就像你作为工程师有目标一样,你的老板有一系列衡量其工作的目标。其次,愿意分享荣誉。Harry Truman 说过,“如果你不在乎谁获得荣誉,那么你获得的成就会让你吃惊”,当你是团队的一部分时,尤其如此。如果你关注你已经交付了什么以及为用户带去的价值,那么谁获得荣誉就不重要了。一个将这些内容记在心里的工程师可以通过这样的方式帮助他的老板,比如将工程师新构建的东西的细节给老板讲解,让他们的老板在公开场合做简报,或者发送他们的邮件。他们的管理者因为向企业交付了同他们的目标一致的价值而获得认可,而团队作为一个整体就可以庆祝成功了。

在 Skyscanner,我们使用“目标和主要成果(Objectives and Key Results,缩写为 OKR)”流程来确保我们的目标在整个公司内都是一致的,并以公司内任何人都容易发现的方式发布出来。这很重要,可以确保整个公司内正在开展的工作保持完全透明。

关于受访者

Bryan Dove是 Skyscanner 的高级副总裁。他的职责是在全球十个规模正在加速增长的办事处中领导并推动 Skyscanner 工程团队的发展。Bryan 为 Skyscanner 带去了超过 15 年的工程领导经验。在加入 Skyscanner 之前,Bryan 是 Amazon Web Service S3 的工程部总监,他在那里领导团队推出了多个面向客户的新特性,包括 S3 事件通知和 S3 跨区域复制。再之前,Bryan 在微软担任多个角色,作为 Skype 数据工程的负责人,他建立并领导了一个全球分布式团队,构建 Skype 的实时大数据架构。

查看英文原文: Change from Within: Developers and Managers Working Together

2016-06-12 19:162926
用户头像

发布了 1008 篇内容, 共 387.9 次阅读, 收获喜欢 344 次。

关注

评论

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

7k字,12张图,从零到一带你详解Redis

Java永远的神

数据库 nosql redis 程序员 面试

前端 30 问:愿你能三十而立

GFE

面试 前端

Go语言躲坑经验总结

百度Geek说

Go 企业号十月 PK 榜

云转售是什么意思?哪家好?理由是什么?

行云管家

云计算 企业上云 云资源 云转售

网络爬虫技术及应用

郑州埃文科技

网络安全 IP地址资源 爬虫技术

图数据 3D 可视化在 Explorer 中的应用

NebulaGraph

可视化 图数据库 3D

WEB项目如何通知用户在线更新?

GFE

前端 版本管理

Discount-industrial mini pcie card/Dual Band 2.4GHz 5GHz 2x2 MIMO 802.11ac Mini PCIE WiFi Module//QCA9880 3x3 FCC/CE/IC

Cindy-wallys

QCA9880 802.11ac 3*3 2*2 2.4G&5G

堡垒机按什么收费?大概多少钱?有一个标准吗?

行云管家

网络安全 堡垒机 IT安全

【愚公系列】2022年11月 Go教学课程 040-字符串处理

愚公搬代码

11月月更

NFTScan 与 Bitizen 钱包达成战略合作,双方将在 NFT 数据层面进行深度合作

NFT Research

NFT 数据基础设施

python小知识-classmethod类方法

AIWeker

Python 人工智能 python小知识 11月月更

【重磅】Serverless Devs 进入 CNCF 沙箱,成首个入选的 Serverless 工具项目!

阿里巴巴云原生

阿里云 Serverless 云原生

「文本检测与识别白皮书-3.2」第三节:常用的文本识别模型

合合技术团队

人工智能 机器学习 深度学习 模型 文字识别

NGINX Sprint 年度线上会议:报名通道已开启,立即预定您的 NGINX 深潜之旅

NGINX开源社区

nginx

三位技术大咖的「研发效能」实践干货

万事ONES

研发效能 课程笔记

Spring Boot「22」使用 Hibernate & JPA 持久化 Java 对象

Samson

Java hibernate Spring Boot 学习笔记 11月月更

扒官方文档学Ts类型编程(二)

GFE

typescript 前端

详解 Serverless 架构的 6 大应用场景

阿里巴巴云原生

阿里云 Serverless 云原生

拥抱“大信创”浪潮,优博讯开启成长新曲线

Geek_2d6073

IM消息ID技术专题(七):网易严选分布式ID的技术选型、优化、落地实践

JackJiang

网络编程 即时通讯 IM 开源im

扒官方文档学Ts类型编程

GFE

typescript 前端

EMQ《物联网平台大规模数据接入和处理性能评测方法》成功入选“可信边缘计算推进计划”

EMQ映云科技

物联网 IoT 边缘计算 边云协同 11月月更

字节跳动开源数据集成引擎BitSail的演进历程与能力解析

字节跳动数据平台

数据库 开源 数据开发 数据集成 企业号十月 PK 榜

分布式锁实战:基于Zookeeper的实现

小小怪下士

Java zookeeper 分布式

量化合约对冲挖矿app软件开发案例(支持测试)

开发微hkkf5566

图解vue3.0编译器核心原理

GFE

前端 Vue3

Go语言入门12—异常

良猿

Go golang 后端 11月月更

详解AQS中的condition源码原理

华为云开发者联盟

开发 华为云 企业号十月 PK 榜

软件测试面试真题 | 说一下常用的控件定位方法

测试人

软件测试 面试题 web测试 元素定位

平均110万个漏洞被积压,企业漏洞管理状况堪忧

SEAL安全

DevSecOps 漏洞修复 软件供应链安全 漏洞管理 漏洞优先级匹配

改变从内部开始:开发者与管理者的协作_研发效能_Ben Linders_InfoQ精选文章