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

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

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

一. 忌不懂技术

更准确的说,是不能缺乏设计、开发一个互联网产品基本的技术常识,比如至少要清楚一个网站从不存在到能被用户访问,需要哪些必须的环节;也要明白一个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 ⋯⋯ 不过这些都不是目前最紧迫的问题,所以虽然我还不会而且确定会有用,但先不去学。

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

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

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

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

转载于:https://www.cnblogs.com/zeushuang/archive/2012/07/24/2606986.html

产品经理懂技术=流氓会武术(zz)相关推荐

  1. 【总结整理】写给非技术产品经理的技术能力要求----摘自《人人都是产品经理》...

    写给非技术产品经理的技术能力要求 人人都是产品经理  订阅专栏 产品经理和运营人的学习社区 2018-10-23 2.4万 159 73 从零开始学运营,10年经验运营总监亲授,2天线下集训+1年在线 ...

  2. 科技公司产品经理和技术总监哪个更重要?

    我们先看第一点. 产品经理,划个重点--经理 技术总监,划个重点--总监 如果我们先不看前缀,仅仅从这个职级来说的话,毫无疑问的,总监是比经理强的. 总监是属于高层管理职位,经理是属于中层管理职位. ...

  3. 产品经理笔试-技术名词2

    产品经理笔试-技术名词2 1.算法是解决问题的有限运算序列 2.OSI七层结构 3.OA系统 4.同一进程下的多个线程可以共享哪一种资源: 5.javascript基本数据类型: 6.算法的时间复杂度 ...

  4. 产品经理懂点技术之:什么是前后端,他们怎么分工的?

    产品汪在验自己产品时,经常遇上bug了,就去找测试小姐姐,测试小姐姐看了看,就说:"这个找后台的XX吧","这个找前端的XX吧",小汪就好奇了,那么多程序猿哥哥 ...

  5. 写给产品经理的技术书:客户端、服务端和交互相关技术

    产品经理有三大领域的技术是需要去攻克的,分别是:客户端相关技术.服务端相关技术.交互相关技术 一.客户端相关技术 1.iOS和安卓产品差异 1.1 应用的设备不同: IOS和安卓最大的区别在于本身所应 ...

  6. 解构产品经理的技术思维

    产品经理需要懂技术懂到什么程度?产品需要的是技术思维,不是写代码的技术能力. 下文将详细讲解技术思维的构成和培养. 01 什么是产品的技术思维 产品的技术思维,表现在产品功能设计过程中,是:评估技术可 ...

  7. 百度产品经理vs 腾讯产品经理:技术大牛与小白

    我们知道很多的产品经理是从程序猿直接升上去的,但是为什么百度的很多产品经理都不太懂技术,而腾讯的产品经理大多都懂技术,特别是百度作为一个技术驱动的公司,这其中有什么内在秘密呢,下面我们来看一下几位牛人 ...

  8. 【pmcaff】苏杰:产品经理对技术做这些,就完蛋了

    点击上方 "公众号" 可以订阅哦! 1 开始实施之前 [说不清需求价值],技术问"为什么要做"的时候,支支吾吾,或者说"老板要的.运营要的" ...

  9. 产品经理小技术(三):二维码这把利刃,产品应该用到极致

    二维码,业界当然是人人听说,人人用过. 这个话题,我倒是百感交集,我一直认为,我有一种"二维码情节". 一方面, 我自认为是国内"钻研"二维码比较早的一个人了, ...

最新文章

  1. python报错TabError: inconsistent use of tabs and spaces in indentation解决方案
  2. mysql 管理端口_MySQL8新增管理端口
  3. Wamp升级php到7.3版本
  4. python线程的互斥锁
  5. Android 系统性能优化(53)---功耗优化battery-historian V2.0的数据获取
  6. EIGRP的扩展实验
  7. 简单好用一键恢复丢失办公文档
  8. 盗梦空间http://acm.nyist.net/JudgeOnline/problem.php?pid=125
  9. 微信模板消息跳转小程序
  10. AR/VR工作原理及目前存在的技术问题
  11. IIS导入SSL证书
  12. 设计一个O(n2)时间的算法,找出由n个数组成的序列的最长单调递增子序列。
  13. Socket编程之聊天室
  14. Excel 文件怎么批量插入首页、扉页、尾页?怎么将某个 Excel 文件批量插入到其它 Excel 文件的指定位置?
  15. 谋时而动 顺势而为 “软件定义智能新时代”
  16. SDIO_WiFi驱动学习之安卓WLAN架构介绍及调用流程分析
  17. pdf分割拆分——speedpdf帮您免费在线将PDF拆分成多个文件
  18. 计算机专业有非全日制研究生,计算机专业有双证在职研究生吗?
  19. 昨日互联网,明日区块链
  20. Spring学习笔记(下)

热门文章

  1. docker入门之容器网络
  2. SpringBoot的配置文件加载顺序和使用方式
  3. Python 生成器 迭代器
  4. Linux命令 — 设置或查看网络配置命令ifconfig
  5. Scala学习:Curry化的函数
  6. Django学习笔记2:一个简单的开发实例
  7. YAFFS2文件系统在嵌入式LINUX系统中的应用
  8. apiexample.c例子教我们如何利用FFMPEG库中的API函数来编写自己的编解码程序
  9. 全景图像拼接——基本流程
  10. Qt中查看ui_xxx.h文件方法