原文链接:https://medium.com/the-year-of-the-looking-glass/how-to-make-things-high-quality-f466f875227d

原文作者:Julie Zhuo

图片来自[JD Hancock](https://www.flickr.com/photos/jdhancock/)

果产品开发中也存在着“星球大战还是星际迷航”一般无休止地的辩论,那便是我所说的“质量与时间之间的权衡”(TTBQT,The Tradeoff Between Quality and Time)。这种辩论通常是这样的:

Alice:我们构建 X 的方式非常差劲/慢/粗糙。我有一个更好的解决方案。

Bob:但我们需要在两周内完成这个功能。是否值得推迟我们的发布来修复 X 的差劲/慢/粗糙呢?

Alice:但我们关心质量。

Bob:但我们也关心发布。

然后 Alice 和 Bob 一脸严峻地面对对方,双手握着闪闪发光的光剑,准备用决斗的方式作出决定……哦,等等,故事不是这样的。

通常会发生的事情可能是一方说服了另一方,或者决定向上级报告,但最终团队要么接受延迟发布日期或者发布质量较差的产品,这两种情况都不值得庆祝。

你可能会想,但事情就是这样。“质量与时间之间的权衡”是打造任何产品必将面对的抉择。

但事情真的是这样吗?

不要误解我的意思,不时地提出这种权衡是有益的,它将确保我们不会把时间花在收益甚微的提升上,亦或者仅按照发布时间表进行产品开发。但我想提议第三种选择。

当你面临“质量与时间之间的权衡”时,真正要问的问题是:“如果我们知道 X 需要很长时间才能达到高质量,我们最开始是否还会选择这样做?”

这是一个强有力的问题,因为它迫使团队检查到底哪里出了错,通常会是:

  • 团队优先级的设定有多坚定。
  • 团队对自身执行能力的估算有多准确。
  • 团队实际执行得有多好。

我喜欢这个问题的第二个原因是因为它有助于澄清“质量与时间之间的权衡”应该怎样决策。如果答案是“不,X 不值得我们把它变成高质量的时间”,那么就把功能 X 完全砍掉。停止它的开发工作。

“但等等,那太可怕了,“你说,“X 已经完成了 90%。如果我们不发布它,我们就会浪费所有已经投入的工作。“

确实。浪费时间和精力会很痛苦。我们容易对我们所开发的功能产生情感依附。但这只是沉没成本的谬误。如果你认为某个功能不值得花时间去把它高质量的完成,那么仅仅因为你投入了时间开发某功能就一定要将它发布,哪怕是一个更糟糕的版本,则是完全不理性的。

如果答案是“是的,我们知道将这个功能高质量的完成需要多长时间,并且我们仍然会选择开发这个功能”,那么这表明 X 非常重要,并且值得努力使它变得不差劲/性能很好/精心打造。

随着时间的推移,每当面临“质量与时间之间的权衡”情况时问自己这个问题会迫使你逐渐做到从最开始就坚定地专注于将重要功能做好。你将更善于将最重要的事项排上优先级,你的估算会变得更准确,并且你的执行力也会更强。

将产品成功与发布大量的功能混为一谈是错误的。

取而代之的应该是:

  1. 列出你的团队正在进行的工作。
  2. 严格地按照重要性为每件事排列优先级。
  3. 坚决地砍掉不必要的功能。你做不了你想象的那么多事情。(例如,我以为写这个笔记会花一天时间。可现在已经是第 5 天。)
  4. 保证执行效果。设置每周里程碑。充满紧迫感地运作。如果第一个功能发生延期,考虑砍掉第五个、第四个、第三个功能,依次往下……直到第 1 个、第 2 个功能有足够资源成功发布。
  5. 发布高质量的工作成果(并且从其成功或失败中充分自信地总结经验)。为了你的用户值得如此。
  6. 不求做得多,只求做得好,并且只做最重要的事情。