产品经理需不需要懂开发?

产品经理需要了解产品实现采用什么架构之类的吗?
已邀请:
扎马斯

扎马斯 - 当你成功的时候,你说的所有话都是真理

赞同来自: 职场小二哥

-在不了解技术的前提下,我是这样揣测这件事情的:

--优点:①懂技术,提高效率,以免做出需求后,才被工程师告知无法实现。②对开发时间有把控,能预估时间,合理安排开发进度。

--缺点:①限制了想法,自己实现不了的,不一定其他工程师攻克不了。②技术更新太快,如果不能紧跟潮流,必然实现不了好的产品。③产品、技术的学习时间、精力的冲突。

--总结:全栈肯定是好的,但考验精力、智商、学习方式等。《浪潮之巅》作者吴军,听罗胖说爱好很多,但人家什么也落不下。投资人、作者、科学家、旅游摄影,众多的爱好井井有条,互不耽搁。
匿名用户

匿名用户

赞同来自: Wings

最近七年,我都在做互联网产品,其中前五年分别在创业公司和上市公司里,做别人的产品;近两年在创业,做自己的产品。

我的体会是:产品经理需要懂技术,创业者尤其需要。但前提是你总觉得有股憋不住的想要做点儿什么的冲动,如果打算混安稳日子,特别是在大公司,你什么都不需要懂,反而要小心别“知道的太多了”,傻人一生平安。

做产品这几年,和开发工程师打交道最多,和他们交流通常有两大忌:

一. 忌不懂技术

更准确的说,是不能缺乏设计、开发一个互联网产品基本的技术常识,比如至少要清楚一个网站从不存在到能被用户访问,需要哪些必须的环节;也要明白一个App从你的脑海走到用户的手机里,需要经历怎样的过程。

有常识,当然不一定就能做出好产品,但没常识,就很象在村里呆了半辈子的人乍到城市,一举一动即使小心翼翼,也没法儿不透着突兀和不和谐。

很多公司都有完全不懂技术的产品人,大多年龄较长,也许是互联网出现的时候,他们已经过了充满好奇和渴望未知的年龄,不愿意放低身段去学习新东西,喜欢只凭着想象和自己的生活经验就开喷,间或以若干近期热门关键词作为点缀,以示自己尚蹲在潮流尖端。

这样的人也许能忽悠某些领导,但一定不招工程师待见,他们可能什么都不说,但心里已经开始等着看笑话,交给他们的开发需求,自然也是能拖则拖、能蒙则蒙。

二. 忌懂技术

我遇到不少工程师喜欢说:“只要产品需求明确,技术上一切都能实现。”

这句话听起来相当豪迈,也让产品经理大为放心,觉得技术真是产品的坚强后盾。但其实传递了一个特别糟糕的信号。

当工程师这么说的时候,潜台词是:“你弄好你自己的事儿就行了,别来管我!”而且这种说法隐含着一个乐观但显然并不现实的假设:技术是无所不能的,他(掌握技术的人)也象灯神一样,可以实现你的任何愿望,只要你能明确的描述它。

我不知道阿拉丁说完愿望之后,假如胆敢继续追问灯神将具体采用何种技术方案来实现的话,会不会被塞到灯里,但我知道很多工程师在发现你关注技术层面过深的时候,都会有种领地被侵犯的感觉。

这就是工程师维护自己专业槽的本能,与行业中其它角色相比,工程师地位不是最高,待遇也不是最好,还经常加班加的要死要活的,唯一得天独厚的优势,就是专业槽比任何角色都深。关于产品、关于UI、甚至关于商业模式每个从业人员都能喷上几句,要是说到用户体验,那更是连业外人士都敢大喷特喷而没有任何心理负担:反正我就是用户嘛,越傻越光荣。而一旦涉及到代码,大多数人就直接晕菜了。想想那些UI设计师的苦逼段子,工作时没有喷子们指手划脚的干扰,真是上帝赋予工程师独有的恩赐。

所以当他们认为有外人正试图跨越这条槽时,自然会有所警惕,甚至体现出抵制和敌意。当一个产品经理发现工程师开始比较密集的使用术语或拼命把简单问题往复杂了说,你应该知道,他们在槽边开始向你射箭了。

