在 Intercom 工作 6 年的 10 堂工程课程
已发表: 2024-02-03经过令人难以置信的六年多,在三个不同的产品组中担任过三个角色,我将离开 Intercom,寻找一个全新的机会。
正如我们过去广泛报道的那样,Intercom 拥有独特的工程和产品文化 - 因此,我试图反思这种文化并总结我在这里的主要经验教训。 我希望这些见解对其他工程师和工程经理有价值。
如果您有兴趣与优秀的人一起解决难题,请务必查看 Intercom 职业页面,看看是否有适合您的职位 - 您不会后悔的。
1. 只押注未来就像做空现在一样,会带来机会成本
Intercom 是一家极具创新精神的公司,我们的高级领导层非常善于洞察哪些趋势将在市场上掀起波澜。 但只押注于这一点,只为未来而建设,就像做空现在一样,因此会带来机会成本。 在Intercom,我们可能在电子邮件和电话方面遇到了这个问题——多年来我们一直坚信这些渠道正在消亡,只是年复一年地意识到它们根本没有萎缩。 当你思考未来趋势时,我发现这是一个有用的心理模型——如果你继续错误,你会做空现在并愿意支付溢价吗?
2. 每个开发者的工具箱中都需要有人工智能
当我们开发 Fin 时,我们的人工智能团队是使其发挥作用的基础,我们作为一个产品团队无法做到这一点。 然而,随着时间的推移,我们的产品团队直接将越来越多的优秀功能内置到该系统中。 最初的推动可能需要专业化,但尽快向您的组织公开人工智能非常重要。 另一位工程师与我分享了这个轶事——早在 2008 年,公司就有整个团队进行“移动设计”。 仅仅几年后,它就成为每个人工作的一部分。
3. 单体架构可以很好地扩展,提供可靠的部署安全性以及对开发人员体验和可观察性的高杠杆作用
多年来,Intercom Rails 整体的扩展效果一直让我感到惊讶。 出色的工程决策、保持简单、我们唯一的开发人员经验团队拥有的巨大影响力以及坚持经过验证的云技术帮助我们很好地实现了增长。
“Monolith 使我们能够快速、频繁地交付产品”
Monolith 还使我们能够非常快速、频繁地交付(通过诸如快速回滚或快速 CI 之类的事情)。 相比之下,我们发现我们拥有的一些服务使用起来很痛苦——团队必须通过维护自己的依赖项、部署管道或基础设施更新来放慢速度。 我从未在专业的、大规模的微服务架构中工作过,但迫不及待地想了解那里的权衡。
4. 发货频率至关重要。 这是你的心跳
您可能不会将其运送给客户,但总有一种方法可以安全地运送到生产环境。 如果找不到,请继续寻找。 它可以锻炼肌肉,以便在必要时进一步加速,并防止你在文化上失去耐心。 展示进展情况,最好是在全公司范围内定期进行演示。
5. 创建大量的系统模型和心智模型,并应用不同的抽象层
从不同角度看待同一问题确实可以扩展您的视野并建立一致。 在 Intercom,我了解到最好的会议是在有人拿起记号笔时开始的。 系统模型,当场创建,在你说话时进行调整和演变——所有这些都确实有助于加深你对问题、其复杂性和依赖性的理解。
“共享心智模型对于快速行动非常有用”
把它们写下来,在下次谈话中展示它们,询问别人的心智模型。 与您的合作伙伴和利益相关者一起完成这项工作可以加快您的协作速度并消除不一致。 共享心智模型对于快速行动非常有用。
6. 毫无借口地拥有并了解您的数据
过去,我有很多借口来理解产品数据,而没有数据分析师的帮助来制定查询和分析技术。 自从 ChatGPT 以来,我对自己就没有怜悯之心。 在没有专门分析师的情况下,我可以驾驭我的产品空间的质量和信心显着提高,我希望每个人至少现在都可以做到这一点。
7. 数据管理不断发展、痛苦,而且很难找到灵丹妙药
我们拥有一个相对灵活、应用广泛的数据平台。 这是反馈量最多的产品领域。 但要在这个领域产生影响是非常困难的。 市场正在快速发展,出现了 ETL、反向 ETL、点集成、CDP 等新方法。 您的客户群将分布在多种不同的“管理数据的最佳方式”中。
“要看到数据管理方面发生有意义的变化和改进,关键在于策略和一致性”
正因为如此,从来没有一个问题——它总是一长串问题,在某些方面相似但又不同。 要看到数据管理方面发生有意义的变化和改进,关键在于策略和一致性。 到处进行小额投资很少能奏效。
8. 数据集成越深入,就会变得越复杂
我学会了永远不要低估跨系统集成。 从远处看,它们总是听起来相对容易 - 如果这样的话,将系统 A 中的对象与系统 B 中的相同对象同步。但是你越接近那里,你发现的差异就越多。 细微差别、API 速率限制、竞争条件、重试和缺乏幂等性,以及更多角度。 细节决定成败,您的客户试图通过这些集成实现的工作通常相似,但从根本上来说是独一无二的。 集成越深入,就越复杂,不要低估它。
9. 构建易于采用的集成可以消除摩擦,但会减少 TAM。
最易于使用的集成是核心功能之上的抽象层(例如 API 或 iPaaS 块)。 它们消除了很多摩擦,通常开箱即用。 多年来我意识到,构建广泛采用的集成非常困难,因为每家公司都有独特的需求、设置和需要应对的内部 IT 混乱。
构建这些抽象使其更容易采用,但显着减少了 TAM,与更复杂但更强大的版本相比,最终使用它们的客户数量会减少。
10.人工智能将从根本上改变我们构建集成的方式
然而,我相信对于确定性的大批量集成和不可预测的动态集成来说,它的表现会有所不同。 副驾驶体验将极大地加速用户使用 Zapier 或 Workato 等 iPaaS 工具的速度,同时创建可重复、大容量、可预测的流程自动化。
“人工智能代理将消除在人类触发的活动中构建任何集成的需要”
这将加速它们的发展,同时保持这些集成当今的可靠性和最终的确定性行为。 人工智能代理可以推理使用哪些工具并适应动态和不可预测的输入,这将消除在人类触发的活动(例如报告、数据探索或寻求帮助)中构建任何集成(API 功能之外)的需要。
终生的教训
在 Intercom 的工作经历将始终影响我在余下的职业生涯中处理工程和管理的方式。 我想对所有与我一起工作的人表示衷心的感谢,多年来他们帮助我形成了这些教训。 Intercom 是一家真正特别的公司。
如果您想跟上库巴的写作,您可以在这里看到更多他对工程管理的思考。