软件工程:产品型开发工程师

在这里插入图片描述

The Product-Minded Software Engineer

Product-minded engineers are developers with lots of interest in the product itself. They want to understand why decisions are made, how people use the product, and love to be involved in making product decisions. They’re someone who would likely make a good product manager if they ever decide to give up the joy of engineering. I’ve worked with many great product-minded engineers and consider myself to be this kind of developer. At companies building world-class products, product-minded engineers take teams to a new level of impact.

产品型工程师是深度参与产品价值的开发者群体。他们不仅关注技术实现,更热衷于探究产品决策逻辑、用户行为模式,并主动参与产品设计过程。这类工程师若转型为产品经理往往表现出色,其技术背景与产品洞察力的结合能显著提升团队效能。我曾与许多出色的产品导向型工程师共事,并认为自己也是这种类型的开发者。在头部科技公司中,产品型工程师是驱动产品成功的关键角色。

Sherif Mansour, PM at Atlassian wrote an excellent article on product engineers, and how product managers can identify these people and work well with them. His takeaway is similar:

Over my last ten years of product management, I’ve come to conclude that product engineers are a critical ingredient to helping you build a successful product, scale yourself and become a better product manager.

He also quotes Jean-Michel Lemieux, head of engineering at Shopify who defines product engineers like this:

Once you have the product foundations, you need devs who engage with the ‘why’, actively. Engineers who have the thirst for using technologies to leapfrog human/user problems. Those with empathy to reach for magical experiences. That is what defined a product engineer in my books. Bad ones cut too many corners. Great product engineers know that minimum lovable products need the right depth to be considered during the build phase.

Atlassian 产品负责人 Sherif Mansour 写了一篇关于产品工程师的精彩文章,探讨了产品经理如何识别这些人才并与他们高效合作。他的结论与我的观点类似:

“在我过去十年的产品管理经验中,我逐渐得出结论:产品型开发工程师是帮助你打造成功产品、扩展自身能力并成为一名更优秀产品经理的关键因素。”

他还引用了 Shopify 工程主管 Jean-Michel Lemieux 对产品型工程师的定义:

“一旦你奠定了产品的基础,就需要那些积极关注‘为什么’的开发人员。这些工程师渴望利用技术来解决用户问题,甚至实现跨越式进步。他们具有同理心,追求为用户创造神奇的体验。这就是我心目中定义的产品工程师。糟糕的工程师会偷工减料,而优秀的产品工程师则知道,在构建阶段,最低限度的‘MVP’需要具备适当的深度。”

Teams who are working on user-facing features, collaborating with product managers are environments where product-minded engineers can have a huge impact. They often become key contributors, the goto people for product managers and frequently advance to being team leads.

So, what are the key traits of product-minded engineers, and how can you work on becoming more product-minded? This article summarizes 9 traits I’ve observed these kinds of people share, and my suggestions for any engineer to grow their product-minded muscle.

在面向用户开发功能的团队中,与产品经理密切协作的环境是产品型的工程师能够产生巨大影响的地方。他们通常会成为关键贡献者,成为产品经理求助的首选人物,并经常晋升为团队领导。

如何识别并培养产品思维

那么,以产品为导向的工程师有哪些关键特质?你又该如何培养自己的产品思维呢?本文总结了我观察到的这类人所共有的 9 个特质,并提出了通过实践来增强自己产品思维能力的建议。

  1. 主动提出产品想法/意见 Proactive with product ideas/opinions

Product-minded engineers don’t settle for getting a specification and jumping to implement it. They think about other ideas and approach the product manager with these. They often challenge existing specifications, suggesting alternative product approaches, that might work better.

以产品为导向的工程师不会满足于拿到需求文档就直接开始实现。他们会思考其他的想法,并向产品经理提出这些建议。他们经常挑战现有的需求,提出可能更有效的替代方案。

  1. 对业务、用户行为和相关数据感兴趣 Interest in the business, user behavior and data on this

When coming with ideas, product-minded engineers don’t just get these from thin air. They take the time to understand how the business works, how the product fits in, and what its goals are. They are also empathetic about how the product makes users feel and how those users benefit from using this product. They often dive straight to data about business and user metrics, getting their hands on this data however they can. They might access it directly - if this is possible - or approach the product manager or data scientists to get this kind of information. They do this because of their curious nature. This is the next trait I’ve observed.
Newsletter

