深入了解 Mixpanel 的产品之旅 | Vijay Iyengar

Vijay 2023-01-26

许多企业在取得成功后,极易陷入盲目扩张的陷阱。本文基于 Mixpanel 产品负责人 Vijay Iyengar 的深度复盘,揭示了产品探索中的核心洞见。文章指出,企业进军新业务时最致命的错误是抽调核心人员,这会让护城河面临被颠覆的风险,明智之举应是用核心利润而非人力去投资新项目。此外,作者还分享了从工程师转型产品领导的独特视角,强调需克服“习惯性拒绝”,先尝试让新想法行得通。Mixpanel 从盲目扩张导致高流失,到艰难收缩回归核心的真实经历,为所有思考资源分配与产品专注度的团队敲响了警钟。


深入了解 Mixpanel 的产品之旅 | Vijay Iyengar


核心产品的投资陷阱

Vijay Iyengar: 对我们当时来说,问题在于我们把人员从核心产品的投入中抽调出去,去做那些其他事情。我们调动了人员,对吧?其中的陷阱在于,你会让自己的核心产品面临被颠覆的风险,因为其他人可能会在核心领域投入超过你。因此,如果你是某种核心产品的领导者,我们这里的经验教训是,你应该继续在核心领域投入超过其他所有人,然后将从该核心领域产生的利润投入到下一个冒险项目中。投入利润而不是人员,或者风险投资,这大概是利润的净现值(net present value)之类的东西。但不要把人员从核心领域抽调去做这些其他事情,因为那样你最终会分散精力。

嘉宾介绍

Lenny: 欢迎来到 Lenny’s Podcast,在这里我采访世界一流的产品领袖和增长专家,帮助你在构建和增长产品的技艺上变得更出色。今天的嘉宾是 Vijay Iyengar。Vijay 目前是 Mixpanel 的产品负责人。他的职业轨迹其实和我非常相似,最初在 Amazon 做工程实习生。然后他在 Uber 做了一段时间的工程师,之后成为 Mixpanel 的工程经理。但他随后从工程经理转为了产品总监,现在是 Mixpanel 的产品负责人。你很少看到有人从工程领导角色直接转任产品总监,所以听到他从工程经验中汲取了什么并带入他的产品领导方法中,真的非常有趣。但我们把大部分时间花在了讨论他从 Mixpanel 的发展历程中学到了什么,他们从一个简单的产品起步,然后扩展到许多不同的产品,为客户解决许多问题,接着又做出了艰难的决定,缩减回仅专注于一个核心的分析产品。我们讨论了他们为什么做出这个选择,关于什么时候适合扩展新产品、什么时候可能不适合扩展,他们学到了什么,以及他们是如何从组织层面处理这个问题的。我们还讨论了 Mixpanel 如何构建产品,他们如何思考产品理念,如何确定优先级,以及你在为自己产品设置分析时可能做错了什么。Vijay,欢迎来到播客。

Vijay Iyengar: 谢谢,Lenny。很高兴来到这里。我是这个播客的超级粉丝,很高兴能做点贡献。

从工程师到产品经理的转变

Lenny: 我肯定想谈谈 Mixpanel 作为产品团队和产品本身的旅程。但在开始之前,作为一名工程师,你做了很长时间的工程师,然后成为了一名产品领导者,在领导力、产品和业务的思考方式上,有什么是你必须反学习的吗?

Vijay Iyengar: 在工程领域待了一段时间后,你会产生一种倾向,即对新想法立刻回应“不”。我认为从工程的角度来看,这是因为你花了大量时间构建和维护那些可能只考虑了一半或者没有真正结果的想法,你只是感受到了这些想法所带来的全部维护成本。因此你形成了伤疤组织,对新的想法产生了一种免疫反应,说“不”,而且是非常坚决的“不”,比如“不,我们绝对不会做”。我认为在转向产品时我必须改掉这个习惯,因为你会从组织中的更多地方获得想法,而想法在发挥能动性时是很脆弱的,一个坚决的“不”真的可能会扼杀你本可以探索的整个方向。它们可能是影响范围极广且具有高影响力的。所以,我发现的一件事是,如果你最终必须达到“不”,最好的方法就是尝试让它行得通。开始尝试让“是”行得通,并记录你是如何尝试让“是”行得通的。并且要真诚地去做,而不是把它当作只是在考虑一个备选方案的练习。尝试真诚地去做,并在尝试让“是”行得通之后去了解。所以这就是我一直试图运用我的工程师解决问题的大脑去做的事情,而不是去想它可能怎么行不通然后说“不”。

Lenny: 回顾过去,这是你建议工程师去努力改进的一点吗?我知道作为产品经理,就像,哦,我喜欢工程师说“是”。这太棒了。我其实想帮助每个人学会说“是”。但作为一名工程师,显然这通常是一个挑战。对于那些目前是工程师、可能希望在这方面有所改进,或者在被问到新事情时改变他们对说“是”和说“不”的思考方式的人,你有什么建议吗?

Vijay Iyengar: 我认为我合作过的一些最优秀的工程师其实已经在这样做了,但他们能够在脑海中平衡这两者。所以,归根结底这种平衡,你只想要值班时,因为各种糟糕的想法在凌晨3点被叫醒三次,第二天早上你醒来参加站会,有人会说,“嘿,我们能做这个新东西吗?”你多少必须要有那种同理心去这样做。所以,是的,我认为这个练习就是花10分钟考虑这个想法,真诚地思考我们怎样才能让它行得通。如果在10分钟结束时,发现这是徒劳的并且没有路径,那么说“不”也是可以的。在很多情况下,说“不”其实是一个好本能。但是,是的,我会向工程师推荐这一点。如果我能早点学到这个,我的职业生涯肯定会更好。

Mixpanel 的产品之旅

Lenny: 我想花点时间谈谈 Mixpanel 的产品之旅。这是一段有趣的过山车。这家公司存在多少年了?从2010年开始?2009年?

Vijay Iyengar: 2009年,是的。