从整个产品乃至公司的角度来说,各个专业角色之间的专业槽都是应该被填平的,产品经理不该对工程师玩挟天子以令诸侯,不要总假装自己是用户的三个代表,动不动就拿想象中的“用户需求”当“奉天承运”来用;工程师也不必总装灯神,假装无所不能很累的,工程师之间必有能力高下之分,其实有时候功能做不了或做不好,纯粹只是因为工程师能力所限。如果彼此坦诚一些,大可以提前有效沟通,尽可能避开那些投入产出比过低的部分,有不少工程师不愿意拿出来讨论的技术实现上的细节,都是值得产品经理参与进来的,在这些细节上如何取舍与抉择,会对产品的开发进度、性能甚至功能带来极大的影响,如果沟通到位,往往可以让开发工程师少做大量无用功。在我开始自己动手写代码之后,对这一点有了越来越深的体会。

下面就说说我为什么开始学写代码,算是回答问题的后半部分吧。

在我做互联网产品的前五年里,我对技术的了解仅维持在常识范畴,能够手写的代码只有html和css,连js都不会,更别提任何适用于Web开发的编程语言了。我一直认为自己无法完全亲手写一个哪怕是最简单的动态网站,是作为互联网产品人员,很大的缺陷和耻辱。

工程师们一般倒不这么觉得,和他们聊天的时候,有时顺嘴喷一些对技术架构或某些技术问题的看法,立刻遭到赞扬:“你很懂技术嘛!”这时马上打着哈哈说:“懂个p啊,我连hello world都不会写,完全是纸上谈兵。”于是嬉笑声中,一群人把手里的箭收起来了。

但我压根儿就TM不想只能纸上谈兵,2009年,我不顾当时三十二岁的高龄,悍然决定要学Ruby,买了书、装好环境开始看书,敲代码,坚持了几天,然后失败了,考虑到也许Ruby对我来说太难,又尝试了Python,结果还是失败了。消沉几天后不死心,又买了一本iPhone开发的书,还趁机决定买了台27寸的iMac,但悲剧是只翻了翻书,连Xcode都没敢下就直接放弃了,这书上什么都不讲的啊!上来就是大段大段的代码啊!而且obj-c的代码都巨长,完全看不懂。

后来我想,这件事有两个收获:一. 发现了自己智商的边界。二. 我有了一台iMac。

转眼又过了一年多,想要自己动手做一个iPhone上的App的感觉越来越强烈,快压抑不住了。于是在某一天,我好了伤疤忘了疼似的把那本几乎没有折痕的iPhone开发基础教程又翻出来,等待Xcode下载的过程中,暗下决心:看不懂我也把它背下来。

后来发现笨办法至少对我来说,还挺管用的:照着书敲代码,能正常运行的话,就合上书,再敲一遍。一般重复四五次就能记得很牢了。合着书,劈里啪啦熟练的敲着自己还不知道是什么意思的代码,加上Xcode的自动补全很给力,几分钟就可以折腾出一大屏花花绿绿的代码,而且还能在iPhone上运行,这时会产生一种已经会写iPhone App的错觉,很奇妙。

人的大脑也很奇妙,你如果已经背下来了,本来不理解的就会慢慢自动理解,就这样背了一段又一段代码之后,突然发现:我明白是怎么回事儿了。之后就开始给自己提出各种小的不能再小的功能需求,尝试用这些代码去实现,每实现一个,都欣喜若狂:我能显示按钮了!我能弹出对话框了!我能写滚动列表了!我能发一条推送信息了!⋯⋯

这些事儿在熟练之后,也许就像喝口水一样平淡,但却能给初学者带来巨大的快乐,我一直觉得,能否始终保持如初学者般的热情、专注,决定了在做某件事时能走多远,能做多好。

由于书上所用的Xcode版本问题和我用的不同以及一些印刷错误,书上的代码不会总是百分之百能运行,有时会报错,只能上网用尽一切办法搜,搜索的过程中,就会慢慢看到一些专门的技术论坛、Blog,最终不可避免的会发现Stack Overflow这个神奇的网站,你遇到的大部分问题,都能在上面找到答案。