当提出想法时,以产品为导向的工程师不会凭空想象。他们会花时间了解业务运作方式、产品如何融入其中以及其目标是什么。他们对产品如何让用户感到满意、用户如何从中受益也充满同理心。他们通常会深入研究业务和用户指标的数据,尽可能获取这些信息。如果条件允许,他们可能会直接访问数据;或者向产品经理或数据科学家寻求帮助。这种行为源于他们的好奇心,这是我观察到的下一个特质。

  1. 好奇心与对“为什么”的强烈兴趣 Curiosity and a keen interest in “why?”

Product-minded engineers like to understand the “why?” behind all things. Why build this feature for the product, why not the other one? Why ship this first milestone, instead of choosing another one, that’s a lot simpler to build? How will things be measured - why don’t we choose a more thorough way to measure things?

They are autonomous in finding answers they can, by themselves. They turn to the product manager and other people in the business for other, product-related questions. Even though they ask many questions, doing this frequently, they manage not to annoy people, as they’ve built up strong relationships with them.

以产品为导向的工程师喜欢了解所有事情背后的“为什么”。为什么要为产品构建这个功能,而不是另一个?为什么要优先完成这个里程碑,而不是选择一个更容易实现的?我们该如何衡量效果——为什么不选择一种更彻底的测量方法?

他们在力所能及的范围内自主寻找答案,对于其他与产品相关的问题,则会向产品经理或其他业务相关人员请教。尽管他们问了很多问题,但由于与团队建立了牢固的关系,他们并不会让人感到厌烦。

  1. 出色的沟通能力,与非工程师建立良好关系 Strong communicators and great relationships with non-engineers

Product-minded engineers like talking with people outside engineering, learning about what and why they do. They are smooth communicators, making it clear they’re interested in learning more about how other disciplines work. I frequently see them grabbing coffee, lunch, or doing a hallway chat with non-engineers.

以产品为导向的工程师喜欢与工程团队之外的人交流,了解他们做什么以及为什么这么做。他们是流畅的沟通者,清楚地表达出自己对其他领域工作的好奇心。我经常看到他们与非工程师一起喝咖啡、吃午餐,或者在走廊上聊天。

  1. 提前提出产品/工程权衡方案 Offering product/engineering tradeoffs upfront

Because they have a strong understanding of the product “why,” as well as the engineering side of things, they can bring suggestions that few other people can. For example, when scoping the effort to build the product, the engineering effort to build a key feature might be significant. Many engineers would start to look for ways to reduce the effort and try to figure out what the impact of the reduced effort would mean for the feature itself.

Product-minded engineers attack this problem from both angles: both looking for engineering tradeoffs and what the product impact is. They also start making product tradeoffs, evaluating the engineering impact. They often go back to the product manager, suggesting a completely different feature to be built, given the product impact would be similar, but the engineering effort vastly smaller.

Juggling both the product and engineering tradeoffs and the impact of each is a unique strength product-minded engineers have. They can quickly go back-and-forth between the two sides of the same coin: product features and engineering effort and tradeoffs. Because they do it all in their head, using their engineering and product insights, they get to valuable conclusions remarkably quickly.

由于他们对产品的“为什么”以及工程方面有深刻的理解,因此能够提出其他人难以想到的建议。例如,在评估构建某个产品所需的工作量时,关键功能的开发可能会耗费大量精力。许多工程师会开始寻找减少工作量的方法,并尝试分析这种减少对功能本身的影响。

以产品为导向的工程师从两个角度解决这个问题:既寻找工程上的权衡,又评估对产品的影响。他们还会开始进行产品权衡,评估工程影响。他们常常回到产品经理面前,建议构建一个完全不同的功能,因为其产品影响相似,但工程投入却大大减少。

能够在产品和工程权衡之间灵活切换,并快速得出有价值的结论,是以产品为导向的工程师的独特优势。他们可以在产品功能和工程投入这两个方面自如切换,利用自己的工程和产品洞察力迅速找到解决方案。

  1. 务实处理边界条件 Pragmatic handling of edge cases

Edge cases are a funny thing. On one extreme, engineers often forget about many of these, having to come back to addressing them, after getting feedback from people testing the product or end users. On the other hand, handling all possible edge cases in a new product or feature can take a lot of time.

Product-minded engineers quickly map out edge cases and think of ways to reduce work on them: often bringing solutions that require no engineering work. They are focused on the “minimum lovable product concept” and evaluate the impact of an edge case and the effort of handling it. They come with good middle-ground suggestions: mapping out most things that can go wrong and bring suggestions on what edge cases need to be addressed, before shipping even an early version.

For example, if one in a thousand users might be hit by an error, they will consider the effort to fix it and think about what happens if they don’t do anything. Can customer support help the person in this case, during validation? Can the user just retry and succeed the next time? Can the product be slightly modified, so this edge case won’t occur?