Lenny: 我知道早年间它起步时是一个相当简单的产品分析(product analytics)产品。随后,就像有野心的公司会做的那样,你们开始寻找更多问题去解决,从客户那里寻找更多问题去解决。据我所知,你们在 Mixpanel 产品套件中增加了很多产品。但我知道在规模化时遇到了一些挑战,可能产品的粘性也没有你们期望的那么高。

我了解到最近你们又回到了单一的这款核心分析产品上。所以我很想听听这段旅程,整个过程是怎样的,作为产品负责人和作为一家公司,你们在规模化、扩张、试图解决许多问题,然后又回归到一个核心直接的问题上,学到了什么。

早期成功与边界扩张

Vijay Iyengar: Mixpanel 成立于2009年,旨在为 EPD 团队提供产品分析。我认为早期它取得了很大的成功,因为它构建了这个名为 Arb 的内部数据库,代表任意分段。这是必要的,因为事件数据(events data)——产品分析的燃料——比人们收集的大多数其他类型的数据要大几个数量级,所以你需要一种专门的方法来处理它。我认为这推动了第一波爆发式增长,因为产品分析在当时真的是一个迫切的问题。人们疯狂地发布移动应用,他们需要一个能够规模化的解决方案,这在一段时间内算是 Mixpanel 的一种持久模式。

我认为因为我们的 SDK 安装在了如此多的应用中,而且我们拥有这个真正可扩展的事件收集和分析界面,扩展到利用相同技术的几个相邻领域就显得很自然了。所以第一个是消息传递(messaging),能够向用户发送定向消息,这是一件相当自然的事,你可能会想做,特别是如果你已经安装了 SDK 的话。我们添加的另一个方面是数据基础设施(data infrastructure),试图成为公司中数据的唯一真实来源(single source of truth)。

流失危机与艰难抉择

最终发生的是,到2018年,我们遇到了一个巨大的流失(churn)问题。我们的核心产品大约有 40% 的流失率,是收入流失(revenue churn)。当我们深入调查时,并不是人们不再需要产品分析而流失。他们有这个需求。他们只是流失到了竞争对手那里,因为我们在核心产品所具备的功能方面没有达到市场水平。当我们深挖原因时,仅仅是因为我们有 50% 的工程团队在跨三个领域构建产品:产品分析、消息传递和数据工程相关的技术。

我们的工程团队被拉扯得太薄了,无法解决所有这些核心功能上的差距。因此我们在当时做出了一个非常艰难的决定。我们对另外两个类别坚决说不,并决定将整个工程团队集中在弥补产品分析的差距并在那里进行创新。从流程的角度来看,我们如何将此落地运营是,我们扔掉了所有的计划和所有执行,以及到目前为止计划要做的工作,我们做了一件非常简单的事。我们拿来了客户成功和销售团队多年来煞费苦心收集的所有流失原因,按类别分组,这大概就是我们构建的产品功能,按 ARR 降序排列,取前 10 件事作为我们的路线图,只是让每个工程师直接接触客户,并给他们一个任务池去着手处理,我想这违背了外面大约一百万条产品最佳实践。

但我认为考虑到当时的背景,我们需要优化速度,而当你在想做什么和专注什么上有极端的清晰度时,速度就会到来。所以我们在那个时候真的只是在优化速度。所以在第一年我们移动得非常快,那一年我们交付了大概一百个功能,并弥补了很多差距。再次声明,这些都是虚荣指标(vanity metrics)。衡量功能数量并不意味着什么。

Lenny: 顺便问一下,这是哪一年?

Vijay Iyengar: 这是2018年到2019年。

Lenny: 明白了。

Vijay Iyengar: 是的。所以我们非常快地交付了所有这些功能,并立即看到了赢单率(win rate)和留存率(retention)的改善。但开始出现的一个裂痕是,我们当时忽视了产品的整体设计(holistic design),对吧?如果你以这么快的速度交付功能,你就没有时间停下来思考,这东西该放在哪里,它如何融入我们整体的系统架构(system architecture)?开始发生的是,我们在某些功能上遇到了边际收益递减(diminishing returns)。不考虑整体设计和一致性意味着每个功能的影响范围都很低。你必须在我们产品所在的每个部分重新构建它。所以在当时我们做出了……我们启动了第二条非常以设计为主导的工作流。我认为这也恰好与我们采用 Figma 的时间相吻合,这赋予了设计在公司决策桌上一个非常广泛的席位,我们只是设定了这个目标,让设计成为我们的关键差异化因素之一。

设计驱动与系统架构

所以,这个设计驱动的举措真的是关于我们如何思考我们产品的系统架构?Mixpanel 的关键构建块(building blocks)是什么?它们需要放在哪里?我们能拥有多少的构建块,这是一个非常重要的步骤?然后用户将如何发现它们以及它们如何相互关联?但我认为这种认识源于这样一个事实,即许多伟大的产品因其架构而胜败。例如 Notion,它那种块中的页面架构是如此强大,你可以在这些核心构建块上挂载如此多的功能,这种方式对那些功能的触达和发现具有如此高的影响。

无论如何,我们与……并行做了这件事,并继续在核心问题上死磕。所以那个阶段的最终结果,也就是从2018年到大概2021年底、2022年,是我们的留存率从大约 60% 上升到了 90%,我们的 NPS 从 16 上升到了 50。所以我认为,是的,这里面有很多值得拆解的东西,但重新聚焦于核心确实帮助我们实现了这些结果。

战略复盘

Lenny: 明白了。是的。我对此有很多问题。太有意思了。那么,你们经历的按潜在 ARR 进行排序的那个阶段,是扩张到多个产品的阶段,还是在我们决定专注于分析并全身心投入之后的阶段?

Vijay Iyengar: 哦,那是在专注于分析之后的。

Lenny: 好的。

Vijay Iyengar: 是的。是的。

Lenny: 你的意思是,你们有一条工作流只是去构建所有缺失的、导致客户流失的功能,同时并行还有一条线,是让我们去构建这个产品,使得它所有部分都能很好地连接和协同工作,并且在长期来看是经过深思熟虑的?

