概述
具备产品思维的软件工程师对产品本身会有极大的兴趣。他们渴望理解产品的决策,以及用户使用产品的方式,也热衷于去进行每一次产品的决策。他们也许会放弃工程的兴趣,从而成为一名好的产品经理。我曾经和很多具备产品思维的工程师合作,也让自己转变为其中一员。在公司中构建世界级的产品,具备产品思维的工程师们能够把团队提高到一个新的台阶。
在致力于开发面向用户的功能并且能够和产品经理合作的团队,具备产品思维的工程师会产生巨大的影响。他们会经常成为关键的贡献者,与产品经理高效合作,并容易晋升为团队的领导者。
因此有产品思维的工程师具备哪些关键特质,你怎么变成具备产品思维?
1,积极主动地对待产品理念或观点
具备产品思维的工程师不会满足于拿到设计说明后就匆匆忙忙地立即执行。他们会思考其他的创意,并找产品经理提出这些想法。他们会经常挑战现有的设计规范,建议可能更优的替代性方案。
2,对业务,用户的行为,数据有浓厚的兴趣
具备产品思维的工程师们的想法和创意都不是凭空而来的。他们会花时间去了解企业是如何进行商业运作的,产品又是如何配合商业运作,以及最终要达到什么样的商业目标。
此外,他们也会换位思考,试图理解产品将给用户带来什么感受,以及用户如何从使用产品中受益。他们通常会直接去深入研究商业数据和用户体验指标,并尽其所能获取这些数据。如果可能的话,他们会直接访问相关数据,或者找产品经理,数据专家去获取这些信息。工程师这样去做,往往就是出于他们好奇的天性。
3,具有强烈的好奇心,能打破沙锅问到底
具备产品意识的工程师喜欢去理解所有事物背后的那个“为什么?”。
- 为什么产品要开发这个功能,而不开发另一个功能呢?
- 为什么要首先发布这一里程碑版本,而不是选择另一个更简单的里程碑版本呢?
- 为什么我们不选择一种更全面彻底的度量方式来验证呢?
他们能够自主地去找他们想要的答案。他们也会向产品经理和其他业务人员寻求帮助,探寻其他与产品相关问题的答案。尽管他们经常会问很多问题,但是他们会设法避免让他人觉得不舒适,竭力与同事建立起长期牢固的合作关系。
4,强大的沟通能力,与非工程师同事建立良好的关系
具备产品意识的工程师喜欢与软件工程领域外的同事们交谈,了解他们在做什么,以及为什么要做?
他们非常善于沟通,表现出对于学习以及其他学科工作方式的浓厚兴趣。我经常能够看到他们和其他专业的同事们一起喝咖啡,吃午饭或者在走廊上聊天。
5,能够在产品和工程两方面进行较好的权衡
具备产品思维的工程师们对产品的原理以及软件工程都有深刻的理解,他们可以提出非常独到的建议,而很少有别人可以做到。
例如:在确定产品构建的范围时,某项产品关键特性的编程工作量可能非常巨大。许多工程师会开始寻找减少工作量的方法,并思考减少工作量对该项关键功能可能产生的影响。
具备产品意识的工程师会从两个角度来解决这个问题:
- 一方面在工程上进行取舍,明确可能对产品产生的影响
- 另一方面他们还会对产品功能进行取舍,评估对工程工作量的影响
他们经常会找产品经理,在保持产品体验相似的前提下,建议构建一个完全不同的功能,从而使得编程的工作量大幅降低。
兼顾产品和工程,平衡两者的影响,是具备产品意识工程师们拥有的独特优势。他们可以快速地在同一枚硬币的两面之间来回切换,产品特性,工程工作量和两者的平衡。由于他们利用其工程和产品两方面的洞察力,在头脑中快速完成上述权衡,所以他们能够很快得出有价值的结论。
6,务实精神处理极端案例
极端场景的案例是一件有意思的事情。有的工程师常常会忘记极端场景的存在,最终从产品,测试人员或者最终用户那里得到反馈之后,才不得不回过头来解决这些问题。这是一个极端的情况,如果在一个新产品或者功能中总是试图处理所有可能的极端情况,则可能会耗费大量的人力。
具备产品思维的工程师会很快制定出关于极端案例的计划,并思考如何减少工作量,并经常会找到不需要额外工作量的解决方案。他们专注于“最小可用产品”的概念,评估极端案例的影响和处理所需的工作量。他们会提供较好的折衷建议:在发布早期版本之前,列出大多数可能出错的地方,并提出需要解决哪些边缘案例的建议。
例如:对于一个0.1%的用户可能会遇到的错误,他们会考虑修复这一错误涉及的工作量,以及如果什么都不做会发生的后果。在产品验证过程中,客服专员是否可以在这个案例中帮助用户?用户下一次再遇到同样的问题可以自己尝试成功解决吗?对产品进行略微调整,是否就可以避免极端案例?
7,支持产品的快速验证
在开发的产品功能上线之前,具有产品思维的工程师们就提前准备好了工具来获取早期的用户意见反馈。他们可以和同事一起进行走廊测试,提前向产品经理演示尚在开发中的功能,也可以在Beta版本发布前组织团队来一场“bug大扫荡”,当然还有许多其他创造性的方法。他们会一直思考这个问题:“我们怎样才能验证用户,会像我们预期的那样来使用这个功能?”
8,对产品功能端到端负责
经验丰富的工程师们都会对自己的工作端到端的负责到底。从拿到产品规范到部署实施,再到发布产品并最终验证产品能否正常工作。除了上述这些工作之外,具有产品意识的工程师通常会举一反三,再进一步思考。
他们坚信,只有在获得用户行为和商业指标的结果之后,他们的工作才算全部完成。产品上线后,他们仍然会积极与产品经理,数据专家和客户支持渠道保持密切沟通,以便了解产品功能在现实世界中的使用情况。要获得足够得出结论的可靠数据通常需要几周时间。即使他们可能已经接手下一个新项目,他们仍然会把检查上一项目的成果作为首要任务之一。这并不是一项特别耗时的活动,但是特别需要一种锲而不舍的精神,推动那些想要知道自己的辛勤劳动究竟如何的工程师们,去坚持探寻答案。
当开发的某项功能表现得不如预期时,他们会特别好奇问题出在哪里?他们对于找到产品计划和现实世界结果之间存在差距的根本原因怀有浓厚的兴趣,程度不亚于他们在代码中找到难以复现的缺陷并成功除错。他们经常会花费大量的时间,就某些假设和心得与产品经理和数据专家展开辩论。
9,通过刻意练习,形成强大的产品本能
对于具有产品意识的工程师来说,一个典型的项目通常是这样的:
- 他们会提出很多问题,来准确理解构建产品功能的原因。
- 他们会提供建议和取舍方案,其中某些建议会反映在修订后的产品设计规范中。
- 他们会很快开发出相关功能,以便尽早得到反馈意见。
- 在产品发布之后,他们会积极跟进了解相关产品功能是否符合预期。
- 如果没有达到预期,他们会深入挖掘原因,并学到产品在现实世界中使用的新知识。
每完成一个项目,他们对产品的理解就会加深,他们开始培养起越来越好的产品直觉。等到下一个项目,他们会贡献更多有价值的建议。随着时间推移,他们会成为产品经理最愿意去讨教的大专家,在新的项目还未开始之前就会提前去征求他们的意见。他们将名声在外,为持续的职业发展打开更多的大门。