最好的工程师像投资者一样思考,而不是建设者

news/2024/5/8 23:28:03/文章来源:https://blog.csdn.net/u010291330/article/details/129117772

我在大学期间住在图书馆。

“我学习的教科书理论越多,我就会成为一名更好的工程师,”我想。

然而,当我开始工作时,我注意到业内最优秀的工程师并不一定比应届毕业生了解更多的理论。他们只是带来了不同的心态,即投资者的心态。

正是这种心态帮助他们提出更聪明的问题,更好地确定优先次序,并让自己与众不同。他们像投资者一样:

  • 专注于早日获得回报的工作

  • 在深入研究之前计算这项工作是否值得他们花时间

  • 权衡他们工作的机会成本

在本文中,我讨论了每个工程师在其职业生涯中都会遇到的 3 个常见问题,以及投资者的心态如何帮助您每次做出正确的技术决策。

1. 你的工作什么时候有回报?

在投资中,有一个概念叫做“金钱的时间价值”。这是指现在的钱比以后的钱更值钱。您宁愿让一项投资从现在起一年后得到回报,而不是五年后。

工程工作也有“时间价值”。现在获得回报的工程项目比以后获得回报的工程项目更有价值。

我们最近在 Facebook 股票上看到了这一点。当高管们透露他们的 Metaverse 投资可能不会在“15 年后”得到回报时,它从历史高点下跌了 50%。

Meta 也已经向它投资了超过 10B 美元。

正如元宇宙的长期回报期如何吓坏了投资者一样,工程师应该避免在未来获得回报的工作。当涉及到工程迁移时,尤其会发生这种错误。

为什么迁移比您想象的要昂贵

从投资的角度来看,工程迁移是有保证的前期成本,未来回报不确定。而且这些奖励的回报不会比大多数人意识到的更久。

请考虑以下两年迁移的时间表。

成本是有保证的,但回报不是。

首先,我们现在花在迁移上的两年比我们以后从迁移中受益的两年更有价值。因此,迁移的收支平衡点比四年后要长。

其次,任何迁移的回报都必须超过工作成本。花两年时间来节省两年时间是没有意义的。那时您还不如根本不进行迁移。

你应该打折第 3 年和第 4 年的回报,因为它是在未来。

我有一条规则,任何工程工作必须至少有 2 倍的回报才能证明成本合理。如果我花一个月的时间迁移,它必须为我节省两个月的时间才能获得回报。

有了这个规则,如果你花了两年时间进行工程迁移,你必须享受双倍迁移时间的好处才能达到收支平衡。

因此,2 年迁移的盈亏平衡点实际上是四年后 — 或者迁移开始后的六年。

您是否愿意等待 6 年才能看到 2 年迁移的回报?

迁移花费的时间越长,永远无法获得回报的风险就越大。其他风险包括:

  • 改变业务优先级——公司可能会弃用团队的服务,使迁移变得过时。

  • 退出风险——如果一家初创公司被收购,这些迁移不会影响初创公司的估值,从而带来零商业价值。

  • 执行风险——一个单一的执行错误(例如数据泄漏)可能会使迁移的所有奖励无效。

教训是,工程应该偏向于早日获得回报的项目,否则就有可能永远看不到回报。

2. 这个项目值得你花时间吗?

沃伦·巴菲特 (Warren Buffett) 曾说过,一家公司的回报“与其说是你划船的效率,不如说更取决于你乘坐的是哪艘商业船。”

同样的原则也适用于工程。从事正确的项目(上正确的船)比编写代码的细节(划船的难度)更重要。

当涉及到工程中的购买与构建决策时,这一点尤为重要。

尽管我承认我对新建项目感到兴奋,但重要的是不要直接投入并默认“构建”。就像进行尽职调查的投资者一样,工程人员在决定采取任何一种方式之前必须计算成本和收益。

我问的一些问题包括:

  • 如果我们购买了一个解决方案,集成和维护的难易程度如何?

  • 这个功能是公司的核心竞争力吗?

  • 建造这个到底有多贵?