Vijay Iyengar: 首先,我可能让这听起来好像那些任务池就只是功能。我们确实采取了步骤将它们转化为问题,并且很清晰地将工程师直接面对有那些问题的客户,然后发明一个解决方案来解决它们。所以我的意思是,宽泛地说其中涉及了功能,但它们中很多都是我们需要解决的核心问题。

Lenny: 第一种方法太有趣了。这有点像,是的,如果我们专注于这些功能,我们会赚更多的钱。按照你的观点,它最终变成了一堆功能和产品,可能彼此之间并没有产生协同效应。回想起来,至少在一段时间内,那样做是个好主意吗?

Vijay Iyengar: 这在很大程度上取决于你的具体情境。在竞争非常激烈的情境下,如果客户需要一些市场已经验证过的必备功能,你需要优先考虑速度,而不是其他任何东西。但这是一种很快就会失去效用的方法,我们在那个阶段之后相对较快地就摒弃了这种方法。我其实想说,设计驱动的阶段是下一个阶段,在这个阶段,情况变成了,好吧,我们不再在必备功能上失血了,但我们想打造一个整体的产品,在功能上具有高触达率、高影响力,并且确实是可用的。所以我认为这是一个必要的后续阶段。显然,根据你的具体情况和竞争动态,你可以用不同的顺序来排列它们,但我认为当时的正确决定就是……有点像我们刚才说的待命状态,当你遇到麻烦时,你必须先摆脱麻烦。你不能在房子着火的时候去修剪草坪。你得先把火扑灭,然后再处理其他所有事情。

Lenny: 是的。

Vijay Iyengar: 所以,这大概就是我们采取的方法。

Lenny: 在第一条线中,你们发布的某个功能或产品有什么例子吗?然后在设计主导的方法中产生的,如果有想到的话,又有什么例子呢?

Vijay Iyengar: 我想在第一条线里,天哪,有太多只是核心的东西了。我们当时没有一个好的分群(cohorts)产品,仅仅是能够创建行为分群用户,并能够从我们构建的任何报告中创建它们,对吧?我想,我的意思是,能够做到这一点在产品分析中只是必备功能。所以,那是我们最早构建的东西之一,而且相当明显。还有很多其他东西,在更高级的漏斗分析类型、流以及真正交互式的可视化方面。

我认为在设计主导的阶段,我认为最大的事情是可视化的一致性,以及让我们的图表在整个产品中以一致的方式变得可交互。因此这促成了两件事。一是每次我们添加新的可视化,或者对可视化进行新的增强,或者在某个报告中如何排序,它都会立刻应用到所有地方。所以,仅仅是我们添加的所有东西的触达率都成倍增加了。另一件事是它只是让产品更易于使用,让我们能够添加深色模式。所以,它让我们的可视化真正令人惊艳,并且非常容易看出要点是什么。然后我们添加的每一个新的可视化都继承了所有这些好处。

从功能堆砌到设计主导的转变

Lenny: 我试图想象身处一家经历这个阶段的公司,就是“嘿,我们就是要构建一堆我们知道我们需要的东西”。听起来感觉就像,“哦,是的,然后我们要让它看起来很棒,并且连接和协同工作得很好。”我想这并不是计划好的,我也想象要让大家放慢仅仅构建更多产品和功能的速度,或者把它推向一个一切都会变得合理的方向,这并不容易。你能谈谈这个过程是什么吗,从我们只是要勾选完所有这些清单上的东西,转变为让我们把眼光放长远,让我们慢下来,让我们花大量时间在设计上,这有多难?

Vijay Iyengar: 在内部,这绝对比我描述的要混乱得多。其中一个关键节点是,当我们拥有这支非常有才华的设计团队时,我们却把他们安排在这些非常战术性的项目上,坦白说,那是非常工程主导的,对吧?而设计通常会在最后介入,并被要求说,“嘿,你能把这个弄得好看点,给它加点像素吗?”让你的设计团队做这些简直太浪费了。但与此同时,节奏是如此之高,以至于他们没有时间喘口气去做任何其他事情。所以实际上有这样一刻,我当时是工程经理,也是其中的一部分。

然后我和当时的业务经理(BM)以及设计主管开了一个会,我们说,“嘿,接下来的三个月的项目我们实际上可以不涉及任何设计,”这是一种有点争议的说法,“但我们这样做是为了让你能带着一组设计师花三个月的时间,去思考产品的系统架构,我们会等这完成之后再做任何可能影响架构的架构性工作。”我认为这给了设计师一点喘息的空间去做那件事,只是把他们从战术性的救火中稍微分离出来。因为实际发生的情况是,我们会走到项目尾声,引入设计,然后他们会利用每个项目作为机会挤进去,比如,哦,我们可以在这里简化一下。而这只是在项目尾声导致范围失控(blow up scope)的经典方式,因为没有专门留给设计主导项目的空间。我认为这算是一个关键的摩擦点,我们最终不得不将它们稍微解耦,然后重新集结并说,“好的,现在我们来看看我们的策略是什么”,并且纯粹为了改善我们用户体验的一致性、触达深度而接手项目。

扩展产品线的时机与教训

Lenny: 另外,回顾你经历的添加一堆产品来解决更多客户问题的过程,这是每个创始人和产品团队都会思考的事情,我们什么时候应该添加新的产品线?我们什么时候应该超越核心业务进行扩展?我很好奇你从中得出的教训是什么,当涉及到什么时候是扩展并考虑新产品、第三个产品、第四个产品的时机时,你会给其他创始人和公司什么建议?

Vijay Iyengar: 我不知道这里是否有一个硬性规定。我也许只能说在我们的情境下,什么是合理的,什么是不合理的。对我们来说当时的问题是,我们把人员从投资核心产品上抽离出来,去做那些其他事情。我们调动了人员,对吧?所以那里的陷阱是,你让自己的核心业务容易受到颠覆,因为其他人可以在那个核心上超过你的投资。所以如果你,你是某个核心产品的领导者,我们这里的教训是,你应该继续在那个核心上投资超过其他所有人,然后将从那个核心产生的利润投资到下一个冒险项目中。投资利润,而不是人员,或者风险投资,这也许是利润的净现值或类似的效果。但不要把人员从核心抽走去处理这些其他事情,因为那样你最终会分心。

