这是一个被问及了一次、一次又一次的问题。
我就是一个会写代码的产品经理。我曾作为不同的角色有大约10年的专业编程经验,甚至还写过基本技术书籍和做过一些演讲。大约5年前,我转向了做软件产品管理,这使得我可以只在晚上和周末才写代码(只是因为兴趣)。
以我的浅见,如果你有专业的软件编程经验的话,这对你做产品经理觉得是一个很大的加分项。如果你缺乏这些经验,可以每周花费几小时来学习一下。
理解开发人员
产品管理的一部分,是做一个优秀的沟通和谈判代表。有过开发经验的价值是,你可以更好的与你正在一起工作的开发人员用他们的语言沟通。
如果你自己曾经开发过软件:
-
你会知道需求变更的感觉以及与团队中其他固执己见的人的代码有冲突时的压力
-
你会知道在一个严格的截至期限下,使用一个设计不合理的第三方 API 的感受
-
你会明白回答“需要多长时间”会牵涉到多少方面
-
你会被 KISS, YAGNI 以及 Conway’s Law所吸引
-
你会花费几天甚至几周时间解决Heisenbugs,每次你以为你已经解决了问题,之后你就会收到一份“不起作用”的报告,因为一些特殊的浏览器、操作系统、设备或者分辨率大小
-
这意味着你已经分心了足够长的时间,你应该把干扰降到***
-
你会感受到代码重构带来的恐惧
作为一个产品经理,了解这些可以使你把自己放在一个更好的位置与软件开发人员工作、了解他们正在处理的挑战、更好的达到你期望的目标。
当然,不要参与讨论代码设计、架构以及使用何种语言,这从来都不是你的工作职责,如果你真这么做了,结果可能是弊大于利的。
如果不会写代码会怎样?
缺乏写代码的经验就意味着不能成为一个合格的产品经理吗?
在过去的大约15年时间内,我至少与4位不懂代码,但却非常优秀的产品经理一起工作过,这意味着不懂代码也可以做好产品经理。
但更多的情况下,我看到的是硬币的另一面,产品经理经常与开发人员争吵,因为他们缺乏最基本的软件开发常识。当然,他们的这种争吵并没有什么帮助。相反,这意味着他们的项目经常不能实现。
根据我工作过的产品经理来看,答案是很明确的:这要看情况。但其中有三大要素是必须的:兴趣(关注、倾听)、谦卑(承认无知、提出问题),并愿意学习(例如,你真正阅读的人月神话)。