文中有数据派THU福利哦
[ 编者注 ]数字化革命浪潮正在重塑企业管理格局,软件开发者成为现代数字经济竞争中急需的人才。然而,大多数企业领导者仅把他们当成数字打工人,却没有真正了解如何充分解放技术人才的潜力。
基于在技术领域多年的深耕,硅谷最受瞩目的云通信独角兽Twilio的创始人杰夫·劳森,将其丰富的开发者管理经验汇入新书《开发者思维》中。这是一本为“程序员”们发声的书,更是一本教导管理者们具备开发者思维,正确激励技术人才的指南。
一、差异化只能构建,无法购买
软件第三个伟大纪元带来了许多益处,但也带来一系列新的问题需要我们来回答。开发人员和公司领导层不断需要做出决定,到底哪些微服务应该从第三方云供应商那里购买,哪些微服务又应该自己构建。今天,新的微服务供应商正以寒武纪生命大爆发式的速度涌入市场,决策者们必须学会应对这种情况。每一项微服务都在不断快速地变化和改进。
正像阿什顿·库彻所说,“科技公司一直在争论”应该构建哪些微服务,以及购买哪些微服务。阿什顿已经投资了几十家初创公司,并取得了一些重大成功,其中最著名的例子包括爱彼迎、声田和优步。他表示:“我认为,你选择不自己构建的东西和你所构建的东西一样重要。公司唯一应该自行构建的,是其业务的核心。很多时候,人们最终选择构建的系统在市场上已经有现成产品,并可以用相对较低的成本购买或获得许可。你是否应该构建自己的福利和工资系统?反正我绝不会试图重建Twillio、Slacka 或 Gustob。”
我的经验法则是,如果任何东西能让你在面对客户时实现差异化,那么你就应该自己构建。直接面向客户的软件也应该自己构建。如果在任何情况下,客户问你,它为什么不能实现某功能?而你的回答是,呃,我们买的系统不提供某功能。那么这就是一个问题。对于客户在意的东西,你也需要自己构建。在某些情况下,自己编写后端软件也是有意义的。例如,在你所在的行业里,你可以通过更好的库存管理来获得竞争优势。在这种情况下,你当然应该去构建自己的供应链软件。
但是,对于大多数后端操作,以及那些不能让你在客户面前有任何差异化的东西,你就应该购买。你不需要构建自己的电子邮件系统,或是自己的数据库软件、人力资源软件、企业资源计划程序,因为在这些领域,你可能无法通过自己编写代码来获得任何竞争优势,因此你可以从 SaaS 提供商那里购买应用程序。但是请让我重申一下我的经验法则:任何面向客户的东西你都应该构建。这是因为:
差异化是无法通过购买获得的,你只能构建它。
二、构建差异化的优势
不过好消息是:构建正变得越来越容易。回到过去,在软件供应链成熟之前,你面临的答案通常是购买解决方案,因为构建需要花太大的精力。你必须像微软或甲骨文一样精通软件,才能自行构建软件。但现在,得益于我们进入了软件的第三纪元,数字供应链使企业能够以前所未有的轻松和速度构建软件,因此企业不仅可以,而且必须构建自己的软件。激烈的竞争形势决定了这一点。
你将这些构建块整合到端到端体验中,在这个过程中你想象、构建并最终拥有这些体验,因为这就是你的竞争优势。不过,组成这一体验的构建块则是购买的现成产品,它们被迅速地整合在一起。你当然需要在其中加入许多自己的微服务,但是在构建自己的服务时,你不需要再发明一遍车轮子,而只是将精力投入那些可以代表你的竞争优势的“点睛”之作。也许它们是一个专有的定价算法,或者是一个物流算法,是你的分销系统所独有的。在尽可能借助现成构建块的前提下,你可以把全部精力投入你独特的差异化领域。
好消息是,越来越多现成的构建块正在日益成熟。云平台正在取代几乎所有类别的传统基础设施。这些商业微服务几乎是你使用的每一个应用程序的原料。在一个用户界面的背后的应用程序实际上是一个由数百乃至数千个微服务组成的集合体, 它们有些由公司内部的开发人员所构建,有些是由商业供应商所提供。
今天,仍然有许多领域的开发人员别无选择,只能从头开始构建微服务,因为现成的替代品还不存在。但微服务模式的优点在于,你可以在不干扰应用程序中其余代码的情况下更换某个微服务。随着时间的推移,一旦新的商业微服务出现,移除自己构建的产品,并用商业替代品取代它们并不少见。这是因为,供应商正在大举投资这些商业微服务,因此其日臻完善,而自制版本往往随着时间的推移停滞不前。以特维利奥为例,我们的研发团队(截至本书撰写之时)已经超过 1000 人,他们每天都在改进着我们的通信平台。随着我们的应用程序日臻完善,我们的客户将从这项投资中获益。
三、硅谷“构建”辐射全行业
理论上讲,软件公司有一天可能不用编写任何自己的代码就可以生产出一个应用程序,换言之,他们只需组装一堆由其他公司创建的微服务。事实上,人们已经提出了所谓“单人独角兽” 理论,它是指一家价值 10 亿美元或以上的公司仅由一个人运营, 这个人是一个开发人员,其应用程序则是在众多商业微服务之上开发出来的。这种情况目前尚未出现,但其实际发生可能只是时间问题。
我们所认为的“编写软件”过程在很大程度上可能已经变成了一个组合代码块的过程,就像戴尔组装现成的商业化组件来生产一台电脑,或者厨师从货架上取下现成的原料,并做出拿手好菜。实际上,编写软件可能将变得如此简单,以至于任何人都可以做到,无须再经过计算机科学方面的专门培训。
目前我们还在采用混合模式。也就是说,你购买那些可以买到的通用构建块,然后自己编写其余部分。你公司的“附加值”可能会取决于你整合这些构建块的方式,以及你基于微服务所开发的面向客户的软件。苹果公司的 iPhone 系统中包含一些任何公司都可以购买的商业化构建块,比如内存芯片和闪存驱动器。苹果不针对这些部件设计或制造自己的版本,因为这不会使其产品与众不同。不过,苹果确实为 iPhone 设计了自己独特的微处理器,因为这种芯片使苹果能够比其他手机更好地运作。苹果还编写了所有安装在 iPhone 上的软件。
苹果成功的秘诀在于知道它需要购买什么和构建什么;知道如何以独特的方式整合这些部分;最重要的是,它还雇用了全世界最好的开发人员来编写优秀的软件。他们也一直善于讲述自己的故事,推销自己的品牌——这是另一个他们决心要与众不同的领域,而这样做带来了丰厚的回报。
像苹果一样,软件开发商现在也正在将自己的定制软件与其他人提供的现成微服务整合在一起。优步就是一个很好的例子。你使用的“优步 App”实际上由大约 4000 个微服务组合而成, 其中一些由优步的工程师开发,另外许多则是由外部云平台运营商提供的。当乘客呼叫司机时,他们的命令会从优步的主屏幕传送到特维利奥服务器,然后我们将呼叫通过路由发送给司机。但无论是乘客还是司机都看不到这些;对他们而言,优步只是让他们可以互相沟通。车费的支付由不同的微服务来处理,货币和汇率转换则由优步内部开发的 Tincup 微服务完成。
这就是硅谷所有新公司构建软件的方式,它正迅速成为银行、零售商、航空公司等传统公司的标准。
本文摘自《开发者思维》 中信出版集团2022年4月出版
数据派THU独家福利!
点点为数据派THU的粉丝们争取了3本赠书福利!欢迎小伙伴儿在下方留言区畅谈对“开发者思维”的看法,我们将为点赞数最高(截止到2022年5月31日早8点)的3位读者免费送上此书~小编会联系你们哦!(之前获得过赠书的粉丝不能参与)