另一个方面是,我们接手的那些次要产品都处于它们自己的类别中。这真的很诱人,你经常会被拖拽着意外进入另一个类别,然后你最终会构建这些附加的产品,它们在自己类别中是最好的,对吧?而产品分析的相邻类别是 CDP 或者消息传递或者功能开关之类的,但是没有多少人需要第六好的 CDP,或者第八好的功能开关,或者第十好的消息传递工具。它最终的结果是,加起来会为你的收入贡献 5% 到 10%,不会严重加速你的增长率,然后把工程师从核心产品中抽走。所以那些就是我们所处的环境。我认为,如果你看到你的核心产品向竞争对手流失,而你在其他任何产品上又不是同类最佳的,那么也许是时候重新评估了。然后我在那里要说的最后一件事是,砍掉微小的成功比砍掉其他任何东西都要比你想象的痛苦十倍,而且仅仅是组织上的痛苦。有些团队拥有完整的路线图,这是一个非常痛苦的经历,所以你在启动它们之前必须非常仔细地思考。

Lenny: 这真是一个非常非常有洞察力的建议,让我想到,如果你捆绑了足够好的解决方案,就必须要有某种锚定的租户,即我不会放弃这个东西,如果你有其他东西的话,我会使用第三好的版本。但如果你不是那么有价值和重要,你就无法说服人们去使用某些东西,因为他们在每个类别中都在与最好的竞争。

Vijay Iyengar: 完全正确。是的。

Lenny: 这真的很有趣。我一直在做一个关于不同公司如何进行产品构建的系列,关于产品开发过程和Mixpanel,我有几个想问的问题。

Vijay Iyengar: 当然。

Lenny: 第一个问题就是,你们如何做计划?我知道这是在不断演进的,但你们目前是怎么计划的?你们的计划周期有多长?你们会提前多长时间做详细计划?你们使用OKR吗?也许我们就从这三个小问题开始吧。

产品规划与周期

Vijay Iyengar: 我们有这些正在攻克的未解决的分析问题。对我们来说,就是人们总是想要更强大的功能、更简单的操作、更好的数据可信度、更快的上手速度、更好的协作以及更好的性价比。所以我们很大程度上是围绕这些问题和使命来组建团队的。顺便提一句,其中一些问题之间存在张力。强大和简单之间就存在权衡,对吧?我们希望一个团队能同时拥有这两者,这样他们就被迫去面对这种张力并打破这种权衡。所以我们大致就是这样思考我们的产品团队的,即这些跨职能的EPD团队,每个团队都专注于为客户解决这些长期存在的成对问题,比如我们的核心分析团队专注于那个强大、简单和权衡的问题。在计划方面,运作方式是我们以六个月为时间跨度做计划。我实际上可以谈谈我们最近的计划周期,因为我们刚刚完成它。

Lenny: 好的,那就说吧。

Vijay Iyengar: 基本上,它始于我们的领导团队撰写的一份战略备忘录,基本上就是传达这是公司明年想要去的地方,以及产品团队如何为此做出最大贡献,并确立了这些关键支柱。我们与团队分享了这一点,他们以此结合他们不断获取的关于他们正在解决的问题和客户的定量与定性背景,构思并制定了一系列针对未来六个月的ABET,我认为这在某种程度上类似于OKR,一个ABET的结构是,我们要解决的问题,我们对解决方案的假设,然后是一个制胜计划,一个真正实现目标的计划,以及一种衡量你是否到达目标的方法。

我认为相对于其他做计划的公司,我们做的一件独特的事情是……我认为这通常是一个W型的流程,有战略备忘录,然后团队生成ABET并进行审查,然后他们回去,我进行迭代,然后他们定稿。我们基本上压缩了W型的中间部分,我和我们的设计负责人实际上花时间与每个团队一起对ABET进行构思,并参与解决方案的探索过程,进入头脑风暴环节,并自己添加 fig must keys,附上我们对事情的想法,我们这样做是因为我们不是一个庞大的产品团队,我们不会做50件甚至半件事。我们可能会做10到12件事。所以这就足以让我们不用……如果这能让我们和团队之间实现高带宽沟通,我们可以做一些不可扩展的事情。在这个阶段,它最终会变得更加混乱和无结构,因为我们也在里面贡献想法。但到最后,我认为团队离开时会感到对他们的ABET更有信心,因为有更多的思考投入其中,并且从上到下对我们为什么做出某些决定更加一致。所以我认为这是不同的一点。然后我们通过路演来结束这个过程,我们在路演中向公司其他人展示,并获得他们的反馈。

Lenny: 这个过程通常需要多长时间?

Vijay Iyengar: 团队做了几周的准备工作,比如在12月做了两周,然后我们在1月份,也就是1月的前两周,做了一个为期两周的解决方案和构思冲刺。

Lenny: 太棒了。对于每个团队来说,计划的最终结果是什么?他们会交付一份文档,写明这是我们的战略,这是我们的重大ABET,这是我们的路线图吗?你们有没有一个传阅的模板?你们是如何得出一个让人们分享、展示和评论的东西的?

规划产出物与优先级

Vijay Iyengar: 是的,我认为基本上有三个相互关联的产出物。首先,我们使用Notion,所以我们在Notion中有一个名为ABET的数据库,数据库中的每一页都是一个ABET。它有一个模板,是的。它大致就是我描述的内容,外加几个更多的部分:我们在解决什么问题?需求的证据是什么?这个问题的业务影响是什么?我们如何知道自己成功了?然后解决方案背后的关键驱动假设是什么?以及一个粗略的路线。然后这与一个演示文稿绑定在一起,它是对内容的简明总结,每个ABET一页幻灯片,然后还与一个更侧重执行的文档绑定,即我们如何排序和分配人员来做这件事并消除依赖关系,这部分由工程团队贡献。所以,我认为这就是联系在一起的三个产出物。