当实现书上的功能已经不能带来狂喜的时候,就会忍不住想把自己束缚了很久的各种idea放出来了,终于可以亲手去做它,而不是局限在画画原型图、写写需求说明最后还要虔诚的擦拭神灯,呼唤灯神们显灵这样隔靴搔痒的做产品。

开发的过程对我来说充满了乐趣,因为写代码的时候,世界变的简单而美好,某个做法对还是错,你不需要自己反复猜测,也不需要和任何人没完没了争辩,编译器就是神圣的裁判。你的每个操作都能得到及时、明确的反馈,而且拥有近乎奢侈的试错机会,从这个角度来看,编程的乐趣倒是有点儿象玩游戏。

当然也会遇到无数的问题,Stack Overflow、Github、Bitbucket、mailing list会慢慢成为你的朋友。

在能够独自写出一个iPhone App并把它放到App Store上之后,我又发现还需要再学一门语言,用来开发网站以及需要在App中调用的RESTful Web Service,于是不顾三十五岁的高龄,再一次悍然打起了Python的主意,有了学obj-c的经验,知道关键是要能狠得下心和静得下心来,看什么书,其实区别不是特别大,所以我就用了免费的Learn Python The Hard Way,用前面提到的方法,跟着做了一遍(前半部分比较简单,可以每天做上十几个exercise,后面速度可能会慢一点儿),了解了Python怎么写之后,马上开始看Django Book 2.0,只看到第九章,就等不及用同样的方法把Django Tutorial做了两遍,接着惊喜的发现已经可以写一个简单但完整的网站了。然后很快试着用Django写了一个特别小的针对某垂直领域的工具类网站,上线跑了一段时间,昨天晚上结束免费试用,开始收费,现在看到已有几个付费用户,我很欣慰。

至于技术需要懂到什么程度,我觉得要是花几个月学的东西就够用一辈子,这买卖也太划算了,尤其是在技术领域,一定会需要持续学习,但对于我来说,已经没有资格象十几二十岁的年轻人那样仅凭兴趣广泛的学,我目前对这件事的原则非常功利:马上要用到的,能显著提高效率或者公认是最佳实践的就学,否则就先不学,尽量不折腾、严格控制投入的时间和精力。

比如写好的代码放到Server上,虽然只要能跑就算是部署成功了,但公认的最佳实践是使用virtualenv隔离Python环境,这样可以减少以后很多的麻烦,那就值得多花时间去了解,去应用;使用Fabric配合Git进行自动化部署可以大大提高效率,那就也值得花时间去学怎么用。

我也知道可以用Memcached或Redis来做缓存,提高应用性能;或是用Rabbit Mq和Celery来做异步队列,可以改善同步执行耗时较久的任务给用户带来的不爽感;还有Node.js似乎比传统的Web开发语言更适合做RESTful API ⋯⋯ 不过这些都不是目前最紧迫的问题,所以虽然我还不会而且确定会有用,但先不去学。

一没留神,喷了几千字,还是打住吧,看来中年男人的啰嗦算是没救了。

最后还是总结一下,就一句啊:

产品经理懂技术 = 流氓会武术。你要是觉得帮派够大,自己脑子又好用到可以当师爷,那不会武术也凑合;要不巧是个和我一样没什么团队精神,又老喜欢独来独往的流氓,还想只凭着脑子就能连点儿防身术都不练,恐怕很容易被人打成爬行动物。

比较严肃的总结是:产品经理懂技术,在没资源的时候可以用最低成本把事儿办了,有资源的时候可以把资源用的更有效率。
基德大神

基德大神 - 所有不期而遇都是在路上。

赞同来自:

做过几个产品后,觉得产品经理会技术的话还是有一定的优势的,首先不容易被技术忽悠,其次就是在有变更需求的时候,可以大概知道继续改动的幅度大不大,会不会影响到项目的排期,再次就是懂技术在逻辑上会更加严谨,尤其是后台技术,在产品开发时候对接的最多就是后台了。
职场小二哥

职场小二哥 - 我是职场搬运工

赞同来自:

这个没有正确答案。

多懂一些肯定是好事,方便做产品设计和研发沟通。

