开发者技术策略指南
作者注:这是《编程职业手册》策略部分的免费章节。如果您喜欢这一章,欢迎查看其余主题!
这是对技术战略的一个非常高层次的概述;也就是说,技术战略是软件业务,而不是创建软件本身的艺术和科学。
毋庸置疑,你的编码没有独立的价值;它必须有效地应用于某些经济问题才能对现实世界产生可持续的影响。
目录
技术战略与你的职业生涯
也许与您的职业生涯更相关的是:您的编码能力以及某种程度上的财务结果将与您公司的成功相关(我们推断,Uber 早期工程师的编码能力比随机的未知初创公司更好,尽管我们不知道他们的实际贡献)。
即使你不在乎这些,也从未想过成为创始人,你对所从事业务的理解也让你能够提供建议,并根据经济机会安排工作的优先顺序。这听起来可能没什么,但作为最接近代码的人,你对最终交付的体验拥有极大的自主权:
- 您进行交付估算,并提前警告严重的技术障碍
- 你需要在“快速而粗糙”的方法和“正确”的方法之间做出技术权衡
- 选择具有规模和可插拔性的抽象,而不是拒绝过早的抽象
- 您将商业解决方案与定制解决方案的成本进行比较 - 臭名昭著的“构建还是购买”决策
- 你可以针对每个可能发生的系统故障进行防御性编码,或者了解哪些故障比其解决方案更容易被接受
- 您关注 A11y/UI/UX/Uptime/Response time 细节
- 您可以找到数据模型和预先存在的框架(和插件)提供的可实现的“唾手可得的成果”的想法,并可以将它们推荐给您的产品所有者。
随着您自主权的提高,您甚至可以选择自己从事的项目,并提出最终属于自己的新计划(这是一个伟大的职业举措)。
如果您读过谷歌地图的卫星视图几乎被命名为“鸟类模式”的故事,您就会明白您的广泛能力甚至直接影响到产品名称。
一家运营良好的公司不会让你处于这种境地,但当情况危急时,开发人员是设计师和产品经理的最后选择。
随着资历的提升,你的商业判断力也必须不断提升。事实上,只要浏览一下工程职业阶梯,你就会明白你的商业影响力对你的职业发展有多么重要。
最后,你所使用的技术也受到其经济激励的强烈影响。“免费开源”并不意味着“不受任何商业因素影响”,也不意味着“由直接民主决定开放方向”。你所运行的平台(无论是浏览器还是公有云、数据库、支付/履行平台,甚至是语言发行版)都拥有巨额投资(在某些情况下,我指的是千万位数甚至更高的投资)。
软件正在吞噬世界
我把这本书作为必读内容分配给你。 2011年,马克·安德森撰写了《软件为何吞噬世界》,阐述了他风险投资公司的基本论点。这本书预言了此后十年大规模软件业务的崛起,并解释了为什么现在每个行业都在从事软件业务。马克后来又更新了这本书,涵盖了医疗保健、生物技术和加密货币领域。
如今,软件行业已经普遍接受了这一点,即使你不同意,也应该至少意识到这一点。(尽管这确实让软件工程师成为了新世界的中心。)
水平与垂直
您应该了解的技术战略的基本划分是水平业务与垂直业务。
如果你从事基础设施工作,你可能对“水平扩展 vs 垂直扩展”这个词很熟悉。这两者是不同的。这里我们讨论的是你的客户:
- 如果您的企业从一开始就服务于单一行业或客户群体,那么您就是一家垂直企业。垂直企业通常通过提供越来越多的功能来服务现有客户,从而实现增长,即使这些功能在其他平台可能作为独立产品存在。其目标是成为“一站式服务商”。垂直整合的用户体验可能令人惊叹,但一旦出现限制,就会令人沮丧。
- 如果您的企业能够服务于各行各业的客户,那么您就是一家水平型企业。水平型企业通常通过触达更多类型的客户、构建所需的集成或添加功能和配置来发展壮大,以满足客户的使用场景。我们的目标是“做好一件事”,并成为该领域内的佼佼者。
您还会遇到另外两个用来描述这种分歧的典型类比:
- 苹果(垂直) vs 安卓(水平):苹果针对高端智能手机市场进行了全面的垂直整合,从支付、消息、照片、操作系统一直到处理器。安卓是一个免费的开源操作系统,被各种手机制造商使用,并且对启动器和小部件体验进行高度定制是常态。
- 捆绑(垂直)与拆分(水平):引用 Jim Barksdale / Marc Andreesen 的这句名言:
软件赚钱有两种方式——捆绑和拆分。
只有最严谨的企业才会完全采用水平或垂直发展模式。公司内部通常会就发展方向进行良性辩论,因为两者都是有效的增长途径。但同时追求两个方向则表明缺乏远见,无法接受权衡,并会导致资源、产品开发以及销售和市场营销方面的问题。
你还会听到有人将这个想法应用于商业的其他方面——横向整合与纵向整合、横向收购与纵向收购,以及横向战略与纵向战略。它们都是沿着这些思路进行业务扩张的变体。
商业模式
下一个你应该关注的维度是商业模式。简而言之,它回答了“谁来付钱”、“什么直接导致收入增加”、“你必须在什么地方花钱”这些问题。
您应该了解的最常见的是代理、广告、订阅和市场。大多数其他雇用软件工程师的公司都包含其中一些方面。我可能无法在有限的篇幅内详尽介绍它们,但我至少会在这里介绍它们,并尽力为您提供进一步了解所需的信息。
代理机构
代理模式是小型团队最常见的模式。我没有这方面的数据,但我猜大多数技术工作也都采用这种模式。
- 通过代理模式,您可以拥有一个或多个客户,并且可以根据您的时间获得报酬。
- 如果您是一家大型非科技公司内的开发团队,那么您基本上就是一个拥有一个客户的内部代理机构。
- 如果您是顾问或自由职业者,那么您就是一人代理机构。
- 有成千上万种小方法可以调整开发设置和付款条款,但总的来说,随着开发时间的增加,流入该机构的资金也会增加。
理想情况下,你应该努力实现每小时完成最多工作,但讽刺的是,糟糕的激励机制可能只会导致你增加工作时间。其共同点在于,你的收入并非完全取决于客户业务的成功,这有时是委托代理问题的一个特点,通常也是一个缺陷。尽管代理机构存在缺陷,但它仍然如此受欢迎,原因在于需要完成的工作量巨大,而且某些高技能工作需要专业人才。
广告
广告模式是其次常见的。通过增加网站流量或产品使用量,以及向广告商出售广告位来赚钱。
大多数社交网络和新闻/观点网站都采用这种方式运营,尽管市面上有大量的营销技术可以帮助广告买家找到最适合他们的广告资源。由于最终用户无需付费,而广告商则为访问权付费,因此有人嘲讽地认为“用户就是产品”。然而,这并非总是坏事——Wirecutter和Points Guy都是备受好评的高质量内容网站,它们通过联盟营销赚钱,而联盟营销只不过是对基于效果的营销的重新表述。
订阅
下一个最常见的商业模式是订阅:
- 如果您出售软件使用权,这被称为软件即服务 (SaaS),它本身就是一个投资类别。IaaS /PaaS/SaaS模型的共同特点是将固定成本转化为可变成本,从而为客户提供即时价值。
- 内容订阅是另一个主要类别,例如音频(例如 Spotify)、视频(例如 Netflix)、新闻(例如《纽约时报》)、博客(例如 Stratechery)、数据(例如 Crunchbase)或专业团体/社区的会员资格。所有这些都需要软件来支持。
由于用户直接为软件/内容/会员资格付费,并且可以随时离开,因此其激励机制非常明确——利用订阅收入来提供更好的产品,这有助于吸引更多订阅用户,从而为更好的产品提供资金,等等。由于数字内容可以无限复制,这类业务的毛利率和现金流都很高。为了实现增长,企业必须拓展营销渠道,提高转化率,控制内容成本(例如与内容创作者分享收入),并降低用户流失率。
大多数订阅业务就像自助餐一样——支付订阅费,就可以无限畅吃。这本身就有一个缺陷——有些人吃得比大多数人多得多。这种做法的成本很高,而且本质上,那些使用频率较低的用户实际上是在补贴他们对平台的“滥用”(通过降低平均使用率)。因此,所有订阅业务最终都会开始按座位收费,然后逐渐转向某种形式的计量计费(使用某种价值指标)。
市场
市场是软件业务中最难建立的,因此其数量比其他类型的业务要少。然而,一旦建立起来,它们就会展现出令人惊叹的双向网络效应,这使得它们非常有价值。
就像线下平台一样,交易平台会撮合买家和卖家。交易平台为双方提供流动性(买家可以找到心仪商品,卖家可以出售现有商品,否则平台就会倒闭)和质量(买家是优质客户,卖家必须符合标准,否则将被平台踢出)的保证。作为交换,平台会向买家或卖家收取一定费用。由于这笔费用通常是交易金额的一定百分比,因此这被称为佣金率,交易平台希望以此为基础实现商品交易总额的增长。佣金率会根据平台实力而有很大差异——Gumroad 收取 3.5% 的费用,而苹果和谷歌的应用商店则收取 30% 的费用。
这种模式听起来简单,但有很多方法可以增加收入。例如,供应商通常会支付认证费或上架费,或者也可以付费加入。事实证明,平台本身的网站是主要的广告空间,而客户会为更好的服务付费,因此,你确实可以在平台业务内部构建完整的广告业务和完整的订阅业务,亚马逊已经做到了这一点。
从某种程度上来说,这是终结所有商业模式的商业模式,因为你现在基本上可以自己管理经济。
您需要了解的最后两个主要优势:
- 市场本身并不拥有库存,因为供应商才是将库存推向市场的一方。这使得它们实现了轻资产化,这意味着它们只需很少的投资就能实现大规模扩张。Airbnb 在没有拥有房产的情况下,提供的房间晚数比世界上任何一家连锁酒店都要多;Uber 和 Lyft 在没有拥有汽车的情况下,运送的乘客数量比任何一家出租车公司都要多。
- 足够大的平台会促使买卖双方互相优化——买家希望获得高评分(尤其是在购买重复服务时),卖家则希望获得好评。平台的每一个细微之处——从图片尺寸到产品供应——都会被充分利用,以精准满足平台的需求。这不仅意味着买卖双方可以免费互相优化,也使得创建竞争对手的平台变得极其困难,因为之前的投资和声誉都已经积累。
这些好处并不是免费的——市场很难建立,原因如下:
- 假货和纠纷:市场提供隐性或显性的质量保证,这意味着他们需要一种方法来处理出现问题时发生的情况。
- 去掉中间商:每个实力雄厚的供应商最终都会对支付佣金率感到不满。这不仅关系到更多收入,也关系到与客户建立更直接、更长期的关系,避免市场未来可能做出的任何不利改变。对于服务市场而言,如果买家和卖家彼此足够好,可以直接将他们的关系“线下化”。这意味着买家和卖家的流失对市场来说是一个巨大的问题,即使双方已经找到彼此,市场也必须提供一个令人信服的理由,让他们继续留在平台上。
- 先有鸡还是先有蛋的问题(或者说“冷启动”问题):如果没有足够的买家,供应商加入平台就缺乏吸引力。如果没有足够的供应商,买家甚至不会上门。一个平台在其发展过程中,可能会在需求受限和供应受限之间来回切换几次。
解决这些问题的一个方法是自己做供应商——这样你只会增加市场的需求方。你可以把所有电商业务都视为“单边市场”,尽管现在流行的说法是直接面向消费者,即“D2C”。
平台和聚合器
我曾多次使用“平台”这个词,却没有给出定义。这个词的含义极其丰富,如果没有上下文,你永远无法真正理解它的含义。然而,在软件行业,听听查马斯·帕里哈皮蒂亚引用比尔·盖茨的话,你或许会觉得更糟:
我当时负责Facebook平台。我们大肆宣扬它,好像它是什么了不起的大事。我还记得我们从比尔·盖茨那里融资的时候,三四个月后——我们的融资历史是500万美元、8300万美元、5亿美元,然后是150亿美元。Facebook平台上线几个月后,当150亿美元到来时……盖茨说了类似这样的话:“这简直是一派胡言。这不是一个平台。平台是指每个使用它的人的经济价值都超过了创建它的公司的价值。那它就是一个平台。”
他说得对。正因为平台是巨大的经济重心,我们需要将它们与普通的、千篇一律的市场区分开来(我希望我已经阐明,它们已经是强大的经济引擎了)。
有史以来最重要的三个平台是 Windows、iOS 和 Android。根据 Ben Thompson 的说法,它们都是操作系统并非巧合:
- Windows 是桌面时代的操作系统:开发者开发在 Windows 上运行的应用程序,制造商生产运行 Windows 的硬件,这使得 Windows 对双方都更具吸引力。引用 Ben 的话:
最终的结果是有史以来最完美的商业模式之一:商品化的硬件供应商竞相使 Windows 电脑运行得更快、更便宜,而软件开发商则同时使这些 Windows 电脑功能更强大、更难以离开。
- iOS 和 Android 是移动时代的操作系统:开发人员为 iOS 和 Android 开发应用程序,用户则习惯通过 Google 和 Apple Play 商店查找所有内容,这使得 iOS 和 Android 对双方都更具吸引力。
注:Ben 最初将 Google 搜索称为一个平台,但随着他的理论进一步发展,他改变了主意。
平台存在于比商业模式更高的层面——对Windows来说,它是授权,而对谷歌来说,它是广告。然而,平台的双面性使其看起来像一个市场,而比尔·盖茨的定义似乎与GMV(商品交易总额)类似。
但平台并不玩交易量游戏——它们的惯用手法是关注最关键的用例,并将其构建为后续产品。Windows 构建了 Office(Word、Excel、Outlook 等),然后是 Windows Server。谷歌构建了 GSuite(Docs、Sheets、Gmail 等),并收购了 YouTube。
与平台形成对比的经济模式被称为聚合器。
聚合器
聚合器是本·汤普森 (Ben Thompson)定义的聚合理论的主要特征。
注意:如果这看起来奇怪地集中在一个人的理论上,那是因为本用这个理论塑造了整个科技时代精神,甚至在苹果主题演讲中被引用 - 所以我觉得别无选择,必须向你介绍它。
聚合器必须具备三个特征:
- 与用户的直接关系(付款、账户、常规使用)
- 为用户服务的边际成本为零
- 需求驱动的多边网络,获取成本不断降低(也就是我们讨论过的双边网络效应的一种非常特殊的类型)
聚合器充分利用了互联网和数字经济带来的根本性权力转移。由于数字商品的边际成本为零,创造利润的能力已从控制稀缺资源分配的公司(供应商)转移到控制充足资源需求的公司(聚合器)。
如果你聚合用户,你就能掌控全局。这意味着良好的用户体验至关重要,这也解释了过去十年来在网页和移动客户端上投入的巨额资金。(这也是为什么 React 开发人员的需求量如此之大的一个原因。)
聚合器的级别:
- 供应商获取——他们拥有良好的用户关系,但会购买他们的供应,例如Netflix和Spotify。内容成本是一个值得关注的问题。
- 供应交易成本——他们不购买供应品,但支付一些边际成本来吸引供应商,例如 Uber 和 Airbnb。
- 零供应成本——他们不购买供应品,也不产生供应商采购成本,例如亚马逊。
- 超级聚合器——至少包含三个方面:用户、供应商、广告商,并且所有方面边际成本均为零。例如 Facebook(包含 Instagram)、Snapchat 和 Google。
平台与聚合器
通过对比,我们能更好地理解这两个模型。我推荐你参考Ben 在他的网站上写的文章:
平台(例如 Windows)对于其供应商(例如 Windows 应用程序)的运行至关重要,而聚合器(例如 Google)对于其供应商(例如网站)的运行并不重要。
平台促进用户和第三方开发者之间的关系,而聚合器则中介用户和第三方开发者之间的关系。
平台帮助人们做事(又称心灵自行车),聚合器为人们做事。
要了解更多信息,您可以阅读 Ben Thompson 的著作 - 请注意,他的定义在 2015 年至 2019 年期间发生了变化。此外,“平台”一词的普遍接受用法也涵盖聚合器。
最后一点与我们息息相关:平台和聚合器都让供应商更容易接触到客户,从而使得新型业务得以在其之上诞生。苹果、微软、YouTube、亚马逊、Teachable 等公司都创造了百万富翁,开发者可以通过这些平台或为其工作赚取丰厚的收入。
其他战略视角
正如你所见,对科技公司兴衰成败的分析确实可以非常微妙。尽管科技巨头们总是备受瞩目,但好的想法却并非一成不变,你可以在你的专业人脉、语言生态系统和公司内部政治等更细微的领域中运用它们。
我已经没有空间了,但我想向你指出一些你可以自己研究的更有趣的动态:
- 开源的资金问题始终是一个争论点——开放核心模式越来越可行,不仅极大地造福了开发者生态系统,也为开发者提供了良好的就业机会。然而,如果你的核心是开放的,那么任何人都可以与你竞争托管你的核心,因此这导致了“大重新授权”的出现。
- 圈地扩张 vs. 有机增长:一些商业机会由于“赢家通吃”的网络效应必须实现极快的增长,因此应该寻求风险投资;而其他商业机会则始终是众多商业机会中的一个,利润和单位经济效益才是自力更生式增长的核心关注点。Joel Spolsky 对这一理念进行了精彩的阐释。
- 绝对命令:我怀疑软件本身就存在一些内在的需求,这些需求体现在客户和产品经理那些不可避免且缺乏想象力的功能需求上。如果你将你正在开发的代码库拟人化,并将其视为一个活生生的、有生命的东西,你就能思考 IT 部门“想要”什么。因此,你就能预测你需要构建哪些功能。例如:
- 每个协作应用程序都需要电子邮件
- 每个数据分析应用程序都想成为 Excel
- 每个市场都希望实现双向
- 每个社交应用都需要聊天
- 每个用户生成内容应用都需要故事
- 每个 B2B 应用程序都需要一个仪表板
- 每个人最终都想要一个 CMS