william-iven-gcsNOsPEXfs-unsplash.jpg

具有产品思维的工程师是对产品本身有着浓厚兴趣的开发者。他们想要了解为什么做出这个决策,人们都是如何使用产品的,并且他们热衷于参与产品决策。要是他们放弃开发的乐趣,他们很可能成为一个很不错的产品经理。我曾与很多有着优秀产品思维的工程师一起工作过,也勉励自己成为这类型的开发者。在打造世界一流产品的公司里,具有产品思维的工程师将带领团队到达一个新的高度。

Atlassian的项目经理 Sherif Mansour 写了一篇很不错的文章,这篇文章是关于产品工程师以及产品经理如何认同他们并一起愉快地工作。他的总结类似:

在过去十年产品经理职业生涯中,我得出了如下结论:产品工程师是帮助你构建成功的产品,扩展自己并成为更好的产品经理的关键要素。

他也引用了Shopify工程主管Jean-Michel Lemieux关于产品工程师的定义:

一旦有了产品基础,你就需要一些与“why”积极互动的开发者。工程师渴望使用技术去解决人类/用户的问题。他们善于换位思考,追求奇妙的产品体验。那就是我在书中定义产品工程师的原因。坏家伙经常偷工减料。优秀的产品工程师知道,在构建阶段时需要考虑到最小可爱性产品的合适深度。

产品工程师在研发面向用户功能、与产品经理合作的团队中有着巨大的影响力。他们经常成为关键贡献者、产品经理候补者和领导团队。所以,具有产品思维的工程师都有哪些特征?如何才能变得更加注重产品?本文总结了我从这类人的分享中观察到的9个特征,以及给工程师提供增强产品思维的一些建议。

1.主动参与产品构想/意见

产品工程师并不安分接到一份需求文档后急于去实现它。他们会考虑其他想法并与产品经理沟通交流。他们经常质疑已有的需求文档并且提供效果更佳代替的方案。

2.对业务、用户行为和相关数据感兴趣

产品工程师提出的这些想法并不是偶然凭空获得。他们花时间去了解业务是如何运作,产品如何满足市场需求以及它的目标。同样他们对产品如何使用户感知以及用户如何在使用产品中获利进行换位思考。他们经常直接研究有关业务和用户指标的数据,尽其所能地掌握这些数据。他们可能直接访问数据(如果有可能话),要不就通过产品经理或数据分析师来得到这类信息。是好奇的天性使得他们这么做。这是我观察到的下一个特征。

3.好奇心以及对“why?”的浓厚兴趣

具有产品思维的工程师热衷了解一切事物背后的“why?”。为什么要开发这个功能,为什么没有开发另一个功能?为什么建立第一个里程碑,而不是选择另一个比较容易开发的?如何评估——为什么不采用更全面的方法来评估?

他们可以自行去寻找答案。向产品经理和业务中的其他人请教产品相关的问题。尽管这些人经常请教很多问题,但却不会惹恼他人,因为在他们之间已经建立了良好的关系。

4.善于沟通以及与非工程师保持良好的关系

产品工程师喜欢与非工程师聊天,了解他们在做什么以及他们为什么这么做。他们擅长沟通交流,能清晰地表达对其他学科如何工作感兴趣。我经常看到他们喝着咖啡、享用午餐时或在走廊上与一些非工程师聊天。

5.预先提供产品/工程权衡

基于对产品和工程方面的深刻理解,他们可以提出其他人想不到的建议。例如,在确定研发产品的工作量时,用于研发关键功能的工程量可能很重要。大部分工程师开始寻找减少工作量的方法,试图弄清楚减少工作量对功能本身的影响。

而产品工程师从两方面开展这个问题:同时寻找工程权衡和产品的影响。并且他们开始作出产品权衡,评估工程影响。他们经常向产品经理反馈,建议开发一个截然不同、带给产品相似的影响效果但工程量却小很多的功能。

兼顾产品和工程权衡以及两者的影响是一个产品工程师所拥有的独特实力。他们可以在同一个事物的两面之间来回快速切换:产品功能、工程设计和权衡。由于在脑海中通过工程学和产品洞察力完成了这一切,他们可以异常快速地获得有价值的结论。

6.特殊情况的实际处理

特殊情况是一个有趣东西。工程师通常会忘了一些特殊情况的处理,在得到测试人员或用户端的反馈后不得不去重新解决这些问题。此外,在新产品或者功能上处理所有可能发生的特殊情况会花费不少时间。