边界条件是一个有趣的话题。一方面,工程师往往会忽略很多边界条件,直到测试人员或最终用户反馈问题时才回头处理。另一方面,在新产品或功能中处理所有可能的边界条件可能需要大量时间。

以产品为导向的工程师能够快速列出边界条件,并思考如何减少处理它们的工作量:他们常常提出不需要额外工程投入的解决方案。他们专注于“最小可爱产品”概念,评估每个边界条件的影响及其处理成本,并提出合理的折中方案:列出可能出现的问题,并建议在发布早期版本之前需要解决哪些边界条件。

例如,如果一千名用户中可能有一人遇到错误,他们会考虑修复的成本,以及如果不采取行动会发生什么。客服能否在此情况下帮助用户?用户是否可以简单重试并成功?产品能否稍作修改,从而避免出现这种情况?

  1. 快速的产品验证循环 Quick product validation cycles

Even before the feature they are working on is production-ready, product-minded engineers find creative ways to get early feedback. This could be doing hallway testing with colleagues, showing the work-in-progress feature to the product manager, organizing a team bug bash on the beta build, and many other, creative ways. They are continuously thinking:“how can we validate that people will use this feature, the way we think they will?”

即使正在开发的功能尚未准备好上线,以产品为导向的工程师也会通过创造性的方式获取早期反馈。这可能是通过与同事进行走廊测试、向产品经理展示正在进行中的功能、组织团队针对测试版的 Bug Bash 活动,或者其他创新方式。他们始终在思考:“我们如何验证人们会像我们预期的那样使用这个功能?”

  1. 端到端的产品责任感 End-to-end product feature ownership

Most experienced engineers own their work end-to-end: from getting the specification, through implementing it, all the way to rolling it out and validating that it works correctly. Product-minded engineers often go a step beyond this.

They consider their work done only after getting results on user behavior and business metrics. After rollout, they still actively engage with product managers, data scientists, and customer support channels, to learn how the feature is being used in the real world. It can take weeks to get enough reliable data to draw conclusions. Even though they might be working on a new project, they make checking on the results one of their top priorities. It’s not a time-consuming activity, but it needs that additional persistence from someone wanting to know: how is my work really doing?

When a feature performs worse than expected, they are curious to understand where the mismatch was. They are just as interested in finding the root cause between the product plan and the real world result, as they are to debug a hard-to-reproduce bug in the codebase. They’ll often spend a good amount of time debating hypothesizes and learnings with the product manager and data scientists.

大多数资深工程师都会对自己工作的全流程负责:从获取需求、实施开发,到发布并验证其正常运行。而以产品为导向的工程师往往更进一步。

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

当功能的表现不如预期时,他们会好奇地寻找差距所在。他们对探究产品计划与实际结果之间的根本原因,就像对调试代码库中难以重现的 Bug 一样感兴趣。他们经常会花大量时间与产品经理和数据科学家讨论假设和学习成果。

  1. 通过反复学习形成强大的产品直觉 Strong product instincts through repeated cycles of learning

通过不断参与产品开发周期,以产品为导向的工程师积累了丰富的经验,逐渐形成了敏锐的产品直觉。他们能够基于过去的经验快速判断哪些方向是可行的,哪些需要调整。这种直觉使他们在面对新产品挑战时更加自信和高效。

注重产品的工程师是如何开展工作的

A typical project for a product-minded engineer usually goes like this:

  • They ask a lot of questions to understand exactly why the product feature is being built.
  • They bring suggestions and tradeoffs to the table, some of which are included in the revised spec.
  • They build the feature quickly, getting early feedback, as they do.
  • After shipping the feature, they actively follow up to understand if the feature lives up to the expectation.
  • When it does not, they dig deep, to understand why it did not and learn something new about product usage in the real world.

After each project, their product understanding deepens, and they start to develop better and better product instincts. The next time, they’ll bring even more relevant suggestions to the table. Over time, they become a goto person for product managers, their advice being sought well before projects are kicked off. They build a strong reputation outside the team, opening more doors for their continued career growth.

一个产品导向型工程师负责的项目通常会按照以下方式进行:

  1. 提出大量问题
    他们通过提问深入了解为什么需要构建这个产品功能。目标是全面理解背后的动机和预期结果。

  2. 提出建议并引入权衡
    他们会提出一些建议和权衡方案,其中一些会被纳入修订后的需求文档中。这些建议可能涉及功能设计、用户体验或技术实现的改进。

  3. 快速构建并获取早期反馈
    在开发过程中,他们会快速推出初步版本,并通过各种方式(如同事测试、产品经理反馈等)获取早期反馈,以验证功能是否符合预期。

  4. 发布后积极跟进
    功能上线后,他们会主动跟进,了解该功能是否达到预期效果。他们会分析用户行为数据、业务指标以及客户支持反馈,评估功能的实际表现。

  5. 深入挖掘不如预期的原因
    如果功能表现未达预期,他们会深入研究原因,探索现实世界中用户的实际使用情况。这种分析不仅帮助他们找到问题根源,还让他们对产品的真实使用场景有更深刻的理解。

