怎么做一个有产品意识的软件工程师?

  • Post author:
  • Post category:其他


怎么做一个有产品意识的软件工程师?

不想当产品经理的程序员不是好的工程师。

扫码关注《Java学研大本营》,加入读者群,分享更多精彩

有产品意识的工程师是对产品本身有浓厚兴趣的开发者。他们希望了解决策的原因,人们如何使用产品,并喜欢参与产品决策。如果他们决定放弃工程的乐趣,他们很可能会成为一个好的产品经理。

我曾与许多有产品意识的优秀工程师共事,并认为自己是这种类型的开发者。在打造世界一流产品的公司,有产品意识的工程师会将团队的影响力提升到一个新的高度。

Atlassian的PM Sherif Mansour写了一篇关于产品工程师的优秀文章,以及产品经理如何识别这些人并与他们良好合作。他的收获也是类似的。

在过去十年的产品管理中,我得出结论,产品工程师是帮助你建立一个成功的产品,扩大自己的规模,成为一个更好的产品经理的关键因素。

他还引用了Shopify的工程主管Jean-Michel Lemieux的话,他是这样定义产品工程师的。

一旦你有了产品的基础,你就需要那些主动参与 “为什么 “的开发人员。那些渴望使用技术来跨越人类/用户问题的工程师。那些具有同理心的人,可以达到神奇的体验。在我的书中,这就是产品工程师的定义。糟糕的人走了太多的弯路。优秀的产品工程师知道,最低限度的可爱的产品需要在构建阶段考虑正确的深度。

从事面向用户的功能的团队,与产品经理协作,是具有产品意识的工程师可以产生巨大影响的环境。他们往往成为关键的贡献者,成为产品经理的得力助手,并经常晋升为团队领导。

那么,有产品意识的工程师的关键特征是什么,你如何才能成为更有产品意识的人?这篇文章总结了我观察到的这些人的9个特征,以及我对任何工程师增长产品意识的建议。

1. 主动提出产品想法/意见

有产品意识的工程师不会只满足于得到一个规范,然后跳出来实施它。他们会思考其他的想法,并向产品经理提出这些想法。他们经常挑战现有的规范,提出其他的产品方法,可能会有更好的效果。

2. 对业务、用户行为和这方面的数据感兴趣

在提出想法的时候,有产品意识的工程师不会凭空得到这些想法。他们会花时间去了解业务是如何运作的,产品是如何配合的,以及它的目标是什么。他们也会对产品给用户带来的感受以及这些用户如何从使用这个产品中获益感同身受。他们通常会直接深入到有关业务和用户指标的数据,并尽可能地获取这些数据。他们可能会直接访问这些数据–如果有可能的话–或者接近产品经理或数据科学家来获取这类信息。他们这样做是因为他们好奇的天性。这是我观察到的下一个特质。

3. 好奇心和对 “为什么”的浓厚兴趣

有产品意识的工程师喜欢了解所有事情背后的 “为什么?”。为什么要为产品建立这个功能,为什么不建立另一个?为什么不选择另一个更简单的功能,而选择这第一个里程碑?事情将如何被衡量–为什么我们不选择一种更彻底的方式来衡量事情?

他们自主地寻找他们能找到的答案,靠他们自己。他们会向产品经理和企业中的其他人求助于其他与产品有关的问题。尽管他们问了很多问题,经常这样做,但他们设法不惹人生气,因为他们已经与他们建立了牢固的关系。 新闻通讯

订阅我的每周通讯,了解整个软件工程行业的建议、观察和灵感。它是Substack上排名第一的技术通讯,拥有超过12万名读者。

4. 强大的沟通能力和与非工程师的良好关系

有产品意识的工程师喜欢与工程以外的人交谈,了解他们的工作内容和原因。他们是顺畅的沟通者,清楚地表明他们对了解其他学科的工作方式感兴趣。我经常看到他们与非工程师一起喝咖啡、吃午餐或在走廊上聊天。

5. 提前提供产品/工程方面的折衷方案

因为他们对产品的 “原因 “和工程方面有很强的理解,所以他们可以提出一些其他人员无法提出的建议。例如,在确定构建产品的努力范围时,构建一个关键功能所需的工程努力可能是巨大的。许多工程师会开始寻找减少工作量的方法,并试图弄清楚减少的工作量对该功能本身意味着什么影响。

注重产品的工程师们从两个角度攻击这个问题:既要寻找工程上的权衡,又要寻找对产品的影响是什么。他们也开始做产品权衡,评估工程影响。他们经常回到产品经理那里,建议建立一个完全不同的功能,因为对产品的影响是相似的,但工程上的努力要小得多。

兼顾产品和工程的权衡以及各自的影响,是有产品意识的工程师的独特优势。他们可以快速地在同一硬币的两面之间来回穿梭:产品特性和工程努力及权衡。因为他们用自己的工程和产品洞察力在头脑中完成了这一切,所以他们很快就能得到有价值的结论。

6. 务实地处理边缘案例

边缘案例是一个有趣的东西。在一个极端,工程师们经常忘记其中的许多情况,在得到测试产品的人或最终用户的反馈后,不得不回来处理它们。另一方面,在一个新的产品或功能中,处理所有可能的边缘案例可能需要大量的时间。

有产品意识的工程师们会迅速绘制出边缘案例,并思考如何减少对它们的工作:常常带来不需要工程工作的解决方案。他们专注于 “最小可爱的产品概念”,并评估边缘案例的影响和处理它的努力。他们带来了很好的中间地带的建议:映射出大多数可能出错的事情,并带来了关于哪些边缘情况需要解决的建议,甚至在运送早期版本之前。