Lenny: 我知道你在优先级排序方面有一些见解和一些强烈的观点。你能谈谈这个,以及你是如何建议你的产品团队进行优先级排序的吗?

优先级排序框架

Vijay Iyengar: 优先级排序中一个非常常见的框架是RICE,即覆盖面、影响力、信心和精力。我认为它简单且相当稳健,这通常是框架的好品质。但是我们观察到的RICE的一个陷阱是,C和E,即信心和精力,往往会导致你过早地降低那些潜在高覆盖面、高影响力ABET,也就是真正创新事物的优先级。我们在去年初的一个团队中遇到了这种情况,我们对所有的想法都进行了RICE打分,很多高覆盖面、高影响力的东西最终排在了底部,因为对于它们来说,信心和精力实在是太模糊了,这对于高覆盖面、高影响力的想法来说通常是正常的。

因此,我们推动团队做的一个练习就是,把忽略C和E的时间拉得比让人舒服的程度更长一点,就只是和工程师、设计师待在同一个房间里,与那些高覆盖面、高影响力的想法共处,并致力于真正尝试解决它们。给它一个公平的机会。你通常会发现,如果花一周时间研究这组想法,你就能在理解信心和精力方面走得很远。你可能找到一种信心更高、精力更低的方法来实现它们。然后再把C和E加回来,像往常一样使用RICE。这样做的目标是最终得到一个合理的组合,包括创新性押注、渐进式押注,以及你需要解决的技术债务或产品债务。

Lenny: 我个人通常就直接去掉C。我觉得它没那么有说服力。你们是在Google Sheet里做这个吗?还是在Notion里用?你实际建议团队如何进行这种优先级排序,还是直接靠肉眼估算?

Vijay Iyengar: 我对团队使用的具体工具没有太多执念。我认为这通常是团队内部的练习,但大多数团队使用Notion,用里面简单的表格或数据库——这对这个工作来说就很好用。我认为优先级排序中另一个总是很棘手的问题是估算。每个工程师都会告诉你估算是谎言,如果你说需要八周,那就会花八个月。但我认为估算的核心问题在于,你被要求在弄清楚事情到底是什么之前就去估算它,这只是一种很奇怪的被期望产出的结果。我发现在 Basecamp 的《Shape Up》这本书中有一个非常有趣的方法,即投入意愿(appetite)优于估算的理念,你不把估算作为规划的产出,而是把时间盒(time box)或投入意愿作为输入,然后你说:“我们想解决X问题,我们愿意投入六周来解决这个问题。”

估算与时间盒

这里显而易见的问题是你如何选择那个时间窗口?这似乎很随意。因此 Basecamp 的人建议所有事情都只选六周,并且他们非常严格地认为,如果你不能把某件事的范围敲定在六周内,那就是你做错了。我认为……如果你在公司里建立了一种节奏,它是可以起作用的并且有很多好处,但我发现一种更好的方法是,选择一个听起来合理的投入意愿,然后只探索围绕它的两到三个选项。选择六周,然后说:“如果我们只有四周或八周,我们会做哪些不同的调整?”你会自然而然地找到成本和影响力的有效前沿(efficient frontier),然后就此达成一致。重要的是,你要在这个时间段之后进行检查并说:“是否有任何新信息表明我们应该继续?我们是否发现了最大的风险,我们现在是不是只是处于事情的长尾阶段?”并且对此保持诚实。我认为无论你使用什么框架,这都很重要。

Lenny: 我非常喜欢这个。那么,这就是你们实际运作的方式吗,你创建一个时间盒,我们有四周时间做这个项目,完成什么就发布什么,没完成的就推迟?

Vijay Iyengar: 我们在工程团队是这样运作的,特别是在基础设施方面,因为我们有一系列会永远做下去的项目,而且花的时间越长,它花费的时间就会越长。所以我们做了不少这样的练习。我想说在偏工程的项目上比其他项目用得更多,但我们也开始在产品端更多地采用它。我们在产品端采取的主要练习更多是考虑,在不同的时间盒下你会做哪些不同的调整?

Lenny: 只是一个思维练习。

Vijay Iyengar: 是的,这是一个很好的思维练习。然后它迫使每个人真正对需求进行打分。关键的、最好有的,这样分类固然好,但真正的问题是,如果两周后你将被抽调去做完全不同的事情,那么解决核心问题的完整方案是什么。它迫使你首先剥离出问题的核心,而不是仅仅做那些围绕在它周围的事情。

Lenny: 这很酷。我真的很喜欢。我自己也这样做过。我很好奇是否真的有人完全按照 Shape Up 流程来做,还是说就像“我们会在六周内发布任何准备好的东西”,而实际上并没有具体的截止日期,也没有需要以特定方式发布的具体产品目标。

Vijay Iyengar: 是的。嗯,我认为 Shape Up 流程,如果你全程贯彻的话。他们的做法是……他们的理念是你实际上可以在六周的时间跨度内进行预测。所以你可以直接把范围敲定到一个完整的程度。它必须是完整的。它不能是六周后像里程碑一那样半成品的东西。我认为那种严谨性……他们在所有方面应用的严谨性,你需要全程做到。你不能半途而废地采用这个流程。我认为这就是挑战所在。否则,最终的结果就是人们发布了里程碑一然后继续前进,而这并不是完整的产品。

贴近客户

Lenny: 有道理。关于你们如何构建产品,我还有几个问题。你提到你们有一种独特的方法让产品团队贴近客户。我很好奇你在那方面学到了什么,你觉得什么是有帮助的,就是那种让产品团队贴近客户的方法。

Vijay Iyengar: 我认为这是我们在 Mixpanel 很早就投入做的事情之一。实际上大概在那个时期,2018年,当我们重新聚焦于核心产品时,我们的一位销售工程师 Aaron 构建了一个自动化流程,他将我们从客户成功和销售团队那里得到的所有的客户差距,通过管道传输到 Slack 中,形成一个信息流。这创造出了一种文化,所有的工程师和设计师都可以消费这个原始的客户直接反馈流,没有把关人,没有访问流程,没有预先聚合,对吧?我认为这能扩展得很远。以我们产品团队的规模和客户触达范围,我们收到的反馈还没有多到一个人每天无法在20分钟内读完的程度。在工程团队的四五年里,我每天都会阅读我们收到的所有差距反馈,许多工程师也会这样做。

