大学期间,我几乎是住在了图书馆。我当时想:“我学习的理论越多,我就会成为一名优秀的工程师。”然而当我参加工作时,我注意到业内最优秀的工程师不一定比应届毕业生了解更多的理论。
这些优秀工程师带来了另类的心态,这就是投资人心态,它在团队中发挥着积极作用。
投资人心态,帮助他们提出更智慧的问题,更好地考虑优先级,同时让自己与众不同,就像投资人角色一样。
投资人心态的关键要素,我们列表总结如下:
- 专注于能够得到回报的工作
- 深入研发之前,计算工作是否值得花时间
- 权衡人们工作的机会成本
在本文中,我们将讨论每位工程师在其职业生涯中将面临的三个常见问题,如何使用投资人的思维方式,帮助自己每次做出正确的技术决策。
1. 你的工作什么时候会有回报?
在投资中,有一个概念叫做“金钱的时间价值”。
此概念是指现在的钱比以后的钱更值钱,宁愿从现在开始一年而不是从现在开始五年的投资回报。而软件工程和研发工作也具有“时间价值”,即现在得到回报的工程项目比后来得到回报的工程项目更有价值。
举个例子,从 Facebook 股票来看这一点。当这家公司的高管们透露他们的 Metaverse 投资可能在“15 年后”都不会得到回报时,其股价从历史最高点下跌了 50%。
就像元宇宙的超长回报周期吓坏不少投资人一样,软件工程师应该避免在未来太远的时间内获得回报的工作。
此种错误经常发生在软件工程或系统迁移方面。
为什么迁移比你想象的要昂贵
从投资的角度来看,工程迁移是有保证的前期成本,未来的回报非常不确定。要保证这些利益的回报时间不会比大多数人意识到的要长。我们先来考虑以下两年迁移系统的时间表。
成本是有保证的,但是没有回报
首先我们现在系统迁移的两年比我们以后迁移中受益的两年更有价值。因此迁移的盈亏平衡点要大于四年后。
其次,任何迁移的回报都必须超过工作成本,否则就不要进行迁移。
而第 3 年和第 4 年的回报需要打折,因为它在未来。
我有一条规则,任何工程都必须至少有 2 倍的回报才能证明成本合理。如果我花一个月的时间迁移,它必须为我节省两个月的时间来获得回报。有了这个规则,如果你花了两年时间进行一次工程迁移,你必须享受到双倍迁移时间的好处才能实现收支平衡。因此,2 年迁移的盈亏平衡点实际上是在 4 年后——或者从迁移开始算起的第 6 年。
你愿意等 6 年才看到 2 年迁移的回报吗?
迁移花费的时间越长,它可能永远不会得到回报的风险就越大。这些风险包括:
- 不断变化的业务优先级——客户可能会弃用团队的服务,从而导致迁移过时;
- 退出风险——如果一家初创公司被收购,这些迁移未能提高初创公司的估值,从而带来零商业价值;
- 执行风险——单个执行错误(例如数据泄露)可能会使迁移的全部回报无效。
这里的教训是,软件工程应该偏向那些迟早会得到回报的项目,否则有可能永远看不到回报。
2、这个项目值得你花时间吗?
沃伦·巴菲特 (Warren Buffett) 曾经说过,一家公司的回报“更多地取决于你进入的商业之船,而不是你划船的效率。”
同样的原则也适用于软件工程。做正确的项目(乘上正确的船)比编写代码的细节(划船的努力程度)更重要。当涉及到工程中的购买与构建决策时,这一点尤为重要!
我承认对新的项目感到兴奋,我相信很多人也一样,但重要的是不要直接马上投入并用默认值“构建”,要像做尽职调查的投资人一样,软件工程必须在决定采取一种方式之前计算成本与收益。
我们用一些问题来做决定。包括如下:
- 如果我们购买了一个解决方案,它的集成和维护有多容易?
- 这个产品的功能是公司的核心竞争力吗?
- 开发这个项目到底有多少费用?
对于最后一个问题,最重要的是要估计任何“构建”方案的成本,以确保预期的回报与工程工作量成正比。为此建立基线的方法是:
- 估计一个项目需要多少小时;
- 将此乘以你的每小时工程费率;
- 将此作为项目成本的指南。
项目越深入蓝色或红色区域,分别创建或购买的决定就越令人信服。虽然项目成本并不是唯一的考虑因素,但有时单独进行此练习可以帮助工程人员决定采用哪条路径更合适。
示例:使用 RecordJoy.com 购买与构建
我和我的商业伙伴决定以 12,000 美元购买一个名为 RecordJoy.com 的屏幕录制网站,或自己从头开始构建时,我自己就做出了这个决定。
RecordJoy 购买时截图
我们估计自己建网站需要两个月,也就是 320 个工程/小时。假设我们的时间价值 100 美元/小时,那么构建我们自己将花费 32,000 美元。
购买 RecordJoy 的选项,是我们愿意现在花 12,000 美元购买 RecordJoy,还是用 32,000 美元自己开发它。一比较买网站比建网站便宜,所以我们买了网站。
从头开始构建 RecordJoy 比购买它要贵得多
现在回顾过去,这个决定是我们在 RecordJoy 工程时做出的最重要决定,它使我们能够将精力集中在构建付费功能而不是产品本身上。同时它还降低了工程风险。通过购买 RecordJoy,我们获得了可以立即使用的有保证的产品,我们无法保证两个月后我们能够完成自己开发的产品。
至于 RecordJoy,我们通过几个月的工作将这家公司从没有收入增长到每月 700 美元的经常性收入。后来我于 2022 年 4 月在 Microacquire.com 上出售了该公司。
3、这个项目最能打动公司吗?
在投资中,还有一个概念叫做“机会成本”。机会成本是你做出选择时放弃的东西。
比如如果我想要甜点,并且在蛋糕和冰淇淋之间进行选择,那么选择蛋糕的成本不仅仅是您支付的钱,蛋糕的成本同时也是享受冰淇淋的机会。因此对于每一个选择,一扇门为你打开,另一扇门则会关闭。
在软件工程中,每一次技术债务清理都有机会成本。清理一个系统时意味着我们无法清理另一个系统。因此确保我们开展的清理工作能够产生最大价值至关重要。
我将管理技术债务比作打扫房子。就像你的房子永远不会完全干净一样,完全消除技术债务也是不可能的。
但是,你家中的某些房间要比其它房间更需要清洁:
如果房子内部不干净,为什么要打扫花园?
如果主卧室不干净,为什么要清洁客房?
同样,一些清理工作可以帮助团队更快完成。
计费服务的警报系统比内部工具的警报更具影响力。网站首页的测试基础设施比其他任何页面都更重要。
工程师的要素是要始终考虑工作的机会成本。比如在你的主卧室未打扫干净之前,不要打扫你的客房。
示例:Doma 从 Heroku 迁移到 Azure
房地产软件公司 Doma 最近进行了技术债务清理,这个团队专注于清理主卧的工作得到了回报。为了准备 2022 年的 IPO,他们要将云基础设施从 Heroku 迁移到 Microsoft Azure。他们给了自己半年的时间来执行这次迁移。
然而到最后,Doma 与 Heroku 的合约出现了问题。Heroku 不允许他们以较低的数量续签合同,只向 Doma 提供了另一份长期合同的选择权。所以,如果 Doma 没有及时完成向 Azure 的迁移,他们的云基础设施可能会被切断。
他们给了自己 41 天的时间来执行迁移,但是这个团队将时间线缩短了一个月,降至 11 天。
考虑到他们与 Heroku 合同的最后期限迫在眉睫,不完成此次迁移可能会使公司损失数百万美元。与未及时完成此迁移的影响相比,其它任何工程工作都是相形见绌。
作为对此事件的回应,Doma 为软件工程团队发布了一份全员通知。每个团队都必须优先考虑从 Heroku 迁移,因为此迁移的机会成本太高了。做任何其它工作都相当于打扫客房,而主卧室 Heroku 的迁移却已经着火了。
Doma 团队的专注终于得到回报。他们在 8 天内将所有的应用程序迁移到 Azure,还留下 3 天的时间用于进行测试。
这个工程师团队的投资人心态使他们能够权衡迁移与其它工作的机会成本,并有效避免了运营危机,接着,他们很快就上市了。
总结
在软件工程领域,培养自己有投资人的心态会让人比学习最新的技术更进一步。
请各位务必花更多时间,仔细考虑如下项目:
- 财务成本
- 回报期限
- 工作的机会成本
符合以上条目,你和团队也将做出更好的技术决策,有效节省时间和金钱。