一篇文章讀懂程序猿和產(chǎn)品經(jīng)理的愛恨情仇
![](http://image.woshipm.com/wp-files/img/87.jpg)
記得之前參加團(tuán)建活動,是真人 CS。我們一共沒幾個(gè)產(chǎn)品經(jīng)理,但有幾十個(gè)程序員。所以場面估計(jì)你也能想象出來了……并不是刺激的對戰(zhàn),而是慘絕人寰的群毆。
被 BB 彈打成狗(哎,原來不就是狗嗎)的一個(gè)產(chǎn)品經(jīng)理急中生智,大喊:『我以前也寫過代碼!我是自己人!』
其他正在施暴的程序員面面相覷,表示十分感動,但仍然拒絕了他的求情,繼續(xù)按在地上打了半個(gè)小時(shí)。
……
我在哈工大讀書,學(xué)的是計(jì)算機(jī),寫了六年代碼,畢業(yè)后做的卻是產(chǎn)品。
所謂對程序員和產(chǎn)品經(jīng)理之間的調(diào)侃,主要原因無非就在兩方經(jīng)常有矛盾出現(xiàn),而矛盾出現(xiàn)顯然是因?yàn)殡p方一邊是需求提供方,一邊是需求實(shí)現(xiàn)方。矛盾的類型也簡單,就是大家提到的這么幾種。同時(shí)寫過代碼,又做過產(chǎn)品的我,實(shí)際上仍然沒有很好的通用法則,能解決所有矛盾。
不過做過產(chǎn)品總監(jiān)一職后,的確理解完全不同了。產(chǎn)品工作和研發(fā)工作都是我的管理范疇之內(nèi),看事情的角度就完全不一樣。
過去做程序員,總覺得提供的需求更改很煩、給的需求不合理很煩、給的截止時(shí)間不合理很煩。
做產(chǎn)品經(jīng)理的時(shí)候,也會覺得程序員總是推卸責(zé)任、完成得不及時(shí)或者不夠好。
其實(shí)從整體的工作配合上來看,出現(xiàn)問題是難免的,關(guān)鍵是如何預(yù)防、如何解決。
……
以下是一些切身體會得出的經(jīng)驗(yàn)性建議:
對于研發(fā)人員:
做好更改需求的準(zhǔn)備
很多固執(zhí)的程序員會把改需求當(dāng)成錯(cuò)事。
- 改需求?你怎么不早想清楚?
- 改需求?你知道我工作量多大嗎?
- 改需求?那我不干了。
實(shí)際上,在互聯(lián)網(wǎng)產(chǎn)品這個(gè)領(lǐng)域內(nèi),改需求肯定會是家常便飯。
我沒有做過統(tǒng)計(jì),但我接觸到的已經(jīng)成立一年的公司,幾乎都經(jīng)歷過大改版,也就是代碼全部重寫。這對研發(fā)團(tuán)隊(duì)來說自然很痛苦,但卻是不可避免的。
互聯(lián)網(wǎng)的需求更替是頻繁的,一方面是大環(huán)境隨時(shí)在發(fā)生變化,去年你還在刷微博,今年已經(jīng)是朋友圈了。另一方面,需求獲取的渠道也是多樣的,產(chǎn)品經(jīng)理可能會有新的發(fā)現(xiàn)和新的判斷,未必都是之前沒想清楚。
當(dāng)然,如果需求都是老板從什么《易經(jīng)》中得到感悟、從云卷云舒花開花落里得到啟示,讓你手忙腳亂給他改來改去,那也沒意思了。
既然改需求是經(jīng)常會出現(xiàn)的,那就要求還是得做好更改需求的準(zhǔn)備。有這么幾種方法:
1.1 提高代碼的可復(fù)用性、可擴(kuò)展性等等
讓一些產(chǎn)品中很可能會用得到的各種控件、功能模塊做成可復(fù)用性很強(qiáng)的代碼,在產(chǎn)品增加類似功能,或者修改原有類似功能時(shí),將會大有裨益。
可擴(kuò)展性則是各種接口、數(shù)據(jù)庫以及底層結(jié)構(gòu)不要寫死,盡量用可擴(kuò)展的方式寫。比如現(xiàn)在有五個(gè)分類,不要寫死就五個(gè),要寫成 n 個(gè)分類,目前是五個(gè)。
嗯,這是常識了,但有的程序員還是會比較隨意,寫代碼沒有遠(yuǎn)見。
其他的代碼特性,如果有利于降低產(chǎn)品的更改和優(yōu)化成本,也要加深關(guān)注。
1.2 根據(jù)產(chǎn)品規(guī)劃來做好充分準(zhǔn)備
每個(gè)功能的實(shí)現(xiàn)方法都有很多,怎么選擇并不是只看當(dāng)下的成本如何,而是要關(guān)注未來產(chǎn)品的整體規(guī)劃。
可能目前要完成功能 A,有 1、2、3 多種方案,方案 1 成本最小。但未來要完成 A、B、C、D 很多功能,方案 3 更有利于整體成本最小。那就要選方案 3 未雨綢繆。
多跟產(chǎn)品團(tuán)隊(duì)交流,了解未來產(chǎn)品要做成的樣子、哪些功能會是必須的、哪些功能是可能會有的,多從長遠(yuǎn)來看。
1.3 合理預(yù)留出修整的時(shí)間
首先,不要把研發(fā)時(shí)間就當(dāng)作完成時(shí)間。研發(fā)功能只是一部分,測試、改 BUG 以及處理意外情況的時(shí)間都要預(yù)留出來。
有兩種情況要多預(yù)留出修整的時(shí)間。
一種是研發(fā)團(tuán)隊(duì)自己對功能沒有把握,可能是全新的功能,可能是比較難做的功能,可能出現(xiàn)許多 BUG 和功能實(shí)現(xiàn)糟糕的情況,那就要多預(yù)留出時(shí)間。
另一種是產(chǎn)品團(tuán)隊(duì)表示對功能也有疑慮,比如在提供需求時(shí)表示這個(gè)功能很有可能要調(diào)整,或者對功能本身信心不足,那也要多留時(shí)間做調(diào)整。
理解需求,防止返工
研發(fā)團(tuán)隊(duì)通常會缺少對需求的理解,尤其會出現(xiàn)這種情況的就是外包團(tuán)隊(duì)。我聽說過太多花了幾十萬請外包團(tuán)隊(duì),結(jié)果開發(fā)的結(jié)果特別不滿意,不能拿來用。合同又已經(jīng)簽好,還得給錢,就是賠了夫人又折兵。
有的技術(shù)團(tuán)隊(duì)和產(chǎn)品團(tuán)隊(duì)都坐在同一間辦公室了,居然都經(jīng)常缺乏溝通。技術(shù)團(tuán)隊(duì)不知道當(dāng)前做的功能是給誰做的、是提供什么功能、滿足用戶什么價(jià)值的。
這些不是很高深的理論,也不需要深入學(xué)習(xí),只需要通過產(chǎn)品經(jīng)理做些了解,就能少挖一些坑,也就不會輕易返工。
比如,有的產(chǎn)品頁面可以是提前加載緩存,也可以是每次都刷新,但要看用戶平常是在 WiFi 環(huán)境下用還是在移動數(shù)據(jù)下用,這是產(chǎn)品經(jīng)理清楚的。產(chǎn)品經(jīng)理在功能細(xì)節(jié)上不會想到實(shí)現(xiàn)層面這么具體,所以就需要研發(fā)團(tuán)隊(duì)去理解剛才說的需求,做一些判斷。
另外,如果是在開發(fā)之前就意識到做出來的功能會跟產(chǎn)品經(jīng)理想象的不同,那就必須及時(shí)提出來,千萬不要等開發(fā)完成,大家都覺得不靠譜,再重做,那樣不管對誰來說成本都太大了。
善于用數(shù)據(jù)、理論以及通俗的解釋來進(jìn)行溝通
程序員最應(yīng)忌諱的就是說『這個(gè)做不了,說了你也不懂』、『這個(gè)太難,懶得跟你解釋』。產(chǎn)品經(jīng)理聽完肯定會覺得是推卸責(zé)任。
正確的方式是:用通俗易懂的客觀事實(shí)來解釋。
嗯,這個(gè)彈窗做不了。
為什么現(xiàn)在做不了?是因?yàn)榇a實(shí)現(xiàn)可能要花三個(gè)月。
為什么這么久?是因?yàn)樾枰{(diào)用底層驅(qū)動層面的東西。
為什么要調(diào)用底層驅(qū)動的東西?是因?yàn)榘沧肯到y(tǒng)原本的框架和協(xié)議就是這么定的。
如果想看協(xié)議,我可以給你找出來。
這樣一步一步往下解釋,把所有理由說明白,別沒有耐心,只要產(chǎn)品經(jīng)理是講理的,他會理解你。
他聽懂了你的解釋,也會有利于他找出另外可接受的一種解決方案。
哦,我懂了,這個(gè)用彈窗形式太復(fù)雜。
那我們換作跳轉(zhuǎn)到普通頁面吧。
這樣問題就解決了。
對于產(chǎn)品:
產(chǎn)品經(jīng)理要在不斷的迭代和更改需求的風(fēng)險(xiǎn)中被程序員認(rèn)可乃至尊重,我覺得最重要的還是『講道理』。切忌說出『我不管,反正得做完』或者『老板就這么定的,我也沒辦法』這樣的話。
對產(chǎn)品功能有規(guī)劃,并提供給研發(fā)
對自己的產(chǎn)品都沒有大致規(guī)劃,是產(chǎn)品經(jīng)理的大忌,也是出現(xiàn)問題的主要原因。
一年后產(chǎn)品成熟了要給用戶解決怎樣的問題?
未來半年內(nèi)產(chǎn)品要做成什么樣子?
三個(gè)月內(nèi)產(chǎn)品應(yīng)該主要提供哪些功能?
這一個(gè)月的產(chǎn)品具體方案是做哪些?
這些都要認(rèn)真去考慮并且規(guī)劃。
當(dāng)然,長遠(yuǎn)的產(chǎn)品規(guī)劃在很多情況下(市場變化、團(tuán)隊(duì)更替、產(chǎn)品轉(zhuǎn)向)確實(shí)用途不大,但越短期的規(guī)劃,對研發(fā)團(tuán)隊(duì)越有幫助。
正常來說,預(yù)估三個(gè)月內(nèi)產(chǎn)品的功能還是完全可以的,除非老板和產(chǎn)品經(jīng)理都沒想明白產(chǎn)品到底該做成什么。
把這些規(guī)劃想明白,并傳達(dá)給研發(fā)團(tuán)隊(duì),讓他們在現(xiàn)在的代碼里就給未來的功能留下空間,是最好的避免代碼重寫的方法。
提供需求要足夠具體
這要求產(chǎn)品經(jīng)理做到兩點(diǎn):
第一,讓產(chǎn)品需求文檔特別特別具體。
具體并不是說,要按照大公司的 PRD 去完成。而是說,不要缺東西。對于需求文檔來說,頁面邏輯、頁面布局、功能邏輯和每個(gè)功能的使用細(xì)節(jié),都要存在。并不只是畫個(gè)交互圖就叫需求文檔了。
你給了研發(fā) 5 個(gè)頁面,結(jié)果研發(fā)做著做著,來問你,好像缺了個(gè)頁面。你補(bǔ)完一個(gè),研發(fā)做了一會兒發(fā)現(xiàn)又缺了一個(gè)…最后七零八碎的 10 個(gè)頁面拼湊出來,發(fā)現(xiàn)根本不好用,所以又推倒重來。
如果研發(fā)經(jīng)常來問你某個(gè)地方該怎么做時(shí),你就要反思是不是需求文檔寫得不夠好了。
第二,要說明每個(gè)需求背后的原因。
這個(gè)在上面表達(dá)過,程序員明白了需求背后的原因,會選擇更合理的方案去完成。
千萬別提『你別管為什么了』,而是不管他問不問這個(gè)功能為什么要做成這樣,都要告訴他為什么。
熟悉基本的研發(fā)背景和研發(fā)能力
『產(chǎn)品經(jīng)理到底需不需要懂技術(shù)』是我被問到的關(guān)于產(chǎn)品經(jīng)理的問題中的 TOP 5。
這個(gè)問題我的回答是:要按照需求,了解基礎(chǔ)知識,并不需要知道實(shí)現(xiàn)細(xì)節(jié)。
了解基礎(chǔ)知識、不需要知道細(xì)節(jié)是指產(chǎn)品經(jīng)理應(yīng)當(dāng)知道最基本的一些理論。
比如做安卓操作系統(tǒng),要知道安卓原生提供了哪些控件,這樣在設(shè)計(jì)方案時(shí)可以盡量使用它們。在代碼實(shí)現(xiàn)時(shí),調(diào)用一個(gè)控件可能只需要幾行代碼,但自己重寫一個(gè)功能界面,可能就是成千上萬的代碼量了。
比如是在手機(jī)網(wǎng)頁上的產(chǎn)品,要知道哪些交互是在 H5 上較容易實(shí)現(xiàn)的,而哪些交互是實(shí)現(xiàn)效果非常糟糕的。如果依照在 iOS 上的動畫效果來要求 H5,開發(fā)成本可能會是指數(shù)級上升的。
按需,是說對于產(chǎn)品經(jīng)理,千萬不要買《iOS 入門指南》、《安卓開發(fā)手冊》或者《H5 設(shè)計(jì)實(shí)例》來學(xué)習(xí),除了裝點(diǎn)下書架不會有別的意義。
因?yàn)楸旧黹_發(fā)的指南和手冊,講述的全是實(shí)現(xiàn)細(xì)節(jié),對你清楚安卓的基本控件或者 H5 的常用交互完全沒有幫助;同時(shí),不同的產(chǎn)品有不同的特性,也有不同的代碼特點(diǎn),你只需要了解你負(fù)責(zé)產(chǎn)品的技術(shù)背景即可,有的同學(xué)居然決定從 C 語言先開始看,簡直是讓人扼腕。
以上是我的一些理解。希望對大家能有所幫助。
如果此文真正減少了你與程序員/產(chǎn)品經(jīng)理之間的互相傷害,請私信或留言告訴我,我會非常欣慰。
#專欄作家#
劉飛,嘟嘟美甲聯(lián)合創(chuàng)始人,錘子科技產(chǎn)品經(jīng)理,人人都是產(chǎn)品經(jīng)理專欄作家,豆瓣《最好的時(shí)代:可能是最真誠的創(chuàng)業(yè)日記》作者。文能提筆抒騷情,武能切圖畫交互。
本文原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,不得轉(zhuǎn)載。
我覺得寫得很好,樸素的語言講著有用的道理,這就是好文章
求推薦給產(chǎn)品經(jīng)理看的了解技術(shù)基礎(chǔ)知識的書,博主說的那種。
同求:“了解基礎(chǔ)知識、不需要知道細(xì)節(jié)是指產(chǎn)品經(jīng)理應(yīng)當(dāng)知道最基本的一些理論”這些最基本的理論有沒有好較好的書推薦或者資料呢?
挺有用的,謝謝
師兄,我也是哈工大的,現(xiàn)在也在產(chǎn)品經(jīng)理這條路上,希望能加師兄一下好友,我手機(jī)和微信都是17727808603
同求:“了解基礎(chǔ)知識、不需要知道細(xì)節(jié)是指產(chǎn)品經(jīng)理應(yīng)當(dāng)知道最基本的一些理論”這些最基本的理論有沒有好較好的書推薦或者資料呢?
“當(dāng)然,如果需求都是老板從什么《易經(jīng)》中得到感悟、從云卷云舒花開花落里得到啟示”這句話讓我想到某些互聯(lián)網(wǎng)玄學(xué)大師,什么結(jié)合禪道,真是炒的不知疲倦 ??
“了解基礎(chǔ)知識、不需要知道細(xì)節(jié)是指產(chǎn)品經(jīng)理應(yīng)當(dāng)知道最基本的一些理論”這些最基本的理論有沒有好較好的書推薦或者資料呢?
??
?
理解需求,防止返工很重要啊。贊同 ??
??
寫的很好,很有啟發(fā)意義。不過標(biāo)題坑爹了,支持樓上的標(biāo)題名。 ??
寫得不錯(cuò),有一定的幫助,感覺標(biāo)題有點(diǎn)坑爹,要是標(biāo)題改成《如何讓程序猿跟產(chǎn)品狗更好的相處?》就好很多了,哈哈。 ??