例如,如果千分之一的用户可能会被一个错误击中,他们会考虑修复它的努力,并思考如果不做任何事情会怎样。在这种情况下,在验证过程中,客户支持可以帮助这个人吗?用户能不能重试并在下一次成功?能否对产品稍作修改,使这种边缘情况不会发生?

7. 快速的产品验证周期

即使在他们正在开发的功能还没有达到生产要求的时候,有产品意识的工程师就会找到创造性的方法来获得早期反馈。这可能是与同事一起做走廊测试,向产品经理展示正在进行的功能,在测试版上组织一次团队bug狂欢,以及其他许多创造性的方式。他们不断地思考:”我们如何才能验证人们会以我们认为的方式使用这个功能?

8. 端到端的产品功能所有权

大多数有经验的工程师拥有他们端到端的工作:从获得规范,到实现它,一直到推出它并验证它是否正常工作。有产品意识的工程师往往比这更进一步。

只有在得到用户行为和业务指标的结果后,他们才认为自己的工作已经完成。在推出后,他们仍然积极与产品经理、数据科学家和客户支持渠道接触,以了解该功能在现实世界中的使用情况。这可能需要几周的时间来获得足够可靠的数据以得出结论。即使他们可能正在进行一个新的项目,他们也会把检查结果作为他们的首要任务之一。这不是一个耗时的活动,但它需要有人想知道的那种额外的坚持:我的工作到底如何?

当一个功能的表现比预期的差时,他们很想了解不匹配的地方。他们对找到产品计划和现实世界结果之间的根本原因同样感兴趣,就像他们要调试代码库中难以复制的错误一样。他们往往会花大量的时间与产品经理和数据科学家辩论假设和学习。

9. 通过反复的学习循环获得强大的产品本能

一个有产品意识的工程师的典型项目通常是这样的。

  1. 他们会问很多问题,以了解产品功能构建的确切原因。

  2. 他们提出建议和折衷方案,其中一些被纳入修订后的规格中。

  3. 他们迅速建立功能,获得早期反馈,就像他们做的那样。

  4. 发货后,他们积极跟进,以了解该功能是否达到了预期效果。

  5. 如果没有,他们会深入挖掘,了解为什么没有,并学习一些关于产品在现实世界中使用的新知识。

在每个项目之后,他们对产品的理解都会加深,并开始发展出越来越好的产品本能。下一次,他们会带来更多的收获。

成为一个更有产品意识的工程师的技巧

如果你在一个面向用户的产品上工作,这里有几个我见过的很好的提示,可以增强你的产品意识的力量。


  • 了解你的公司是如何以及为什么成功的。

    商业模式是什么?钱是怎么赚的?哪些部分是最有利可图的,公司的哪些部分是扩展最多的?你的团队是如何融入这一切的?


  • 与你的产品经理建立一个强大的关系。

    大多数产品经理都会抓住机会指导工程师。让工程师对产品感兴趣,意味着他们能更多地扩展自己。在进来之前,问很多产品问题,花时间建立这种关系,并向你的产品经理表明,你想更多地参与到产品话题中。


  • 参与用户研究、客户支持和其他活动,在这些活动中,你可以更多地了解产品的工作原理。

    与设计师、用户体验人员、数据科学家、运营人员和其他经常与用户互动的人结对。


  • 把有充分依据的产品建议带到会议上。

    在你对业务、产品和利益相关者有了充分的了解之后:主动出击。你可以为你正在进行的项目带来一些小建议。或者,你可以建议一个更大的努力,概述工程努力和产品努力,使之容易在积压中得到优先考虑。


  • 为你工作的项目提供产品/工程方面的权衡。

    不仅要考虑为你的团队正在构建的产品功能做工程上的权衡,而且要建议产品上的权衡,从而减少工程上的努力。对别人的反馈要持开放态度。


  • 经常要求你的产品经理提供反馈。

    作为一个有产品意识的工程师,意味着你已经在现有的工程技能基础上建立了良好的产品技能。最能给你反馈你在产品技能上的表现的人是你的产品经理。联系反馈,了解他们认为你的产品建议有多大价值,并询问对进一步发展领域的想法。

推荐书单

《项目驱动零起点学Java》

购买链接:https://item.jd.com/13607758.html

《项目驱动零起点学Java》贯穿6个完整项目,经过作者多年教学经验提炼而得,项目从小到大、从短到长,可以让读者在练习项目的过程中,快速掌握一系列知识点。

作者是国内知名Java教学者和传播者,一路披荆斩棘,兢兢业业20余年。积累了丰富的“培”“训”经验,也产出了很多优质的教学理论。

Java语言经过数十年的发展,体系逐渐变得庞大而复杂,本书芟繁就简,提炼出了最为重要的知识点,可以让读者轻松上手。本书配套有专栏课程,课程中提供了扩展内容。

《项目驱动零起点学Java》共分 13 章,围绕 6 个项目和 258 个代码示例,分别介绍了走进Java 的世界、变量与数据类型、运算符、流程控制、方法、数组、面向对象、异常、常用类、集合、I/O流、多线程、网络编程相关内容。《项目驱动零起点学Java》总结了马士兵老师从事Java培训十余年来经受了市场检验的教研成果,通过6 个项目以及每章的示例和习题,可以帮助读者快速掌握Java 编程的语法以及算法实现。扫描每章提供的二维码可观看相应章节内容的视频讲解。

精彩回顾


想要代码干净又整洁?这里有十大原则

扫码关注《Java学研大本营》,加入读者群,分享更多精彩



版权声明:本文为u013643074原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。