IT 行業(yè)產品經理(尤其是創(chuàng)業(yè)的)需要懂技術嗎?
最近七年,我都在做互聯(lián)網產品,其中前五年分別在創(chuàng)業(yè)公司和上市公司里,做別人的產品;近兩年在創(chuàng)業(yè),做自己的產品。
我的體會是:產品經理需要懂技術,創(chuàng)業(yè)者尤其需要。但前提是你總覺得有股憋不住的想要做點兒什么的沖動,如果打算混安穩(wěn)日子,特別是在大公司,你什么都不需要懂,反而要小心別“知道的太多了”,傻人一生平安。
做產品這幾年,和開發(fā)工程師打交道最多,和他們交流通常有兩大忌:
一. 忌不懂技術
更準確的說,是不能缺乏設計、開發(fā)一個互聯(lián)網產品基本的技術常識,比如至少要清楚一個網站從不存在到能被用戶訪問,需要哪些必須的環(huán)節(jié);也要明白一個App從你的腦海走到用戶的手機里,需要經歷怎樣的過程。
有常識,當然不一定就能做出好產品,但沒常識,就很象在村里呆了半輩子的人乍到城市,一舉一動即使小心翼翼,也沒法兒不透著突兀和不和諧。
很多公司都有完全不懂技術的產品人,大多年齡較長,也許是互聯(lián)網出現的時候,他們已經過了充滿好奇和渴望未知的年齡,不愿意放低身段去學習新東西,喜歡只憑著想象和自己的生活經驗就開噴,間或以若干近期熱門關鍵詞作為點綴,以示自己尚蹲在潮流尖端。
這樣的人也許能忽悠某些領導,但一定不招工程師待見,他們可能什么都不說,但心里已經開始等著看笑話,交給他們的開發(fā)需求,自然也是能拖則拖、能蒙則蒙。
二. 忌懂技術
我遇到不少工程師喜歡說:“只要產品需求明確,技術上一切都能實現?!?/p>
這句話聽起來相當豪邁,也讓產品經理大為放心,覺得技術真是產品的堅強后盾。但其實傳遞了一個特別糟糕的信號。
當工程師這么說的時候,潛臺詞是:“你弄好你自己的事兒就行了,別來管我!”而且這種說法隱含著一個樂觀但顯然并不現實的假設:技術是無所不能的,他(掌握技術的人)也象燈神一樣,可以實現你的任何愿望,只要你能明確的描述它。
我不知道阿拉丁說完愿望之后,假如膽敢繼續(xù)追問燈神將具體采用何種技術方案來實現的話,會不會被塞到燈里,但我知道很多工程師在發(fā)現你關注技術層面過深的時候,都會有種領地被侵犯的感覺。
這 就是工程師維護自己專業(yè)槽的本能,與行業(yè)中其它角色相比,工程師地位不是最高,待遇也不是最好,還經常加班加的要死要活的,唯一得天獨厚的優(yōu)勢,就是專業(yè) 槽比任何角色都深。關于產品、關于UI、甚至關于商業(yè)模式每個從業(yè)人員都能噴上幾句,要是說到用戶體驗,那更是連業(yè)外人士都敢大噴特噴而沒有任何心理負擔:反正我就是用戶嘛,越傻越光榮。而一旦涉及到代碼,大多數人就直接暈菜了。想想那些UI設計師的苦逼段子,工作時沒有噴子們指手劃腳的干擾,真是上帝 賦予工程師獨有的恩賜。
所以當他們認為有外人正試圖跨越這條槽時,自然會有所警惕,甚至體現出抵制和敵意。當一個產品經理發(fā)現工程師開始比較密集的使用術語或拼命把簡單問題往復雜了說,你應該知道,他們在槽邊開始向你射箭了。
從 整個產品乃至公司的角度來說,各個專業(yè)角色之間的專業(yè)槽都是應該被填平的,產品經理不該對工程師玩挾天子以令諸侯,不要總假裝自己是用戶的三個代表,動不 動就拿想象中的“用戶需求”當“奉天承運”來用;工程師也不必總裝燈神,假裝無所不能很累的,工程師之間必有能力高下之分,其實有時候功能做不了或做不 好,純粹只是因為工程師能力所限。如果彼此坦誠一些,大可以提前有效溝通,盡可能避開那些投入產出比過低的部分,有不少工程師不愿意拿出來討論的技術實現 上的細節(jié),都是值得產品經理參與進來的,在這些細節(jié)上如何取舍與抉擇,會對產品的開發(fā)進度、性能甚至功能帶來極大的影響,如果溝通到位,往往可以讓開發(fā)工 程師少做大量無用功。在我開始自己動手寫代碼之后,對這一點有了越來越深的體會。
下面就說說我為什么開始學寫代碼,算是回答問題的后半部分吧。
在我做互聯(lián)網產品的前五年里,我對技術的了解僅維持在常識范疇,能夠手寫的代碼只有html和css,連js都不會,更別提任何適用于Web開發(fā)的編程語言了。我一直認為自己無法完全親手寫一個哪怕是最簡單的動態(tài)網站,是作為互聯(lián)網產品人員,很大的缺陷和恥辱。
工程師們一般倒不這么覺得,和他們聊天的時候,有時順嘴噴一些對技術架構或某些技術問題的看法,立刻遭到贊揚:“你很懂技術嘛!”這時馬上打著哈哈說:“懂個p啊,我連hello world都不會寫,完全是紙上談兵?!庇谑擎倚β曋?,一群人把手里的箭收起來了。
但我壓根兒就TM不想只能紙上談兵,2009年,我不顧當時三十二歲的高齡,悍然決定要學Ruby,買了書、裝好環(huán)境開始看書,敲代碼,堅持了幾天,然后失 敗了,考慮到也許Ruby對我來說太難,又嘗試了Python,結果還是失敗了。消沉幾天后不死心,又買了一本iPhone開發(fā)的書,還趁機決定買了臺 27寸的iMac,但悲劇是只翻了翻書,連Xcode都沒敢下就直接放棄了,這書上什么都不講的??!上來就是大段大段的代碼?。《襬bj-c的代碼都巨 長,完全看不懂。
后來我想,這件事有兩個收獲:一. 發(fā)現了自己智商的邊界。二. 我有了一臺iMac。
轉眼又過了一年多,想要自己動手做一個iPhone上的App的感覺越來越強烈,快壓抑不住了。于是在某一天,我好了傷疤忘了疼似的把那本幾乎沒有折痕的iPhone開發(fā)基礎教程又翻出來,等待Xcode下載的過程中,暗下決心:看不懂我也把它背下來。
后 來發(fā)現笨辦法至少對我來說,還挺管用的:照著書敲代碼,能正常運行的話,就合上書,再敲一遍。一般重復四五次就能記得很牢了。合著書,劈里啪啦熟練的敲著自己還不知道是什么意思的代碼,加上Xcode的自動補全很給力,幾分鐘就可以折騰出一大屏花花綠綠的代碼,而且還能在iPhone上運行,這時會產生一 種已經會寫iPhone App的錯覺,很奇妙。
人的大腦也很奇妙,你如果已經背下來了,本來不理解的就會慢慢自動理解,就這樣背了一段 又一段代碼之后,突然發(fā)現:我明白是怎么回事兒了。之后就開始給自己提出各種小的不能再小的功能需求,嘗試用這些代碼去實現,每實現一個,都欣喜若狂:我 能顯示按鈕了!我能彈出對話框了!我能寫滾動列表了!我能發(fā)一條推送信息了!??
這些事兒在熟練之后,也許就像喝口水一樣平淡,但卻能給初學者帶來巨大的快樂,我一直覺得,能否始終保持如初學者般的熱情、專注,決定了在做某件事時能走多遠,能做多好。
由 于書上所用的Xcode版本問題和我用的不同以及一些印刷錯誤,書上的代碼不會總是百分之百能運行,有時會報錯,只能上網用盡一切辦法搜,搜索的過程中, 就會慢慢看到一些專門的技術論壇、Blog,最終不可避免的會發(fā)現Stack Overflow這個神奇的網站,你遇到的大部分問題,都能在上面找到答案。
當實現書上的功能已經不能帶來狂喜的時候,就會忍不住想把自己束縛了很久的各種idea放出來了,終于可以親手去做它,而不是局限在畫畫原型圖、寫寫需求說明最后還要虔誠的擦拭神燈,呼喚燈神們顯靈這樣隔靴搔癢的做產品。
開發(fā)的過程對我來說充滿了樂趣,因為寫代碼的時候,世界變的簡單而美好,某個做法對還是錯,你不需要自己反復猜測,也不需要和任何人沒完沒了爭辯,編譯器就 是神圣的裁判。你的每個操作都能得到及時、明確的反饋,而且擁有近乎奢侈的試錯機會,從這個角度來看,編程的樂趣倒是有點兒象玩游戲。
當然也會遇到無數的問題,Stack Overflow、Github、Bitbucket、mailing list會慢慢成為你的朋友。
在 能夠獨自寫出一個iPhone App并把它放到App Store上之后,我又發(fā)現還需要再學一門語言,用來開發(fā)網站以及需要在App中調用的RESTful Web Service,于是不顧三十五歲的高齡,再一次悍然打起了Python的主意,有了學obj-c的經驗,知道關鍵是要能狠得下心和靜得下心來,看什么書,其實區(qū)別不是特別大,所以我就用了免費的Learn Python The Hard Way,用前面提到的方法,跟著做了一遍(前半部分比較簡單,可以每天做上十幾個exercise,后面速度可能會慢一點兒),了解了Python怎么寫 之后,馬上開始看Django Book 2.0,只看到第九章,就等不及用同樣的方法把Django Tutorial做了兩遍,接著驚喜的發(fā)現已經可以寫一個簡單但完整的網站了。然后很快試著用Django寫了一個特別小的針對某垂直領域的工具類網站, 上線跑了一段時間,昨天晚上結束免費試用,開始收費,現在看到已有幾個付費用戶,我很欣慰。
至于技術需要懂到什么程度,我覺得要是花幾個 月學的東西就夠用一輩子,這買賣也太劃算了,尤其是在技術領域,一定會需要持續(xù)學習,但對于我來說,已經沒有資格象十幾二十歲的年輕人那樣僅憑興趣廣泛的 學,我目前對這件事的原則非常功利:馬上要用到的,能顯著提高效率或者公認是最佳實踐的就學,否則就先不學,盡量不折騰、嚴格控制投入的時間和精力。
比 如寫好的代碼放到Server上,雖然只要能跑就算是部署成功了,但公認的最佳實踐是使用virtualenv隔離Python環(huán)境,這樣可以減少以后很 多的麻煩,那就值得多花時間去了解,去應用;使用Fabric配合Git進行自動化部署可以大大提高效率,那就也值得花時間去學怎么用。
我也知道可以用Memcached或Redis來做緩存,提高應用性能;或是用Rabbit Mq和Celery來做異步隊列,可以改善同步執(zhí)行耗時較久的任務給用戶帶來的不爽感;還有Node.js似乎比傳統(tǒng)的Web開發(fā)語言更適合做 RESTful API ?? 不過這些都不是目前最緊迫的問題,所以雖然我還不會而且確定會有用,但先不去學。
一沒留神,噴了幾千字,還是打住吧,看來中年男人的啰嗦算是沒救了。
最后還是總結一下,就一句啊:
產品經理懂技術 = 流氓會武術。你要是覺得幫派夠大,自己腦子又好用到可以當師爺,那不會武術也湊合;要不巧是個和我一樣沒什么團隊精神,又老喜歡獨來獨往的流氓,還想只憑著腦子就能連點兒防身術都不練,恐怕很容易被人打成爬行動物。
比較嚴肅的總結是:產品經理懂技術,在沒資源的時候可以用最低成本把事兒辦了,有資源的時候可以把資源用的更有
效率。
本文原作者herock@知乎
本文由人人都是產品經理@邊緣? 整理自知乎問答,轉載請注明并保存本文鏈接。
沒什么可說的 高度自律且沉得下心 敬佩