之前我参加了一次真人CS团建活动,场景相当特别。我们产品团队只有几个产品经理,但却有几十位程序员,场面颇为壮观。在这场活动中,一个产品经理被BB弹打得狼狈不堪,他急中生智,大喊:“我以前也写过代码!我是自己人!”尽管其他程序员表示感动,但仍然继续“施暴”,将他按在地上“痛打半个小时”。
我在哈工大学习计算机,从事了六年的开发工作,但毕业后却转向了产品管理。对于程序员与产品经理之间的微妙关系,我深有体会。作为两者之间的桥梁,我更能理解双方在工作中出现的矛盾和摩擦。虽然双方经常存在需求上的分歧,但实质上都是为了产品的成功而努力。
作为产品经理,我逐渐认识到研发与产品之间的合作需要更多的理解和沟通。对于研发人员来说,他们需要为更改需求做好准备。在互联网行业,需求变更频繁,这是家常便饭。研发人员需要提高代码的可复用性和可扩展性,以便在需求变更时能够迅速应对。他们还需要根据产品的整体规划来选择最佳的实现方案,并合理预留出修整的时间。
为了更好地理解需求,防止返工,研发团队与产品团队需要加强沟通。特别是在涉及重大功能开发时,双方需要共同讨论并明确需求。我曾遇到过一些团队因为缺乏沟通而导致开发结果不尽人意的情况。为了避免这种情况的发生,我们需要加强团队的协作和沟通,确保每个团队成员都能理解并认同产品的方向和目标。
一、深入理解并规划产品功能
对于产品经理来说,理解并规划产品功能是基石。并不需要深奥的理论学习,只需对产品进行深入了解,就能避免许多不必要的麻烦和返工。比如,产品页面的加载策略,是提前缓存还是每次刷新,都需要根据用户的实际使用情境来决策,这些情境是产品经理需要清晰掌握的。
产品经理在功能细节上的理解可能并不涉及实现层面,这就需要研发团队深入去理解这些需求,并做出合理的判断。如果在开发之初就能预见到功能实现与产品经理预期的不同,那么及时沟通调整就至关重要,避免开发完成后再进行大规模的重做,那样对任何一方来说成本都太高了。
二、有效沟通:用数据、理论与通俗的解释来对话
程序员在沟通时,应避免使用诸如“这个做不了,说了你也不懂”或“这个太难,懒得跟你解释”这样的说法。正确的方式应该是用通俗易懂的事实来解释。例如,如果某个弹窗功能现在无法实现,那就应该详细解释为什么现在做不到,需要多久的时间来实现,以及为什么需要那么长时间。通过层层递进式的解释,把所有理由都说清楚,只要产品经理是通情达理的,他就会理解你。这样的沟通方式也有助于他找到其他可接受的解决方案。
对于产品经理来说,要在不断的迭代和需求更改中被程序员认可甚至尊重,最重要的是“讲道理”。不要说出“我不管,反正得做完”或者“老板就这么定的,我也没办法”这样不负责任的话。
三、产品规划:短期规划与长期愿景
四、明确且具体的需求文档
对于产品经理来说,提供具体的需求文档至关重要。这要求做到两点:第一,让产品需求文档非常具体,不仅包括页面逻辑、页面布局、功能逻辑,还包括每个功能的细节使用描述。第二,说明每个需求背后的原因。这样,程序员不仅能理解需求本身,还能明白需求背后的逻辑和目的,从而选择更合理的方案来实现。
五、了解研发背景与能力
作为技术领域的先驱者,刘飞老师对编程与产品设计有着深刻的理解。他深知,开发的指南和手册所涵盖的,是具体的实现细节,对于深入理解安卓的基本控件或是H5的常用交互并无直接帮助。因为每一种产品都有其独特的特性和代码特点,我们只需专注于我们负责产品的技术背景即可。有些初学者可能选择从C语言开始探索,这虽然值得尊重,但对于某些特定产品的开发而言,可能并不是最佳的起点,这种选择让人难免感到遗憾。
阅读这篇文章,仿佛就像是听到一位资深技术专家与程序员、产品经理之间的一场深度对话。它有助于减少彼此间的误解和冲突,提高沟通效率。我对刘飞老师的分享深感认同,并从中获得了极大的启示。如果你在阅读这篇文章后,也能感受到其中的价值,那么请通过私信或留言告诉我,我会感到非常高兴。
这篇文章的链接地址是:[ |