关于最后一个问题——重要的是要估算任何“构建”提案的成本,以确保预期回报与工程工作成正比。为此建立基线的一种方法是:

  1. 估计一个项目需要多少小时。

  1. 将其乘以您的每小时工程费率。

  1. 以此作为项目成本的指导方针。

项目越深入蓝色或红色区域,分别建造或购买的决定就越有说服力。

虽然成本不是唯一的考虑因素,但有时单独进行此练习可以帮助工程人员决定采用哪条路径。

示例:使用 RecordJoy.com 购买与构建

当我的商业伙伴和我不得不选择以 12,000 美元购买一个名为 RecordJoy.com 的屏幕录制网站或从头开始构建时,我自己做出了这个决定。

我们购买时的 RecordJoy.com 截图

我们估计我们自己建立网站需要两个月,或 320 个工程小时。假设我们的时间价值 100 美元/小时,那么构建我们自己将花费 32,000 美元。

购买 RecordJoy 的选择归结为我们是愿意现在花 12,000 美元购买 RecordJoy,还是花 32,000 美元自己构建它。买网站比建网站便宜,所以我们买了网站。

从头开始构建 RecordJoy 比购买它要贵得多。

回顾过去,这个决定是我们在开发 RecordJoy 时做出的最重要的工程决策。它使我们能够将精力集中在构建付费功能上,而不是产品本身。

它还降低了工程风险。通过购买 RecordJoy,我们得到了可以立即使用的有保证的产品,而不是我们无法保证在两个月后用完的产品。

至于 RecordJoy,我们通过几个月的工作,将这家公司从无收入发展为每月 700 美元的经常性收入。我们于 2022 年 4 月在 Microacquire.com 上出售了该公司。

在我在他们的网站上出售我的公司后,Microacquire 寄了一份礼物来祝贺我。

3. 这个项目对公司的影响最大吗?

在投资中,还有一个概念叫做“机会成本”。机会成本是你在做出选择时放弃的东西。

例如,如果我想要甜点,在蛋糕和冰淇淋之间做出选择,那么选择蛋糕的成本不仅仅是你付出的代价。蛋糕的成本也是享受冰淇淋的机会。因此,对于每一个选择,一扇门打开,另一扇门关闭。

每个技术债务清理也有机会成本。清理一个系统意味着我们无法清理另一个系统。因此,确保我们开展的清理工作产生最大影响至关重要。

我将管理技术债务比作打扫房子。就像你的房子永远不会完全干净一样,完全消除技术债务也是不可能的。但是,您家中的某些房间比其他房间更需要清洁。

如果房子内部不干净,为什么要打扫花园?

如果主卧室不干净,为什么还要打扫客卧?

干净的客房

同样,一些技术债务可以帮助团队比其他人更快地行动。

计费服务的警报系统比内部工具的警报更有影响力。主页的测试基础结构比任何其他页面都重要。

给工程师的教训是始终考虑工作的机会成本。

在您的主卧室先打扫干净之前,不要打扫您的客卧!

示例:Doma 从 Heroku 迁移到 Azure

Doma 是一家房地产软件公司,最近进行了一次技术债务清理,他们专注于清理主卧室得到了回报。

为了准备 2021 年的 IPO,他们不得不将云基础设施从 Heroku 迁移到 Microsoft Azure。他们给自己半年的时间来计划和执行这次迁移。

然而,到最后,Doma 与 Heroku 的合同出现了问题。Heroku 不允许他们以较低的数量续签合同,只向 Doma 提供了另一份长期合同的选择权。因此,如果 Doma 没有及时完成到 Azure 的迁移,他们的云基础设施可能会被切断。

他们给自己 41 天的时间来执行迁移,但这个问题将他们的时间表缩短了一个月,缩短到 11 天。

Doma 关于迁移到 Azure 的演示文稿中的一张幻灯片。