它所促成的其中一个仪式是,我们会发现工程师会进入那个频道,用邮件表情符号回复一条消息,这意味着我要给这个客户发邮件了解更多信息,对吧?然后他们就会直接给客户发邮件说:“嘿,我是构建这个功能的工程师。我看到你说了这个具体的情况。你能告诉我更多吗?我很想了解。”他们询问五个为什么,然后自己去改进产品。我认为这种文化非常重要,它只是赋予了所有工程师和设计师一点像 PM 一样思考的能力,我认为这也稍微减轻了 PM 作为所有这些信息把关人的负担。

然后随着时间的推移,随着我们数据栈的发展,我们对其进行了相当大的改进。所以,我们现在不仅接收客户请求,还接收发布在 Twitter 上的内容、NPS 调查反馈以及我们在竞争性交易中的输赢记录,并将它们同时传输到 Slack 和 Notion 中,这样我们既可以获得实时信息流,然后又可以进行相应的排序、聚合和标记。但这个过程的关键产物是它全是公开的。在这个过程背后没有把关人。

Lenny: 这听起来既令人惊叹又很疯狂。你们现在还允许工程师直接给客户发邮件询问他们关于这些东西的问题吗,还是随着你们的成长这变得更难做到了?

Vijay Iyengar: 哦不,我们仍然允许这样做。是的。

Lenny: 哇,那太棒了。

Vijay Iyengar:

数据栈的价值与工作流

Vijay Iyengar: 实际上,关于技术栈,确切地说是数据栈,一个好处是……基本上,所有这些信息流都会落入我们的数据仓库,也就是BigQuery。从那里开始,它们通过我们使用的一个名为Census的反向CTL工具,被推送到Slack和Notion来生成通知代码。但这样做的一个好处是,我们可以用“客户是哪家”、“ARR(年度经常性收入)是多少”、“客户成功经理(CSM)是谁”以及所有其他联系信息来丰富这些信息流。因此,通常不会出现工程师盲目联系客户,却不告诉CSM这是个百万美元大单的情况。核心思路就是让他们掌握这些上下文,他们就能标记对的人并做出正确的决定。

Lenny: 我非常好奇这些事情是如何确定优先级的,以及产品经理(PM)是如何参与其中的,不过我们不需要在这方面深究。这个流程真的很酷,我以前没见过。我们的工程师以前就是直接给客户发邮件,去挖掘问题和痛点。

平衡反馈与响应

Vijay Iyengar: 当然,你刚才指出的陷阱是,你不能对所有事情都一直保持反应。可以肯定的是,如果你发布了一个重新设计的版本,在最初的两周里,会有大量类似“我讨厌这个,改回去”的反馈。我认为这是一种你必须建立的组织肌肉,去平衡这种反应,这也是我们不得不一直练习去做的事情,但我认为这种权衡是值得的。

团队协作工具栈

Lenny: 太棒了。关于这方面最后一个问题,你能谈谈你们使用的工具吗,就是你们用来管理产品团队协作、沟通、笔记和文档的SaaS产品。你提到了Notion作为一个例子。

Vijay Iyengar: 我认为我们的技术栈如今其实相当标准。我们有Slack、Zoom用于沟通,Notion用于文档和任何长篇写作,它是一个[听不清]的数据库,还有Figma和FigJam用于设计和白板。我认为真正有趣的是我们的数据栈以及我们从中获得的生产力。我稍微接触过一点,基本上我们所有的数据都会从我们拥有的所有系统中进行EPL处理,落入BigQuery,进行连接和建模,然后通过Census推送到我们技术栈中的所有其他工具。我认为这在生产力上是一个巨大的解锁,因为你可以用非常少的代码构建内部工具。如果你会写SQL,你基本上就能构建一个内部工具,并将信息推送到需要它的团队。因此,我认为这解锁了很多类似以可靠且无代码的方式自动化定性信号之类的事情。如果有人说,“哦,我能在这里加上ARR吗?”当然可以,这只需要两秒钟。所以,我认为这个数据栈对我们来说是一个巨大的生产力解锁。

Lenny: 太棒了。你们在网上分享过这些吗,就是展示你们构建的这个技术栈?

Vijay Iyengar: 我们有几篇博客文章讨论了我们的技术栈,用于……我们将其用于PLG(产品主导增长)基础设施和我们的产品,让销售端定义一个PQL(产品合格线索),并向符合条件的新用户发出提醒,但我们也将其用于内部工具。我们在这个话题上有几篇博客文章。

Lenny: 太好了。我们会跟进一下,并把其中一些内容放到节目笔记中。

Vijay Iyengar: 是的,没问题。

产品分析的常见误区

Lenny: 最后一部分问题,你是世界上在产品分析领域最聪明的人之一,并且负责Mixpanel的产品。我很好奇,你认为人们在为他们的网站、产品或公司搭建产品分析时,最容易犯的错误是什么?

Vijay Iyengar: 这可能有点激进,因为我认为有太多人——

Lenny: 来吧。

Vijay Iyengar: 是的,有太多人仍然在这样做,但我认为最大的错误是使用客户端SDK(client side SDKs)、客户端追踪(client side tracking)来搭建分析。比如Web和移动端SDK,在你的Web应用或移动应用中放入一个mixpanel.tracksegment.track。之所以说这有点激进,是因为对许多人来说,产品分析和SDK追踪是同义词。他们会觉得,“好吧,Mixpanel就意味着SDK,我必须在我的Web和移动应用里放一个SDK。”但这是一个错误,因为我们一次又一次地看到,这会导致糟糕的数据质量,并且很难维护这些数据。Web端的问题在于,仅仅因为应用拦截器和其他不可靠的因素,在JavaScript的世界里,你最终会丢失20%到30%的事件数据,所以它根本无法与你的内部数据库匹配。

