「硅电子」完成数千万元天使轮融资
06-18
编者按:你可能听说过“软件正在吞噬世界”,但本文提出了一套经济思维框架,可以更具体地解释“软件如何正在吃世界”,有趣。
软件开发人员普遍的态度是抱怨我们的工具及其难用性。
也许我是一个乐观主义者,因为我有完全相反的观点!我的第一份工作是 2010 年在弗拉基米尔·软件工程师 (Vladimir 软件工程师) 工作,在过去的二十年里,我看到软件工程方面的变化将我们的生产力提高了几个数量级。
以下是我在工作中参与或相关的一些例子: Spotify 使用 C++ 构建了完整的 P2P 架构,向听众分发流媒体音乐。
这在今天是一个微不足道的问题——大家只需要将数据发送到 CDN 上即可。
我曾经编写自定义 MapReduce 自动化脚本来提取基本统计数据,然后等待几个小时才能完成这些任务。
如今,这些将是数据仓库中在几秒钟内运行的 SQL 查询。
我曾经经营一家网上商店,并花了一周的时间实施信用卡付款。
如今,使用 Stripe 支付集成只需 15 分钟。
更不用说开发团队流程的变化了:单元测试在业界非常罕见——我第一次遇到它是在 2016 年在 Google 工作时。
当时 git 还是一个相对较新的工具,git-flow 是一种流行的工作流程,许多开发人员都在使用 git-flow。
花费了大量的时间(例如 20-30%)来编写可以在 git 中通过 rebase 实现的代码。
CI 系统很脆弱,CD 基本上不存在,部署是可怕的体力劳动。
这些只是例子——我可以继续说一整天。
就像关于软件生产力的经典“无银弹”论文一样,这些事情本身都不是显着的改进。
但生产力的提高是累积性的,而且是以指数规模累积的,这意味着:当你的时间尺度是几十年时,我们看到指数级的提高并不是没有道理的。

