欢迎收听 Rework,这是 37signals 推出的播客,主题是如何更好地工作和经营你的企业。我是 Kimberly Rhodes,与我一起的是 37signals 的联合创始人 Jason Freed 和 David Heinemeier Hansen。本周,我们将讨论一个名为“试用自家产品”(dogfooding)的术语,它基本上是指在与客户分享软件之前,使用自己的产品进行测试。我们在 37signals 内部这样做
所以我想我们来聊聊我们为什么要这么做,以及怎么做。让我们先从“为什么”开始。我认为这很简单,但当你们想插话时,为什么我们在公开发布之前要试用自家产品呢?
原因有很多。一个原因是知道接下来要构建什么。正如我们在之前的剧集中讨论过的那样,我们不知道未来六个月的工作内容。我们不知道会是什么。我们知道我们现在正在做什么。然后我们构建它,并在构建它的同时使用它。这特别是针对新产品而言。然后我们会发现,这里缺少一些东西,或者这里不够完善,或者这里已经足够好了,或者我们真的需要这个。然后你构建一些东西,使用它,然后你会想,呃,这并没有真正做到。我们还能做什么?你就是不知道。这就是重点。你一开始并不知道。你对你想去哪里有一个想法。
你开始做,然后在你使用它之前你不知道,然后你摸索它,整个过程。所以有这一点。还有这样一种感觉:这是找出它是否好用的最佳方法。你通常会把它与你已经在做的其他事情进行比较,因为每个人都在做一些事情。
就像我们目前正在制作的,我们已经讨论过,你知道的,我们正在制作一种错误问题跟踪之类的东西。我们以前也用过其他方法。我们用过待办事项列表,用过看板,在 Basecamp 中用过卡片表格。我们以前用过其他方法。每个人都在以某种方式做着一些事情。所以构建一些东西并在你构建它的同时使用它,好处在于:这比其他方法更好吗?我们在取得进展吗?这里有什么有趣的东西吗?
然后,当你刚开始的时候,你可能不会超越你正在做的事情。但你会到达一个点,你会觉得它超越了。你会说,现在我们比以前更好。这里有一些特别的东西。
在你使用它之前你无法知道这一点,因为你正在使用其他东西。所以你必须比较这两样东西。然后还有,它激发了想法,没有什么比使用你正在制作的东西更好的感觉了,当你是一个工具制造者的时候。这正是我们构建这类东西以及一般构建东西的全部原因。这对 Basecamp 也是如此。这对现有产品也是如此,但它主要适用于制作全新产品。我可能会猜到你的下一个问题是什么。我会稍微插一句,但是
比如,你什么时候比你感觉舒服的时候更早地做这件事?你应该尽可能早地与少数人一起构建或使用你正在构建的东西。然后你慢慢地加入更多的人,但你总是在你感觉应该之前稍微多加入一些人。你会说,嘿,这不像它应该的那样工作。有些事情正在发生变化。有些事情不太对劲。
这可能会改变,那可能会改变,但要和我们一起忍受,因为这就是我们将学习我们需要做什么的方式。缺少什么,有什么,什么好,什么不好,这就是全部。所以越早越好。但我认为让太多人过早地参与进来也存在问题,因为那样你最终会得到大量意见和反馈,这也会让你分心。
所以我认为你应该逐渐增加使用它的人数,但也要一直有点不舒服。我认为直接和早期使用它的关键在于你必须使用真实数据。这不仅仅是因为……
你试图去戳它。不,不,你是在生气地使用它来完成一些真正的事情。无论这个产品应该做什么,你都在做。因此,你最终会输入真实数据。你最终会输入真实的边缘情况。设计也会随之发展。
我记得以前设计师们使用 lorem ipsum,就像他们在设计中使用了所有这些拉丁语乱码,你可以让段落很好地对齐。文本的形状将源于设计师希望页面看起来的样子。然后真正的用户开始使用它,通常它看起来很糟糕。当你在真实的应用程序中处理真实数据时,
你不会陷入这些幻想。你不会陷入这种不需要解决实际问题的思维空间。例如,在这个我们正在构建的应用程序中,我们有一件事,它们后面有图像。
那里有一些反馈,这个想法,这个概念真的很棒。有些图像效果很好。然后还有一些图像,当你把它们放在那里时,它会有点奇怪地裁剪。如果它以这种方式裁剪,它实际上并没有帮助。它分散了整体注意力。而这些是你无法仅仅通过推理就能获得的见解。你必须看到真实的数据。现在,我们的工作方式,它就更加重要了。
我们输入真实数据,我们开始真正使用它,然后设计师直接在软件上工作。他们不会通过其他媒介。他们不会经历大量的 Figma 迭代。他们不会经历大量的 Photoshop 迭代。我们加快软件运行速度,部分原因是为了让设计……
练习可以在真实的软件中针对真实的材料、针对真实的数据进行。当你拉伸真实的材料时,你会发现它们在哪里断裂,线条应该在哪里。
通过使用虚假数据或使用虚假后端或使用虚假设计元素(如在 Figma 中那样),剥夺你这种即时反馈真是太可惜了。你越早接触到真实的东西,你越早就能处理最终可能变成你要发布的软件的东西。这是它的另一部分。
我们加快软件运行速度,部分原因是为了处理这些真实的材料,也是为了,正如 Jason 所说,推动流程向前发展。
如果你坐下来,就像我曾经在我的职业生涯中做过的那样,你试图规划出这个产品将要做什么?我们将制作一个所有事物的巨大索引,我们将逐步完成该列表。你经常以一种方式工作,你要么在那些无关紧要的事情上花费太多东西,最终会改变,要么你最终只会在你决定的事情上工作。
在项目开始时,对项目实际上将是什么还不够了解,然后你就浪费了时间。如果你直接转向真实的软件,转向真实的数据,你就会被驱动。软件会带你去任何它想去的地方。接下来最重要的事情
在几乎所有情况下都是显而易见的。它不需要一个拥有超强大脑的人,这个人可以将这个原型的整个未来都掌握在脑海中。他们可以这样说,接下来是什么?哦,我们应该研究一下。然后你也会很快地意识到,是的,这已经足够好了。我在这里学不到更多东西了。让我们继续下一个吧。
这是一种非常愉快、仪式感低、几乎自动化的工作方式,最终会产生非常好的软件。
好的,我们多次说过,我们以两人团队工作,程序员、设计师,新产品上的人员会更多一些。当你开始试用新产品时,公司里的每个人都在关注某些东西,提供反馈,那么接下来会是谁来做决定呢?是团队中的程序员设计师吗?Jason,是你吗?当现在所有这些反馈都涌向你时,情况会如何发展?
这与市场上的产品没有什么不同,那就是总会有更多反馈。总会有比你能做的更多想法。因此,有人必须做出这些决定,所有这些都得到了倾听和吸收。然后有人做出了决定。可能是我。可能是 Jay-Z。可能是 Jorge。可能是不同的人。可能是 Brian。可能是 David。可能是不同的人,任何负责产品或负责演出的人。
但这实际上也不完全准确,因为有些决定确实会过滤到顶部,以做出方向性决定。但是,由正在工作的人每天都会做出数十个决定。因此,可能会收到反馈,说某些东西坏了,或者某些东西没有对齐,或者某些东西感觉不对。他们可能会做一些调整,因为他们不需要问别人,我是否应该进行这些调整?他们知道自己有感觉。是的,让我试试这个。让我看看。
如果我们要做一个全新的功能或一个全新的方向或改变某些东西,
一些建议可能会出现,也可能来自上层,或者它可能会被反复讨论并变成某些东西,并转变为某些东西。因此,在所有不同级别都会做出决定。我只是认为这取决于这是否是方向性的。例如,根据我们可能拥有或不拥有的资源来启动或停止产品,这将是我们 David 和我将要做的决定。但是,决定某个功能是否可以以这种或那种方式进行调整,这可能是我们做出的决定,但它通常是其他人做出的决定。
这确实取决于情况。但我认为重要的是,这对于新产品和现有产品都是如此,不是这个,你知道的,引号,给人们他们想要的东西。就像真正理解他们试图实现的目标,他们试图去哪里一样。呃,他们想要,每个人都想到达某个地方,然后你可能对如何到达那里有比他们的建议更好的主意。所以你不想仅仅因为它们很受欢迎就实施这些东西。你想考虑一下他们想做什么,然后想出一些行之有效的东西。如果你认为它适合该产品。
这里的关键还在于,当我们不试图提前制定所有规范时,Jason 没有对每个屏幕、每个界面元素以及它应该如何工作有一个完全形成的愿景,你实际上赋予了正在从事该产品的人极大的自主权。在这种自主性中存在工作满意度。在这种自主性中,
最接近微观问题的人也是那个对该问题做出决定的人。现在,这些决定偶尔会被否决,但这比不是这种情况要少见。更常见的是,当 JC 或 Scott 或我们拥有的任何其他设计师与设计师一起处理某些事情时,并且
他们会想出一个更详细的绝佳解决方案,因为它可能会阐述 Jason 对其走向的粗略想法。这部分是因为他们非常擅长他们所做的事情并且有非常好的见解。当你直接处理该功能时,你会与该软件进行互动,它会带你去某个地方。部分原因也来自试用自家产品。部分原因来自他们也在使用该软件。
在大多数情况下,我们构建的软件公司内部的每个人都需要在某种程度上使用。也许他们不像 Jason 或我那样经常使用它,但他们会用它来做一些事情。他们会用它来做一些真正的事情。从这种相互作用中获得多少方向真是太神奇了。我正在使用某样东西。哦,这个东西不太对。这个流程不太对。我要改变它。
这一切都来自试用自家产品。我发现,当我遇到真正糟糕的软件时,这种情况往往是因为那些从事该软件的人,我本来想说他们不在乎,但我甚至不认为是这样。他们可以关心,但如果他们不需要它,如果他们不使用它,并且没有一个非常强大的力量来推动它的质量,它最终会变得很糟糕。
我认为你从那些从事该软件的人也必须使用的东西中获得的质量有一个基线。它不能只是坏的。流程不能只是非常烦人,因为从事该软件的人会遇到这些烦人的流程,他们会修复它们。他们会遇到这些错误。他们会遇到这些并非最佳的功能。他们会尝试一些东西。如果那些
从事该软件的人实际上擅长他们所做的事情。他们擅长他们的工艺。他们擅长制作软件。这种相互作用至少会制作出好的软件。也许并非总是伟大的软件。伟大的软件取决于很多事情。它取决于独特的愿景,有时取决于偶然性以及各种其他事情。但是,我们行业的标准如此之低,以至于在定义明确或甚至没有明确定义,但在渴望的市场中,好的软件通常会做得不错。
而且它也更有趣,对吧?就像谁想从事他们无法真正判断他们正在从事的事情是否足够好,它是否解决了客户的问题或没有解决它,因为他们无法与问题本身产生共鸣。这在试用自家产品的模式中是固有的。我还想用一个快速的厨师比喻。我认为一位优秀的厨师会在烹饪过程中品尝他们的食物。
我需要重新调味吗?这道菜的熟度如何?他们在测试东西。他们在品尝东西。就像我们在这里试图做的事情一样。我们不会制作我们不吃的东西。我们正在制作我们要吃的东西。我认为你,你知道的,当你走进一家餐馆,得到一些东西,比如,谁让这个出去了?谁,谁,谁说这是可以的?然后
然后你会说,没有人注意。没有人真的在乎。他们知道如何大致烹饪这道菜,但这并不是一道好菜,而且显然没有人关心它。我认为这就是我们试图成为的样子,一家在烹饪过程中品尝我们菜肴的公司。让我在这里补充一点。因为我们偶尔会弄错。我们通常会以一种我们不会经常遇到的方式来设计某些东西。一个很好的例子是注册流程。Jason 和我,
每天都不会注册我们的产品。
有时我们甚至一个月甚至每个季度都不会注册它。然后当我们这样做时,如果已经有一段时间了,我们通常会说,什么?我们怎么能让这个出去呢?只是有些事情发生了变化,或者它没有跟上时代,或者其他什么。我们没有试用注册流程,这是任何新客户都会看到的第一个东西。当我注册其他人的东西时,我经常看到这一点,我只是说,
这坏了。就像这部分一样,就像我填写了这个一样,他们怎么能?我昨天刚在一个电子商务网站上。我认为是昨天。我正在经历这个结账流程,它根本不起作用。我正在填写,如果这部分不起作用,谁能买到任何东西?然后我记起来了,哦,是的,我们过去曾经这样做过,对吧?就像我们有一个注册流程一样。我认为 Jason 和我大约一年前经历了我们的注册流程,我想说。我们在该流程中看到了一些事情,我们不得不稍微皱一下眉头。
就像也许三、四、五年前还可以,但今天,哦,这是我们的第一印象。对此我不感到骄傲。因此,试用自家产品不仅仅是关于新产品开发,不仅仅是关于新功能开发。这是一种习惯。使用你制作的东西。如果它是你不经常使用的产品的一部分,你实际上必须强迫自己。你必须强迫自己,Jason 和我,
至少应该每个季度注册一次我们的产品。就像我们有什么新想法一样?这就是整个业务,对吧?业务取决于新客户的到来。它也取决于现有业务。但是如果我们的注册流程很糟糕,我们最终会倒闭。我们需要试用它。我们需要把它塞进去。这也是一个很好的理由,不要向你的产品添加你永远不会使用的东西。我们一直在与这个问题作斗争。这总是很难做到的事情。
我们最近在 Basecamp 中添加了时间跟踪功能,在我们过去曾经拥有它之后。然后大约 10 年过去了,我们终于再次将其添加到最新版本中。我们在这里不跟踪时间。
我认为我们对该功能做得相当不错,而且人们似乎非常喜欢它,但我承认我们没有使用它。我们使用它来制作它,但不是真的。每个产品中都会有这样的事情。我不应该说有,可能会有。它们不必如此,但这也是,你最终可能会创造出你自己的小岛,而其他人都不想加入你。所以你必须弄清楚其中的一些东西,并且需要一些让步。
嗯,再说一次,让我们回到餐馆。有时有些餐馆你去那里,没有替代品,完全不行。
其他的,你可以进行替代,他们会理解,好吧,我不会这样做。或者假设你有一个,你知道的,一个盐的东西。你不能有盐,因为厨师会想要给他们的菜加盐。你就像,我不能,因为我身体上不行,他们就像,好吧,我不会这样吃,但我愿意为你做。你知道的,有些事情是这样的。也许这个比喻在某种程度上会崩溃,因为我们不是为每个人制作定制软件,但我们确实添加了一些不适合我们的东西,但是
如果你要拥有这些东西,你希望这些东西很少,或者很少,无论你怎么说,而不是到处都是你永远不会看到和永远不会使用的东西。好的。在我们结束之前,最后一个问题。我知道在公司的历史上,我们创建了许多产品,不仅仅是 Basecamp 和 Hay,还有多年来创建的许多产品。我们是否曾经试用过某些东西,然后说,不,我们甚至不会发布这个产品?
我们构建了一些我们停止使用的东西。我们构建了一些东西,一些我们发布然后停止使用的东西。很少,但 Basecamp Breeze 就是其中之一,它是一个我们构建的邮件列表。我认为大约一年后我们就停止使用了。它并没有真正走向任何地方。我认为我们退还了所有人的钱。就像你一样,给你,把你的钱拿回去。我不记得结果如何,但我们在那里很慷慨。
而且我们还构建了其他一些东西,在中间,我们改变了方向。Highrise 就是其中之一。我们首先启动了 Highrise。我们想象了人们想要的东西。然后大约几个月后,我们想,不,这太复杂了。这是另一件事。当你构建你想象其他人想要的东西时,你会失去你对这个东西现实的锚点,因为你可以让它做任何事情。
但你只是失去了这种感觉,这有意义吗?这只是一个想象中的场景吗?你知道的,试用自家产品的真正优势之一是,这里缺少某些东西,你知道它,你感觉到了它,也许你第一次想到的东西不是那个东西。但你会找到通往那个东西的路,并且你肯定知道。但是,是的,确实有一些情况,我们构建了一些东西,它并没有走向任何地方,以及功能。我们在 Basecamp 中构建了一些功能。
我们甚至花费了多个周期,最终我们放弃了。就像这感觉不对,或者它还不够,让我们不要再投入更多时间了。所以确实会发生这种情况。你只是不希望这种情况经常发生。
我们实际上在 HiRISE 上两次都发生了这种情况。正如 Jason 所说,在我们发布该产品之前,我们已经深入其中了。我认为我们至少花了三到四个月的时间在一个我们基本上取消并从一张白纸开始重新开始的方向上。事实证明,它是一款广受好评的产品,多年来为我们带来了非常好的业绩。但是,当我们考虑是否应该进行后续操作时,HiRISE 2 是
我们对 CRM 工具的各种不同版本进行了深入研究。我们最终所做的是构建 Hay。Jason 和我意识到,你知道吗?我们没有做很多客户关系管理。我们正在做投机性软件。我们对 20 年前拥有客户是什么样子有一个模糊的回忆,我们正在真正利用它。但那口井已经干涸了。它在过去几十年里没有得到新的经验和新的期望的补充。这并不是一个提出新颖事物的好基础,即使我们知道对这种产品有巨大的需求。我们可能收到了更多
关于 HiRISE 2 的请求,比我们所做过的任何其他事情都要多,你能更新这部分软件吗?这很诱人,因为我们知道市场就在那里。事实上,我们上次对竞争对手的情况进行了比较分析,也许 HiRISE 的竞争非常激烈,我们是在浪费时间。我们会说,哦,不,竞争对手的情况仍然很糟糕。所有其他替代方案仍然很复杂。它们仍然是企业。仍然存在所有这些事情。但是我们……
最终说不,因为我们想,这是一口干涸的井。我们将无法非常有效地试用它。我们当然也无法与公司其他成员一起试用它,因为 Jason 或我做客户关系管理的工作很少,公司其他成员的工作就更少了。这就是为什么它最终没有发生的原因。因此,你也可以使用试用自家产品作为一种控制障碍。
我应该开发这个产品吗?我相信 HiRISE 2 是一个好主意。我相信 CRM 仍然需要 HiRISE 类型的产品,但我几乎确信我们不再是构建它的人了。
好的,有了这些,我们将结束。Rework 是 37signals 制作的。你可以在我们的网站 37signals.com/podcast 上找到节目说明和文字记录。完整的视频剧集可在 YouTube 上观看。如果你对 Jason 或 David 有关于更好地工作和经营企业的问题,我们正在改变一些事情。我们很乐意让你给我们留下视频留言。访问 37signals.com/podcast question 来录制或上传你的视频问题。我们可能会在即将播出的剧集中回答它。