每次项目结束后,他们的产品理解都会更加深入,并逐渐形成更强的产品直觉。下一次,他们会提出更有针对性和价值的建议。随着时间的推移,他们成为产品经理的重要依靠,在项目启动前就被广泛征求建议。他们在团队之外也建立了良好的声誉,为职业发展打开了更多机会。

如何成为一名更具产品思维的工程师 Tips to become a more product-minded engineer

If you work on a user-facing product, here are a few tips I’ve seen work well, to growing your product-minded muscle.

  • Understand how and why your company is successful. What is the business model? How is money made? What parts are most profitable, what parts of the company are expanding the most? Why? How does your team fit into all of this?
  • Build a strong relationship with your product manager. Most product managers jump at the opportunity to mentor engineers. Having engineers be interested in product means they can scale themselves more. Before coming in, asking a lot of product questions, take time to build this relationship and make it clear to your product manager, that you’d like to get more involved in product topics.
  • Engage in user research, customer support, and other activities, where you can learn more about how the product works. Pair with designers, UX people, data scientists, operations people and others, who frequently interact with users.
  • Bring well-backed product suggestions to the table. After you have a good understanding of the business, the product and stakeholders: take initiative. You could bring small suggestions to a project you are working on. Or you could suggest a larger effort, outlining the engineering effort and the product effort, making this easy to prioritize in the backlog.
  • Offer product/engineering tradeoffs for the projects you work on. Think of not only making engineering tradeoffs for the product feature your team is building but suggest product tradeoffs that result in less engineering effort. Be open to the feedback on these from others.
  • Ask for frequent feedback from your product manager. Being a great product-minded engineer means you have built up good product skills, on top of your existing engineering skillset. The best person to give you feedback on how you’re doing on the product skillset is your product manager. Reach out for feedback on how valuable they see your product suggestions and ask for thoughts on areas for further growth.

如果你正在从事面向用户的产品开发工作,以下是一些经过验证有效的建议,可以帮助你培养自己的产品思维能力:

  1. 理解公司如何成功运作
    了解公司的商业模式是什么?如何盈利?哪些部分最有利可图?哪些部门增长最快?为什么?你的团队在整个公司战略中扮演什么角色?这些问题的答案将帮助你更好地理解产品的优先级和方向。

  2. 与产品经理建立牢固关系
    大多数产品经理都非常乐意指导对产品感兴趣的工程师。表现出对产品的兴趣意味着你可以帮助他们扩展自己的影响力。在提出大量产品相关问题之前,先花时间与产品经理建立信任关系,明确表达你希望更多地参与产品话题。

  3. 参与用户研究和客户支持活动
    主动参与用户研究、客户支持或其他能让你更深入了解产品使用情况的活动。与设计师、用户体验专家、数据科学家、运营人员等频繁接触用户的同事合作,学习他们如何从用户角度思考问题。

  4. 提出有依据的产品建议
    在充分理解业务、产品和利益相关者之后,主动提出建议。可以是针对当前项目的微小改进建议,也可以是更大规模的努力,例如提出一个新功能的想法,并清晰说明其工程成本和产品收益,以便更容易被优先考虑。

  5. 在项目中提出产品/工程权衡方案
    不仅要考虑工程上的权衡,还要提出产品层面的权衡,以减少工程投入。例如,通过调整功能范围或用户体验设计来降低复杂性。同时,对他人提出的反馈保持开放态度。

  6. 定期向产品经理寻求反馈
    成为一名出色的产品导向型工程师,意味着你需要在现有的工程技术能力基础上,培养强大的产品技能。产品经理是你获得产品技能反馈的最佳来源。主动向他们询问对你产品建议的看法,并探讨进一步成长的方向。

原文:https://blog.pragmaticengineer.com/the-product-minded-engineer/?utm_source=wanqu.co&utm_campaign=Wanqu+Daily&utm_medium=website

END

如果这篇文章对您有所帮助,欢迎点赞、分享和留言,让更多的人受益。感谢您的细心阅读,如果发现了任何错误或需要补充的地方,请随时告诉我,我会尽快处理 ^_^

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值