产品工程师会迅速列出特殊情况并思考减少工作量的方法:通常给出不需要工程任务的解决方案。他们专注于“MLP概念”,评估一个特殊情况的影响以及解决它的工作量。他们提出了折中建议:在发布前,甚至在早期版本,列出大部分特殊情况并提出哪些是需要处理。

举个例子,假设有一千个用户中,不幸有一个用户会命中这个特殊情况,他们将会思考处理所需的工作量,并考虑如果不采取任何措施会发生什么情况。在这个情况下,在验证期间客服能给用户提供帮助服务吗?在下一次用户能否重试并成功吗?能对产品稍作修改,以免发生这种特殊情况吗?

7.快速的产品验证周期

即使正在开发的功能处于预发布阶段中,产品工程师还是找到了富有创意的方法来获得早期反馈。可能是抓同事来做走廊测试,给产品经理展示开发中的功能,组织一个团队在bata版上进行bug大扫除,和许多其他创新的方式。他们一直在思考着:“如何验证用户是否将按着套路使用这个功能?”

8.具有端对端的产品意识

大部分有经验的工程师的工作从头到尾是:从得到产品需求文档书到实现它,接着一直到发布和验证。但产品工程师不这么干。

他们认为获得用户行为和业务指标的结果后才算完成工作。在发布之后,他们仍然积极地缠着产品经理,数据分析师和客服渠道,去了解在真实环境下功能的使用情况。这需要花费数周时间去拿到可靠的数据来得出结论。即是可能开始接手了一个新项目,他们将检查结果作为他们的首要任务之一。这不是一项非常耗时的活动,但这需要那些真正想要了解工作原理的人坚持不懈。

当一个功能使用效果比预期的糟糕时,他们很好奇到底哪里出问题了。他们对产品计划和真实结果之间刨根问底,就好像在代码中调试难以复现的bug。一般产品工程师会花大量的时间跟产品经理和数据分析师一起讨论方案和学习。

9.通过反复学习增强产品直觉

对于一个产品工程师来说,一个典型的项目像这样:

  1. 提出了很多问题以便切确了解为什么要研发这个产品功能。
  2. 提供建议和权衡,其中一些已被包含在修订的规范中。
  3. 可以快速开发功能,并尽早获得反馈。
  4. 在交付功能之后主动跟进功能是否符合预期。
  5. 如果没有,会深入研究并学习一些在真实环境下产品操作的新知识。

每个项目结项后,他们对产品的认知更进一层,开始培养愈来愈敏锐的产品直觉。下次,将会带来更多更有用的建议。日积月累,他们成为了产品经理的后补选手,在项目启动前他们的提议变得非常受欢迎。在团队外也有了不错的声誉,这为他们以后的职业生涯创造了更多的机会。

成为更具产品思维的工程师的小技巧

如果你真正开发一款面向用户的产品,这里有我认为效果不错的一些小技巧,用来增强你的产品思维。

  • 了解你的公司成功的方式和原因。商业模式是什么?如何赚钱的?哪个部门是最赚钱的?哪个部门发展最快?为什么?你的团队如何适应这一切?
  • 与产品经理保持良好的人际关系。很多产品经理会趁此指导工程师。工程师们对产品感兴趣意味着他们可以更好地扩展自己。在开门见山问一大堆问题之前,花点时间建立人际关系,向产品经理明确表示你想更多地参与到产品话题中。
  • 参与用户调研,客户支持,和其他可以了解有关产品工作原理的更多信息的活动。与经常与用户互动的设计师、UX、数据分析师,运维或其他人成为搭档。
  • 提供优秀的产品建议。对业务、产品和利益相关者有了充分的了解之后:采取主动。你可以为正在进行的项目带来一些小建议。或者,你可以尝试更大一点的,概述工程工作量和产品工作量,以便在待办事项列表中轻松确定优先级。
  • 对正在开发的项目提供产品/工程权衡。不仅要考虑到团队正在研发的产品功能的工程设计权衡,还要考虑到产品设计权衡,从而达到减少工作量。保持开放的心态对待来自他人的反馈意见。
  • 要求产品经常反馈。成为一个优秀的产品工程师意味着你在现有的工程技能上增加了不错的产品技能。有关你在产品技能上的表现,产品经理简直是获得反馈的最佳人选。寻求反馈,了解他们对你所给的产品建议的重视程度,并就长远发展的领域提出想法。

原文地址:https://blog.pragmaticengineer.com/the-product-minded-engineer/ 原文作者:Gergely Orosz 特别感谢:Filna