作为一名程序员,你希望与怎样的产品经理合作?

产品经理与开发的矛盾

最近一则产品经理和开发打架的新闻在互联网圈闹得沸沸扬扬,产品经理要求开发出app主题颜色随用户手机壳颜色变化的工能。产品经理与开发之间的各种段子由来已久,开发吐槽产品不懂技术,乱改需求,产品吐槽开发天天写bug,能力太差。

其实,在一个项目的生命周期中,产品经理需要与各方沟通,做到项目的全生命周期管理。除了给开发人员提需求,产品经理的职责还有很多。产品经理需要与需求方沟通做需求调研,了解业务流程,需要与视觉设计人员沟通确定视觉页面与交互,需要与测试人员及时沟通确保开发质量,等等等等。但是为什么好像只有开发和产品经理的矛盾很深呢?

矛盾产生的几点原因

首先,一个需求,从需求方到产品经理,到交互设计,都是具体的内容,都是现实生活中存在的实物,是可以直接感知的,所以产品经理和需求方,和交互设计人员的沟通是比较顺畅的,不会有太多的矛盾和误解。

而程序开发不一样,程序员将一个产品需求文档转化为程序,转化为代码,是一个从具体的现实世界到抽象的过程,要将现实生活中的规则变成一行一行的逻辑代码。从具体到抽象,中间隔着一层纱。产品经理不太好理解开发人员的代码思维,开发人员通常也只盯着需求,很少去考虑需求方的体验与正在写的代码的关联。因此,从现实世界到抽象,真实需求的在转换过程中产生的偏差,导致了产品经理和开发的之间,总是有一些误会的存在。

其次,现实世界的复杂性导致了软件开发的复杂化。需求方改变主意或发现原来的设计不完美,都有可能导致产品经理在开发过程中频繁改动需求。对于开发人员,虽然我们通过领域驱动设计以及面向对象与分析来应对软件开发的复杂性,但是在实际的项目长期开发中,我们还是可能会把一个大型项目开发的一团糟。初期设计的不完善、开发人员变动,这些都可能导致项目代码的复杂程度指数升高,使项目后期开发的举步维艰。世界的复杂性,导致了产品与开发的工作过程,不会总是那么完美。

另外,技术的局限性也是引起产品与开发产生误解的一个重要原因。产品经理大多对技术了解没有那么深入,而日新月异发展又让人们都有种技术是万能的错觉。前边提到的让手机主题的颜色随手机壳变化是一个比较极端的例子,正常人大都能看出来这个需求实现的难度。但是其实,对于很多常人看起来来并不是很难的需求,对于开发来基本不可能实现,或者在公司现有的技术栈下,是实现不了的。

展望

因此,在这里我希望可以思考讨论一下,到底产品和开发的关系应该是怎样的。暂定以下几篇文章待写,慢慢思考,慢慢写。

  • 开发和产品的比例多少才合理?

这个肯定要分很多种情况讨论了,产品驱动还是技术驱动型公司?公司所属的行业?

之前所在的互联网教育行业,产品驱动,开发产品大概1.5比1。

现在的健康产业,大概10比1,感觉产品有点少。

  • 开发希望遇到什么样的产品经理?
  • 产品希望遇到什么样的开发人员?

现在能想到的,开发和产品都更多去接触对方的领域,更多去了解对方的知识吧。