(注:我将在这篇文章中使用术语“工具”来指代软件行业的各种工具和对象:框架、库、开发过程、基础设施。
)对软件的永不满足的需求围绕着软件,世界上一个极其粗略的分类是: 有些东西有很棒的软件 有些东西有平庸的软件 有些东西没有软件 这现在已经很明显了,所以我继续说:如果有能力以零瞬时生产无限数量会怎么样成本?软件,那么最后两个桶就会消失。
平庸的软件之所以存在,是因为有人无法聘请更好的工程师,或者他们没有时间,或者其他一些原因。
软件什么都没有……什么都有?我的意思是,为什么你的鞋子没有内置步数追踪器?为什么 Mark in Accounting 仍然生成 PDF 发票并将其通过电子邮件发送给客户?为什么不……我可以继续说下去。
显然我们已经朝这个方向前进了很长时间。
我的观点是,软件可以做很多事情。
为什么还没有发生?因为有人做出了经济决定,认为构建软件太昂贵了。
聘请工程师并培训他们完成这项工作需要花费金钱和时间。
那么我们如何看待这个成本呢?软件工程师的供需状况让我们回到了我的观点,即软件工程师的生产力随着时间的推移而提高。
从经济角度来说,这意味着每项产出的价值都会上升。
在需求方面,这意味着构建软件的成本下降。
以前需要1个小时,现在需要几个小时。
如果需求是固定的,这将意味着工程师的大量失业和低薪,但需求不是!正如我之前所暗示的,构建软件的成本较低意味着新的机会出现。
过去花费 1 小时的工程精力来构建你的小发明是不值得的,但它可能值得 1 小时。
潜在需求巨大。
您甚至可以为工程师支付更高的每小时费用。
这些事情都可能同时发生:开发出更多软件软件工程师的工资上涨软件工程师的数量增长这可能是违反直觉的,因此值得将其与需求固定的情况进行对比。
假设发明了一种工艺,可以将尿布工厂的产量提高 10%(保持所有成本不变),并且该发明可以立即提供给所有尿布制造商。
结果是什么?市场上纸尿裤将出现暂时过剩,市场将达到新的平衡,供应收缩以满足需求。
在此过程中,一些工厂将关闭,尿布价格将下降。
与软件工程师不同的是,当成本下降时,需求就会增长。
你阿姨的牙科诊所过去没有网站,但现在应该有一个完整的在线预约系统。
您的孩子就读的学校突然有了一个可以向家长发送通知的应用程序。
我不知道——我的意思是,随着价格下降,需求将会增加。
这种情况不仅发生在整个经济领域,而且还发生在微观层面。
如果您有一个数据科学家团队,并且您引入了一种可以将生产力提高 2 倍的工具,该怎么办?太棒了——您每次增量招聘的投资回报率都翻了一番,而且您应该雇用更多的人。
我从未见过一家公司的数据科学家失业:总是有更多的东西需要分析。
这会永远持续下去吗?我认为在某种最终状态下,我们会遇到看起来像奇点的情况,即软件本身的构建速度如此之快,以至于需求无法随着供应而增长。
这正是我担心软件工程师丢掉工作的时候。
但在接下来的几十年里,我认为我们将看到软件工程师的人数增长,这是一个非常好的预测。
如何成为软件工程师 软件作为一个领域的发展以及薪资本身的增长显然正在吸引更多的人进入该领域,但我认为还有另一件事正在发生。
几十年前,软件工程很困难,因为您必须从头开始构建所有组件并解决所有这些基本问题。
您是否需要存储来构建为 10,000 个并发用户提供服务的系统?浏览有关一致性哈希、CAP 定理、CRDT 等的论文,卷起袖子,准备好学习一些硬核 C++。
如今,这些问题“大部分”已经得到解决,您可以使用现成的工具来解决其中的大部分问题。
但这并不容易!就像我之前提到的,没有灵丹妙药,有一百万种工具,您需要知道如何根据最佳实践将它们组合在一起。
但我们知道这是一种不同的困难。
几十年前,软件工程青睐具有深刻抽象思想的人——能够从原子中拼凑出复杂软件的人。
对我来说,今天它看起来更像是一门手艺——更多的是学习应该使用什么工具来完成什么工作。
我的意思是,它仍然非常有利于深度抽象思考者,但相对而言,这项技能的区别比以前要小。
我认为这改变了软件工程师供需方程的供给侧。
如今,成为软件工程师的障碍有所不同,这开辟了更大的人才库。
这释放了新的供应来源,这意味着将创建更多的软件。
软件工程师在知识工厂构建软件中的角色对于公司来说是(并且仍然)是一项非常昂贵的任务。
在一般公司中,您仍然有看似无穷无尽的积压。
企业“工厂”的软件方面仍然常常是一个公司的瓶颈。
当您的小部件制造商成为您制造工厂的瓶颈时,您会怎么做?您确保瓶颈始终满负荷运行。
这意味着您集中了小部件制造商的资源管理 - 您可以控制输入并投入大量精力来确保按什么顺序制造哪些小部件。
这仍然是大多数公司的运作方式。
然而,(在我看来)拥有异常高效的工程团队的公司正在以稍微不同的方式组织他们的工作。
他们倾向于分散优先级,并在紧密的迭代中直接与产品和业务利益相关者合作。
当资源不再是瓶颈时,您可以通过将资源分配给许多不同的团队来实现更高的迭代速度。
我并不是要明确地授予权力。
我的意思是将积压的工作分散到直接满足业务需求的较小团队中。
在此模型中,营销团队无需将某些内容添加到工程团队的积压工作中。
您有一个负责收购的跨职能团队,其中一些是传统营销人员,一些是工程师。
您可以想象这几乎涵盖了典型公司的所有职能:客户支持、财务或其他任何职能。
我觉得非常有趣的一个平行历史是为什么电力花了这么长时间才改变制造业。
蒸汽机时代的工厂是围绕全能蒸汽机的动力分配而建造的。
能源是一种宝贵的资源,因此很自然地认为制造工厂是围绕能源分配建造的。
电力改变了这一点,分散了能源生产,但制造工厂花了很长时间才重新调整并利用这一点。
(注1:这不是一个完美的类比,因为蒸汽动力不仅是宝贵的资源,而且建造小型蒸汽机也很困难。
)(注2:我链接的文章的要点是创新往往释放生产力需要时间,因为使用新技术的首次尝试常常试图将它们重塑为遗留结构(例如:互联网首先创建了邮寄 DVD,但互联网本身的真正创新是流媒体视频)我一直在谈论的知识工厂是为工程师提供更多生产力的工具,但这并不是全部,显然有很多工具可以让非技术人员完成自己的工作,这很棒,但我也看到了很多!开发工具是为了让人们不必与工程师合作,原因如下: 迭代速度:向工程师解释所需内容的成本使其不值得 工程资源不可用(或太昂贵)。
,或其他什么)你只需要一小群工程师,但市场并不存在来构建一些东西需要一些特殊的领域知识工程师很奇怪并且闻起来很有趣好吧,最后一点只是一个愚蠢的笑话。
我想这几点已经涵盖了大部分原因。
其中,我认为第一个(迭代速度)是合理的理由。
例如,我鼓励所有业务人员学习 SQL,以便他们可以自己运行查询。
我认为不幸的是第二个(没有可用的工程资源)。
我们中的许多人可能遇到过手动数据处理(管道),人们使用宏发送 Excel 文件、每天早上将新数据复制粘贴到电子表格中或类似的操作。
这有时被称为“影子技术”。
如果有专门的工程资源,构建和拥有这些东西的总体成本可能会低得多。
但非工程师正在构建这项技术的事实证明了对工程师的需求。
在许多公司中,工程师无法满足需求。
因此,随着时间的推移,有了更好的工具,可以满足更多的需求。
处于工程师生产力前沿的公司可能会较少看到这些问题:工程师将尽早参与并解决业务问题。
第三点(一些资源)可能适用于较小的公司。
如果您是一名牙医,您不会聘请工程师为您构建服务预订软件。
幸运的是,他们受益于全行业产量的增加:可能会有一个全新的牙科软件生态系统可供购买(因为构建它变得更便宜)。
最后一点(特殊知识)有一定道理。
我经常看到业务人员作为小团队在第一线运行基本原型,构建手动工作流程,然后由工程师接管并自动化。
相比之下,随着权力下放的增加,工程师将越来越多地发展领域经验。
例如,许多公司为其人力资源和财务团队配备了专门的数据科学和数据工程师资源。
巨大的生产力不平等所有这一切的一个有趣的推论是,它创造了一个积极的反馈循环,在这个循环中,一些公司将进一步落后:缺乏采用新工具意味着落后于利用这些工具的公司。
软件工程师的较高薪水意味着这些公司的定价超出了招聘市场的高端。
未能重新调整工厂意味着较低的迭代速度。
缺乏工程师意味着采用工具来构建技术而不使用工程师,这会带来更高的相关成本。
相比之下,走在前列的公司将看到他们的软件工程师生产力激增,迭代速度加快。
我在抵押贷款行业工作了六年,我已经看到这些趋势非常清晰地展现在我面前。
最大的落后者正在拼命采用 RPA 和临时数据处理工具,将现成的 POS 和 CRM 软件结合在一起。
稍微好一点的公司拥有自己的工程团队,但似乎未能将其加工厂重新调整为技术驱动型公司。
我的公司 Better 隐含地投资于我在这篇文章中提到的所有内容,也许还有其他一些趋势。
对于我认为可以简洁地放入因果图中的事情来说,有很多话要说:软件工程师生产力与软件供需平衡 该图显然不是软件世界中正在发生的事情的完整理论。
还有许多其他趋势,例如“互联网削弱了物理护城河效应”和软件产品创造了更多的规模经济。
但我认为这张图解释了很多关于生产力和软件供需平衡之间关系的问题。
如果没有能力产生预测或政策建议,理论就毫无用处,所以我打赌:现在是软件工程师的好时机 软件工程师工具的市场将继续增长 许多“传统”公司将落后于生产率的提高 新进入者将威胁这些公司为了在很大程度上取得成功,每个公司都应该考虑如何重新调整他们构建(软件工具)技术的方式,以专注于去中心化和更高的迭代速度,从长远来看,将工程师嵌入到整个企业或“工厂”中对于公司来说,仅仅为了在没有工程师的情况下构建技术的目的而采用某种类型的工具并不是一个好主意。
软件工程师应该全心全意地采用使他们更具生产力的工具:使他们更有价值的工具具有高生产力 拥有高效工程团队的公司将拥有更快增长的工程团队(因为雇用更多工程师的投资回报率更高)这篇博文是一些文章的汇编我脑子里以前不相关的想法。
有些对读者来说可能非常明显,有些则不太明显,希望您能从后者中学到一些有用的东西。
版权声明:本文内容由互联网用户自发贡献,本站不拥有所有权,不承担相关法律责任。如果发现本站有涉嫌抄袭的内容,欢迎发送邮件 举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。
标签:
相关文章
06-18
06-17
06-18
06-17
06-18
最新文章
Android旗舰之王的过去与未来
智能手表不被开发、AR眼镜被推迟,Meta的产品经历了一波三折
为什么Cybertruck是特斯拉史上最难造的车?
更新鸿蒙3后,文杰允许你在车里做PPT了
新起亚K3试驾体验:追求“性价比”,韩系汽车仍不想放弃
阿维塔15登场!汽车配备了增程动力,理想情况下会迎来新的对手吗?
马斯克宣布创建 ChatGPT 竞争对手! OpenAI的CEO给他泼了冷水, GPT-5可能会发生巨大变化
骁龙无处不在,是平台也是生态