然后在移动端有两个问题。首先是你必须为iOS和Android重新实现追踪,因为一般来讲它们是两种不同的语言和两个不同的平台。因此你最终会得到许多在语义上意味着同一件事,但仅仅因为两个平台而变得不同的事件,而且你可能有两个团队在负责这块。第二个问题,我认为甚至更糟,是你有点受制于客户端去更新他们的移动应用,以此来获取包含你最新追踪代码的最新版本。所以如果你想添加新的追踪,它只适用于处于最新版本及以后版本的人。然而,你所有的旧追踪,无论它是坏掉的还是你犯了错误,仍然在野外存在,所以你会不断收到那些旧的、坏掉的事件。

因此,我们推荐的替代方案,也是我们最近看到越来越多客户采用的方案,就是直接从你的服务器而不是客户端追踪事件。这有三个好处。第一,它天然是跨平台的。Web、移动端、电视以及其他任何平台,它们都要经过你的服务器,所以你立刻就能获得100%的覆盖率。第二,它处于你控制的环境中。所以如果你想更新追踪,你可以更新它,并且能覆盖100%的用户。第三点是……我认为这可能有点反直觉,但它是真的,那就是工程师们从服务器追踪事件已经很久了。这叫做日志,对吧?而事件只是里面带有用户ID的日志。所以他们不需要去学习一个新的SDK并处理所有那些事情。他们只需要追踪那些具有一定结构和用户ID的日志。他们就是在追踪事件。所以如果这对开发者来说更容易,它就会以更高的质量被完成。因此,我认为那里真正简单的建议就是,开始从你的服务器而不是客户端追踪事件。如果你以后需要补充只有客户端才有的上下文,你可以稍后再添加,但服务器端应该是默认选项。

数据分析领域的趋势与未来

Lenny: 也许最后的一个问题是,过去几年里,公司在使用分析方面变化最大的是什么?然后你认为分析领域的未来发展方向在哪里?

Vijay Iyengar: 是的,我认为一个巨大的趋势是数据仓库(data warehouse)的兴起。比如Snowflake、BigQuery、Redshift,它们真的非常具有可扩展性,并且它们都使用SQL标准,这导致了围绕它们涌现出了大量工具,使得将数据加载到数据仓库变得非常简单和便宜,同时也让那些专门做这件事的工具将数据从数据仓库中推出来变得很容易。这带来了一些影响。首先是数据仓库成为了你公司所有数据的引力中心。无论是产品营销还是销售数据,它们最终都会落到那里。我认为在今天这个产品主导增长的世界里,a lot of incus filled my bad。但是从数据的角度来看,这意味着所有这些团队都需要基于相同版本的事实来运作,而那个版本的事实就坐在仓库里,只需要被正确地连接起来即可。

事件数据作为通用模型与分析工具的演进

Vijay Iyengar: 关于事物的发展方向,第二点是事件数据(events data),即在特定时间用户执行特定操作的时间序列,它是分析的通用数据模型。原因在于,客户的每一个行为、每一次互动,无论是与销售团队比如 gong 通话,还是与营销团队比如点击了某个链接或查看了营销文章,或者与产品之间更广为人知的互动,这些全都是事件。它们都可以被建模为事件。这种方式非常细粒度,作为理解人们行为的一种方式也非常直观。它真的非常强大,因为通常你会想询问关于事件序列的问题,对吧?哪个用户在我的定价页面上花了这么多时间,然后又查看了三篇开发者文档?这很可能就是我想去接触的用户。很多事情都可以基于此进行建模。

因此我认为,数据仓库正在成为所有这些数据的装卸区,这些数据可以很容易地被建模为事件,但数据仓库并不是一个非常好的事件分析工具,因为SQL是为行、表和连接优化的,而不是为事件、事件序列和事件分群优化的。所以我们花了很多时间思考的问题之一是,如何将数据仓库中那些丰富、可信、全面的数据集,提取到一个从UI到底层数据模型都为事件优化过的工具中,因为这将解锁对人们已经拥有并且信任的数据集的非常快速直观的探索。所以,我认为这是我们感到兴奋的重大趋势之一,也是我们所看到的未来。

Mixpanel 在数据生态中的定位

Lenny: 有意思。你认为 Mixpanel 处于帮助人们做到这一点的有利位置吗?你是这么看这个问题的吗,这是像你们这样的公司将帮助人们解决的问题,还是说这是每个人都得自己摸索的事情,或者会不会有一大类全新的初创公司涌现,帮助他们理清数据仓库里的乱局?

Vijay Iyengar: 不,分析领域总是有新的初创公司加入。从来不会无聊。是的,我认为这是我们希望解决的问题,因为分析的好坏完全取决于数据。如果人们已经在仓库中收集了很好的数据,我们的意思是,我们与仓库的集成做得非常好,那么我们就能获取那些好数据。我们越来越看到,像在逆向ETL(reverse ETL)阶段的公司,比如 Census 和 Hightouch,实际上是在数据仓库之上重新发明了 CDP,重新发明了像 Segment 这样的数据移动工具。所以我们在这方面的策略就是加强与这些工具的集成。我们已经看到巨大的增长,人们将数据仓库作为事件数据的来源,不在任何地方添加 SDK 跟踪,只是说,“我这里已经有事件数据了。我信任它们所有。它们来自我业务的所有部分。为什么我不能像分析用户行为一样,轻松地对我的支持工单和 gong 通话进行分析呢。”所以我认为这是我们所看到的,并且正在投资的事情。

闪电问答

Lenny: 太棒了。在我们进入非常令人兴奋的闪电问答之前,你还有什么想分享的吗?

Vijay Iyengar: 是的,我们开场时谈到了从工程到产品的转变,我认为在我的职业生涯中,无论是在工程方面还是产品方面,非常有效的一点就是采用那种产品思维,更贴近客户,消费客户上下文的原始信息,抓住每一个与他们交谈的机会。我真的非常高兴能看到像这个播客、你的 newsletter 以及其他让工程师也能培养那种产品思维并更贴近客户的论坛,因为我认为从长远来看,这只意味着以越来越低的价格提供更好的产品和服务,这就是创新。所以,我非常高兴能在世界上看到更多这样的事情。