考虑到他们与 Heroku 的合同有一个迫在眉睫的最后期限,不完成此迁移可能会使公司损失数百万美元。与未及时完成此迁移的影响相比,任何其他工程工作都显得苍白无力。

作为回应,Doma 向他们的工程团队发出了全体人员的通知。每个团队都必须优先考虑从 Heroku 迁移,因为这种迁移的机会成本太高了。当主卧室 Heroku 迁移着火时,做任何其他工作就相当于打扫客卧。

Doma 的专注得到了回报。他们在 8 天内将所有剩余的应用程序迁移到 Azure,并留出 3 天时间进行测试。他们的投资者心态使他们能够权衡迁移与其他工作的机会成本并避免危机。他们很快就会上市。

最后的想法

在工程领域,培养投资者的心态比了解最新的科技潮流更能让你走得更远。

如果您花更多时间考虑 1) 财务成本 2) 回报期和 3) 工作的机会成本,您将做出更好的技术决策并节省时间。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_71873.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STM32单片机蓝牙APP空气净化系统甲醛二氧化碳温度SGP30

实践制作DIY- GC0124-蓝牙APP空气净化系统 一、功能说明: 基于STM32单片机设计-蓝牙APP空气净化系统 功能介绍: 硬件组成:STM32F103C最小系统板DS18B20温度传感器OLEDSGP二氧化碳甲醛传感器5V直流风扇多个按键HC-05蓝牙模块(仅蓝…

大数据框架之Hadoop:MapReduce(三)MapReduce框架原理——MapReduce工作流程

1、流程示意图 MapReduce详细工作流程(一) MapReduce详细工作流程(二) 2、流程详解 上面的流程是整个MapReduce最全工作流程,但是Shuffle过程只是从第7步开始到第16步结束,具体Shuffle过程详解&#xff0…

二进制部署K8S

目录 一、环境准备 1、常见的k8s部署方式 2、关闭防火墙 3、关闭selinux 4、关闭swap 5、根据规划设置主机名 6、在master添加hosts 7、将桥接的IPv4流量传递到iptables的链 8、时间同步 二、部署etcd集群 1、master节点部署 2、查看证书的信息 2.1 创建k8s工作目…

SQL74 纠错2

描述供应商表Vendors有字段供应商名称vend_name、供应商国家vend_country、供应商省份vend_statevend_namevend_countryvend_stateappleUSACAvivoCNAshenzhenhuaweiCNAxian【问题】修改正确下面sql,使之正确返回SELECT vend_name FROM Vendors ORDER BY vend_name W…

【Redis】数据结构篇

一. String 字符串 常见用途:缓存用户信息,将用户信息结构体使用 JSON 序列化为字符串,然后将序列化后的字符串给 Redis 来缓存 Redis 字符串是动态字符串,是可以修改的字符串 —— 实现类似 ArrayList ?&#xff1f…

【自动化测试】自动化测试框架那些事儿

无论是在自动化测试实践,还是日常交流中,经常听到一个词:框架。在教学的过程中,同学们一直对“框架”这个词知其然不知其所以然。 最近看了很多自动化相关的资料,加上一些实践,算是对“框架”有了一些理解…

什么是生命周期?Activity生命周期的三种状态

什么是生命周期生命周期就是一个对象从创建到销毁的过程,每一个对象都有自己的生命周期。同样,Activity也具有相应的生命周期,Activity的生命周期中分为三种状态,分别是运行状态、暂停状态和停止状态。接下来将针对Activity生命周…

CANopen概念总结、心得体会

NMT网络管理报文: NMT 主机和 NMT 从机之间通讯的报文就称为 NMT 网络管理报文。常见报文说明: 0101---------------网络报文发送Nmt_Start_Node,让电机进入OP模式(此时还不会发送同步信号) setState(d, Operational)------------------开启…

STM32 SystemInit()函数学习总结

拿到程序后如何看系统时钟?User文件夹——system_stm32f4xx程序,先找systemcoreclock(系统时钟)但是这里这么多个系统时钟应该如何选择?点击魔法棒,然后点击C/C可以看到define的是F40_41XXX.USE这一款 ,对应着就找出了…

虹科新品 | 最高80W!用于大基板紫外曝光系统的高功率UVLED光源

光刻曝光是指利用紫外光源将胶片或其他透明物体上的图像信息转移到涂有光敏材料(光刻胶)表面以得到高精度和极细微图案的一种制作工艺,主要用于半导体生产、高精密集成电路、PCB板制造、MEMS等行业。光刻技术是半导体工业和集成电路是最为核心…

SAP FICO 理解业务范围的概念

业务范围 以前转载过几篇关于业务范围的文章: SAP Business Area 业务范围_SAP剑客的博客-CSDN博客_sap 业务范围 SAP FI 系列 002:业务范围派生_stone0823的博客-CSDN博客_sap 业务范围 http://blog.sina.com.cn/s/blog_3f2c03e30102w9yz.html 仍是…

修改redis的配置文件使得windows的图形界面客户端可以连接redis服务器

一、redis自带的客户端(了解,不方便)进入到redis安装目录的bin目录下指定主机和端口# ./redis-cli -h 127.0.0.1 -p 6379127.0.0.1:6379> exit 【退出】-h:redis服务器的ip地址-p:redis实例的端口号如果不指定主机和…

Dropout

目录一、Dropout出现的原因二、什么是Dropout?三、为什么Dropout解决过拟合?3.1 取平均的作用3.2 减少神经元间复杂的共适应关系四、实现Dropout—— pytorchexample 1example 2example 3设置dropout参数技巧一、Dropout出现的原因 在机器学习的模型中 如果模型的…

“终于懂了” 系列:组件化框架 ARouter 完全解析(三)AGP/Transform/ASM—动态代码注入

ARouter系列文章: “终于懂了” 系列:组件化框架 ARouter 完全解析(一)原理全解 “终于懂了” 系列:组件化框架 ARouter 完全解析(二)APT—帮助类生成 “终于懂了” 系列:组件化框架…

拼多多出评软件工具榜单助手使用教程

软件使用教程下载软件前,关闭电脑的防火墙,退出所有杀毒软件,防止刷单软件被误删桌面建立一个文件夹,下载下来的安装包放进去,解压到当前文件夹,使用过程中别打开防火墙、杀毒软件。打开软件后,…

计算机系统基础知识

计算机的基本组成 计算机组成逻辑图 计算机部件作用 一级部件作用 运算器:计算机的执行部件,受控制器控制,执行算术运算或逻辑运算控制器:决定计算机运行过程的自动化。不仅能保证程序指令的正确执行,还能处理异常事…

代谢组+转录组分析为腰果树果实发育成熟过程中代谢网络提供见解

文章标题:Metabolomic and transcriptomic analyses provide insights into metabolic networks during cashew fruit development and ripening 发表期刊:Food Chemistry 影响因子:9.231 作者单位:海南大学 百趣生物提供服务…

matplotlib学习笔记(持续更新中…)

目录 1. 安装,导入 2. figure,axes(图形,坐标图形) 2.1 figure对象 2.2 axes对象 2.3 代码演示 2.3 subplot() 方法 3. 图表的导出 3.1 savefig() 方法 3.2 代码演示 1. 安装,导入 pip install m…

关于数字化营销技术实现之【数据埋点】

1.如何实现数据埋点?小程序数据埋点是指在小程序中收集用户行为数据和业务数据的一种技术手段,以便对用户行为和业务运营进行分析和优化。下面是一些实现小程序数据埋点的方法:使用小程序统计分析工具:小程序平台提供了统计分析工…

大数据周会-本周学习内容总结0102

目录 01、ElasticSearch-学习总结 02、SpringbootElasticSearch构建博客检索系统 01、将MySQL数据同步到ES中 02、SpringBoot集成ES 03、本周学习计划 第一次周会 大数据总监、搜狐四年-中国搜索 【mapReduce】sql 大数据代表:Hadoop、spark、es、flink zookee…