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