做为一名工程师,免不了与产品经理打交道,如果公司大一些,数据量多一些,还会有数据工程师这个角色。今天会和你主要聊一聊在工作中,产品经理和数据工程师在哪些方面对我们工程师的帮助最大,以及我从他们身上都学到了些什么。

先来说说产品经理

我工作过的两个公司在早期的时候,很多服务器相关的研发组都是没有产品经理的。这种事在国内公司里比较少见,因为国内大部分产品都是由产品经理来驱动的,但在硅谷很多早期的公司里,这并不算太奇怪,毕竟很多产品经理的职责是工程师兼有的。

随着公司的发展和壮大,每个小组都有了固定的产品经理角色,我接触的产品经理也就慢慢多了起来。

在这个从无到有的过程中,对我帮助最大的是什么呢?我觉得应该是对项目边界和进度把控。

第一,当一个公司足够大的时候,虽然自顶而下管理,很多大的目标和方向在公司内保持了一致性,但是还有很多东西是需要讨论和确定的。

比如:产品和项目的边界如何确定,应该由哪个组做;如果两个组的工作范围有一定的重合性,如何确保两个组的工作是互补而不是重复甚至矛盾的;如果两个组要做的东西有一定的依赖性,在时间安排上如何保证被依赖的部分可以提前完成。

这样一些跨组协调,虽然技术管理者在一定程度上会有很大的话语权,也会参与所有的讨论和决策,但是有产品经理的帮助,他们可以更多把精力放在技术相关的问题上。

第二,不论你是在哪个组,做出来的产品一定是给人用的,使用的人就是你的用户。他们可能就是公司外部客户,也可能是公司内部另一个组的工程师。

有客户就会有需求,当有不同方面的人给你提出不同需求的时候,如何去合理地设定优先级,如何去和那些需求没有被满足的组沟通,如何有技巧地挡掉一些不那么重要的需求等等。这些都需要产品经理做大量的工作,让工程师把时间和精力更加专注地放在最重要最紧急的项目上。

第三,很多产品经理也会和技术管理者一起,兼任项目管理的职责。小到帮助安排各种定期不定期的会议,负责会议记录;大到帮助技术管理者一起制定项目的进度表,定期进行工程进度总结汇报等。

那么在这个过程中,技术经理或者技术管理者又给产品经理提供哪些帮助呢?

这包括:对某一个项目或者子项目的技术难度的工作量进行评估;给出多个可能的技术方案,包括长期方案和短期方案,以及每个方案的利弊;对组员能力的评估,知道谁可能去做什么,组里现在是不是有人有经验或者能力,去负责某个项目,攻克技术点等等。这样产品经理可以更好地设计产品特征,设定需求边界。

从产品经理身上,我学了很多东西,这包括了:各种沟通能力,会议、邮件、一对一面谈、处理和制定优先级的能力、如何回绝不合理的需求,还有一些项目管理和追踪的技巧。

再来说说数据工程师

关于数据工程师的文章很多,我在自己的公众号和之前的专栏文章(每个工程师都应该了解的:A/B 测试)都略有涉及。这里着重讲讲他们在工程协作中什么时候和工程师的交互最多,以及在合作中有哪些地方让我印象深刻。

硅谷很多项目在产品开发初期就会有数据工程师的参与。

包括如何设计数据实验,了解产品或者项目是不是达到预期的效果;哪些老的数据和指标(Metrics)是需要监控的,以保证不会影响其他的产品或者项目;哪些地方可以通过数据模型给出最优方案 —— 这些地方通常是可以使用机器学习的部分。

当然,在很多专门的机器学习应用领域,数据工程师的重要性更加不言而喻。

在产品开发后期,或者产品发布初期,数据工程师会帮助调整各种监控系统或者预警系统,确保当系统出现异常,或者某些用户行为不在预料之中的时候,工程师们能第一时间了解情况。

与软件工程师相比,数据工程师有着不同的技术背景,他们的很多能力是和工程师互补的,但是有一件事,是我们可以去学习并为我所用的,那就是对数据的敏感性。

记得有一次,生产线上的一个 Bug,导致整个产品线有一个转化率变得格外差。因为问题比较严重,好几个工程师都去调试并定位错误,但是都没能找到问题所在。

结果他们的数据工程师通过观察不同指标下数据变化的时间线,在一些数据变化的异常曲线里找到了问题发生的关键时间点;再去找那个时间所有的改动,包括代码改动和灰度发布控制开关的变化,从而找出了问题。

另一个案例是听朋友说的,他也做支付,产品的一个代码改动,没有设置合适的异常,也就是该抛异常的地方没有把异常扔出来,结果数据下溢导致一笔金额数字错误。因为是很少见的场景,所以测试的时候也没有发现,但是数据工程师在数据图中的异常报警发现了这个问题,减少了一笔不必要的损失。

见微知著,其实我描述的案例,仅仅体现了数据工程师的一小部分价值。在大数据和人工智能的时代,数据工程师的作用正变得越来越不可替代。

今天主要讲了一些我和产品经理、数据工程师一起工作的故事,这其中包括了我自己的感受。

做为一个软件工程师,有机会和他们一起工作,从他们视角去看待问题,可以拓展自己的知识领域和眼界,一方面可以把产品做得更好,另一方面,让自己成为一个既有产品思维,又有数据思维的工程师,会让你在这个时代具备更强的竞争力。

关于产品经理的主题,你如果有兴趣了解,可以去订阅隔壁邱岳老师的“产品手记”。

无论是你工程师、产品经理还是数据工程师,请在留言里写下你的故事,我们一起成长。感谢你的收听,我们下期再见。