如果不懂,也没毛病,只要能把需求实现就好。

毕竟每个产品经理走的线路是可以不一样的。有些擅长交互、有的擅长用户体验、有的擅长算法、有的擅长后台、有的擅长技术性产品等等
Wings

Wings

赞同来自:

依我看,产品经理需要懂技术,而且还要写代码,写过代码和看过书完全是两回事。

但是不需要水平有多高。

哥这么多年七七八八学了点技术,虽然至今还是菜鸟,但是比完全不懂技术的,还是感觉踏实很多。

不过我从一开始就是最简单最实用的VBA、VBS、JS入手,目的就是操作EXCEL操作电脑里的文件,跟DOS批处理似的,生产出来的代码直接就是简化自己日常工作的。到后来我做的东西给全公司人用了,直接提高了大家的生产效率,以至于有人要求技术也开发一个专业的产品来,可惜产品出来大家还是宁可用我的脚本,不用专业技术做的EXE程序,虽然我的脚本程序几乎没有界面,但操作简单够智能。

我建议所有文科生想学技术的,不要跟风开发什么苹果APP,先学点对自己工作直接有用的脚本语言,简单归简单,其实没啥可耻的。

做出来的东西自己就是第一个用户,每一次的改进对自己都有好处。这感觉是非常的爽。

一上来就学一些特高级特潮流的语言,或者特低级特底层的语言,我觉得都没什么好处。你要是问专业程序员,他肯定推荐你学C、C++什么的,理由是学了之后基础扎实,啥也不惧,我擦,他自己对外宣称要花一辈子吐血去学的东西, 再让你去学,你说这算怎么回事?

你懂得if else,懂得循环,懂得数据库怎么回事,懂得面向对象是啥意思,这就够了。你说你要学会用指针有什么意义,你会操作内存又有什么意义,你理解什么是多态又有什么意义?

学技术的目的是为了用,而不是做屠龙高手,华山论剑。

(其实有很多技术人员, 貌似屠龙术不少,一张嘴就是没有啥实现不了的,真到了开发的时候,复杂点的业务逻辑都能把他给圈糊涂了。)

依我看最好的学习办法不是看书,而是直接COPY帮助文档里的示例代码,改,调试。

还有,不要被IDE折腾死了,IDE固然方便高效,但是新手装个IDE真是挺烦的。

所以建议学技术还是先从脚本开始(但不建议学rubby和python),开发产品先从网页开始。

你写PHP\js代码,根本不需要什么IDE,干净利落editplus直接就上了,调试直接就浏览器。你搞什么安卓开发,你装java装eclipse完了还要下载一大堆android的东西,速度慢得跟牛一样,一大堆版本问题,还有模拟器。你搞IOS,你还要有MAC,还要注册神马的。

搞完这些你都吐了,往电脑里装了N多乱七八糟的玩意,却连一句代码都不懂,你说你是何必?你搞网站,网上有现成的三件套,apache+mysql+php,一次性全装好,放个只有一句echo的页面到指定文件夹,当时就可以看到“网站”效果。至于VBA,直接在word\excel\ppt里就带了,录个宏, 你改一改就是你的第一个可运行有用的程序!批量处理一些EXCEL上的工作,瞬间解放生产力。

神马hello world,关你屁事啊?!

花几天时间,跨过最初的障碍,很快你就可以理解工程师的爽和痛了。

再往后,你要学C学JAVA,做个windows下的EXE,做个安卓APP,那都是看你的毅力了,起码你不会被唬住了。什么代码之美,各种程序员们争执的牛B问题,你都可以逐步理解。

以后技术再跟你说什么,你哪怕不懂,上网搜搜也能明白。

如果你非要选择买个什么很吊的书在那里狂看,十有八九你永远跨不过障碍。到头来你还是啥也不明白。

如果你连VBA和JS都害怕。你可以学HTML+CSS,这些虽然不算编程,但至少学了有收获有用,没事弄个博客,自己还可以改改界面,比你啃完一本破书还是啥也不懂要强多了。不过懂了技术,不代表就能和程序员和谐相处。

如果不懂人情事故,就是程序员转产品,也未必能和程序员打好交道。

参与讨论请先登录注册