Lenny: 说得好。话虽如此,我们已经到了非常非常令人兴奋的闪电问答环节。我有六个简短的问题要问你。我只会过得很快。脑子里想到什么就分享什么,我们看看情况如何。听起来不错吗?

Vijay Iyengar: 当然。开始吧。

Lenny: 好的。你最推荐给其他人的几本书是什么?

Vijay Iyengar: 从商业书籍的角度来看,有一本 Eliyahu Goldratt 写的叫《目标》(The Goal)的书。这是一本有点老的书,但我喜欢它,因为它是用这种快节奏的惊悚模式写成的。它就像一本小说,但它是关于约束理论这个想法的,即找到系统中的约束以及如何消除它们来提高生产力。所以,我发现它读起来很有趣,也非常有启发性。我向大家推荐的另外一本非技术书籍,特别是对住在旧金山的人来说,是 Gary Kamiya 写的《Cool Gray City of Love》,他是一位长期的旧金山专栏作家。这本书深入探讨了旧金山的历史、社区,甚至地理,通过读那本书,我发现了城市里许多小角落,所以我把它推荐给住在旧金山的人。

Lenny: 除了这个播客,你最喜欢的一个其他播客是什么?

Vijay Iyengar: 这个我说一个非技术类的。所以,我是《白宫风云》(The West Wing)的超级粉丝,所以有一个叫 The West Wing Weekly 的播客,它会深入探讨《白宫风云》的每一集,并请来剧中的演员以及政府官员来谈论每一集,如果你喜欢《白宫风云》的话,听起来非常过瘾。

Lenny: 等等,所以他们回到老剧《白宫风云》,和政治家一起谈论以前的剧集?

Vijay Iyengar: 是的。

Lenny: 很酷。

Vijay Iyengar: 是的。

Lenny: 哇哦。

Vijay Iyengar: 没错。所以那部剧已经完结了。播客也完结了。

Lenny: 哦,好的。

Vijay Iyengar: 你可以在里面听到全部七季的内容,我觉得它是2016年或2015年左右开始的。

Lenny: 明白了。太酷了。你最近真正喜欢的电影或电视剧是什么?

Vijay Iyengar: 我的电视品味相当主流。所以我真的很喜欢《We Crushed》和《人生切割术》(Severance)。这两部是我去年非常喜欢的剧。

Lenny: 太棒了。你在面试别人时喜欢问的最喜欢的一个面试问题是什么?

Vijay Iyengar: 我非常喜欢开放式问题,所以我在行为面试开始时问的问题之一是,给我讲讲你从大学到现在,或者如果是比较初级的候选人,从高中到现在的故事。这里有几个有趣的地方,看看人们在哪些地方花最多时间谈论,在哪些地方不谈,这很有趣,还有他们如何描述这段旅程中的其他人。他们是使用一个标准框架来描述每个人,还是对每个人进行独特的描述?所以,仅仅从这个问题就能引出大量的后续问题。

Lenny: 最后一个问题是,在行业中你最尊敬谁作为思想领袖?

Vijay Iyengar: 我从 Gibson Biddle 和他在 Medium 上的产品策略文章中获得了很大的启发。特别是有一篇关于代理指标(proxy metrics)以及你应该使用的指标形态的文章,我发现他构建框架的方式是一种非常……优雅的方式来同时衡量你的指标的覆盖面和影响力。然后我也是 Coda 的 Shishir 的超级粉丝,特别是他关于[听不清]问题、构建问题框架的文章,以及关于边际流失贡献(marginal churn contribution)的那篇。真的非常有趣。

Lenny: 太棒了。这两位都是这个播客的嘉宾,也是我很喜欢的人。很好的选择。Vijay,这太棒了。非常感谢你加入我。最后两个问题。大家如果想联系你,了解更多你在做什么,可以在网上哪里找到你?然后听众怎样才能帮到你?

联系方式与听众支持

Vijay Iyengar: 我在 Twitter 和 LinkedIn 上都有账号,我想节目备注(show notes)里会有我的用户名。我在上面不是特别活跃,但绝对会查看私信,很乐意在任一平台上与大家建立联系。至于听众怎样才能帮到我,是的,我想说,最终我们在 Mixpanel 是在为产品团队打造一款产品。所以有两件事。如果你在过去四年里没有用过 Mixpanel,我们已经发生了很大的改变,正如我在播客中所描述的那样,所以去看看吧,我很乐意接受任何反馈来帮助我们改进产品。

Lenny: 太棒了,Vijay,非常感谢你。

Vijay Iyengar: 谢谢你,Lenny。这次交流很棒。

结语

Lenny: 非常感谢大家的收听。如果你觉得这期内容有价值,可以在 Apple Podcast、Spotify 或你最喜欢的播客应用上订阅本节目。此外,请考虑为我们打分或留下评论,因为这真的能帮助其他听众发现这个播客。你可以在 lennyspodcast.com 找到往期所有节目,或了解更多关于本节目的信息。我们下期再见。

术语表

原文中文
AaronAaron
appetite投入意愿
blow up scope导致范围失控
building blocks构建块
churn流失
cohorts分群
data infrastructure数据基础设施
diminishing returns边际收益递减
efficient frontier有效前沿
Eliyahu GoldrattEliyahu Goldratt
events data事件数据
feature flagging功能开关
Gary KamiyaGary Kamiya
Gibson BiddleGibson Biddle
holistic design整体设计
LennyLenny
marginal churn contribution边际流失贡献(marginal churn contribution)
messaging消息传递
net present value净现值
product analytics产品分析
proxy metrics代理指标(proxy metrics)
retention留存率
revenue churn收入流失
reverse ETL逆向ETL(reverse ETL)
ShishirShishir
show notes节目备注(show notes)
single source of truth唯一真实来源
system architecture系统架构
table stakes必备功能
time box时间盒
vanity metrics虚荣指标
Vijay IyengarVijay Iyengar
win rate赢单率

此文档由 AI 分片翻译(translate_long_document)