閱讀本文大概須要 5 分鐘。程序員
產品經理和程序員因爲所處的位置不一樣,因此常常會在網上看到對對方的吐槽,實際工做中的撕逼更是不斷,大多數原因都是由於需求不合理而沒法實現。面對這些需求,程序員每每會處於一個難堪的境地。算法
然而,大多數時候程序員的問題在於對於產品經理提出的任何需求,都不能以道理反駁,而只是以直覺說:『我以爲不行』、『我以爲用戶沒有這個需求』、『我無論我不作』。若是你認爲這個需求不合理,請證實它。微信
就算你以爲產品經理是個傻逼,請有理有據的證實他是個傻逼。否則你跟無理取鬧的小孩子沒有區別。架構
so,一個經驗豐富的程序員,不只要懂得技術,還要懂得研究產品經理的心理,甚至懂得給產品經理設置邏輯陷阱,跟他講道理。併發
案例一高併發
昨晚刷知乎的時候看到一篇特別有意思的虛構故事,其中的案例讓人啼笑皆非。測試
大概是說一個產品經理不顧產品信息結構的優先級,但願把一個」幫助入口」 作在首頁中間。並且產品經理說服工程師時候以邏輯漏洞的方式進攻,提出諸如 「我做爲用戶就有訴求,你沒有訴求也不能表明你們都沒有訴求」 之類的理由。優化
由於爭論無果最後 PM 提出要 ABtest,上線以後那個幫助入口點擊率居然還挺高的,讓工程師很是的鬱悶。spa
思考設計
這些 「難以拒絕的需求」,他們之間每每都會有一些共性:
1)工程師能夠明顯的感受到需求有問題;
2)產品經理沒法給出客觀的需求支撐,可是給出不少」難以拒絕的」 主觀理由;
3)爭論無果後 PM 會要求作出來試試,可是上線後數據看起來是有利於那個需求的;
因此當遇到這個問題這麼辦呢?
一、接到需求的時候,不要討論設計解決方案,而應該討論需求自己
a. 這個需求根本是達成什麼目的?
b. 這個需求須要的優先程度是怎樣的?
c. 這個需求須要的衡量標準是什麼?
很顯然這裏的需求就是『提供一個幫助入口』,而且但願能夠『儘可能幫助有問題的用戶』。
二、要追問需求背後的目標和背景
需求的背景和目標是一個完整的總體,只有全面瞭解了以後工程師纔可能給出 ABCD 等不一樣的解決方案,而且在這些解決方案中分析出優劣找出最優解。
三、設計效果不能只看單一的某個維度
衡量效果不能只看點擊率這麼一個指標,轉化率、留存和用戶反饋等都很重要。
四、工程師要更主動的去獲取信息
案例裏的工程師還有一個很大的毛病就是徹底被 PM 牽着鼻子走,經過有限的信息去判斷需求和方案的好壞,其實工程師能夠本身主動作到對信息的全面掌握(如產品經理的週會、需求評審會、查看數據、向上反饋等)。
必須直接指出,故事中的工程師的立場和溝通方向是錯誤的。
在這個故事裏,事實是:
1. 產品經理提出了一個不完善的方案;
2. 產品經理提出了一個有需求的模糊的場景;
3. 產品經理提出了不適當的追蹤反饋的方式。
案例二
有個產品想在外賣產品裏作遊戲,知道不能作,但卻找不到有力的拒絕理由。
思考
我猜測產品經理的回答應該是這樣的:
一、有時候等外賣過久,用戶很無聊,很焦慮,一旦焦慮就容易對產品產生不滿。
二、我以爲是存在的,我每次等外賣的時候就以爲很無聊。
三、特別無聊就給他找點事作,遊戲人人都喜歡對吧?
四、我還想過作過閱讀產品,讓他能夠看小說。或者作個社交,讓他能夠約妹子。可是我想了想,工程量太大了,仍是作個小遊戲吧。
好了,有了他這些回答,你就能夠看出漏洞了。
一、等外賣過久的解決問題難道不是外賣配送的算法不夠先進或者配送人手不足決定的嗎?那是否應該優先解決根本問題?—— 尋找需求的源頭。
二、不要用『我以爲』臆想,你是否是先作個用戶調研比較好?—— 讓對方爲本身的需求尋找依據。
三、用戶手機裏 App 那麼多,爲何要玩咱們的遊戲,咱們的遊戲有別家作的好嗎?(此時還能夠舉例)上一家在天氣 App 裏增長外賣功能的產品被罵的很慘的好嗎?添加一個與主業務無關的流程是否是須要謹慎考慮,需不須要請示一下XXX —— 將領導拉入戰場。
四、那你以爲若是作了這個之後用戶的活躍度或者滿意度會提高嗎?會提高多少呢?(若是在掙扎不過的時候,必定要作,留着這些以待之後打臉)
還有那些方法應對?
當產品經理提出的需求確實屬於不靠譜的行列,程序員能夠採用如下方法應對:
一、明確指出問題
每一項需求都要經得住推敲。產品經理不免會出現思考不充分或存在疏漏的狀況,這個時候,程序員要直接明確地指出存在的問題,敦促產品經理從新進行梳理。
二、強化職場溝通的能力
每一類職業都會影響從業人員的性格。因爲職業特色,程序員對於技術任務的專一每每會淡化他們在職場上與人打交道的能力,比起產品經理,存在更多的被動性。所以,程序員應主動培養職場溝通的能力,以便在工做中更好地轉達本身的態度和觀點。
三、引入外援,一塊兒討論
在實際工做中,每每會出現程序員和產品經理談不攏的狀況。此種情境發生時,若是實在沒法說服對方,能夠多找幾我的一塊討論,客觀層面上將道理越辯越明,從而消除產品經理的不理解,達到本身的目的。
四、尋求 leader 的支持
一般狀況下,大多數產品需求不只來自產品經理,更源於公司領導的構想。但一些想法在研發人員眼中卻存在明顯的問題。這種狀況下,若是趕上強勢的產品經理,或是公司領導的意願,程序員的意見將可能不被重視。此時,程序員能夠向上級 leader 尋求幫助,得到支持。
五、熟悉產品經理的特色
程序員與產品經理處在不一樣的崗位,擁有不一樣的訴求,但擁有同一個目標,即作出好的產品。所以,程序員須要認識產品經理這我的,瞭解他作事的方式、喜愛,自己的優缺點。在此基礎上,遇到分歧時能夠更快地明白癥結,經過合適而有效的方式說服產品經理。
六、對產品經理進行「威懾」
在實際工做中,不少產品經理雖然考慮到了研發,經常卻忽略了產品需求在測試階段是否可行。面對這種狀況的多次發生,能夠開始考慮用軟硬兼施的辦法,遇到實在不能接受的需求,能夠直言:「不要覺得你很牛逼,再牛逼你就本身作!」
在某些狀況下,程序員能夠擺出強勢的一面應對產品經理。
七、決定要作的,也要想出切實可行的辦法
一項功能是否真的須要開發,有時候會有不少決定因素。最終仍然決定要作的工做,程序員應想出切實可行的辦法。如若沒有實現的路徑,只能給出作不了的解釋。
八、勇於拍板,爲拒絕需求承擔責任
在工做中,逐漸培養出本身自信果敢的一面,面對不合理的需求會給出明確的理由,並表示爲本身的判斷和決定負責。專業的程序員,應當作到爲本身的職場行爲負責,只有這樣,才能在與產品經理的博弈中擁有底氣。
九、必殺技:爲產品經理設計邏輯陷阱
面對不靠譜的需求,最擅長的手法是,在與產品經理對接的過程當中,利用自身邏輯思惟能力強的優點,引導其掉入需求中存在的邏輯陷阱,沒法自拔,從而主動放棄,推翻以前的需求。
此項必殺技,是他與產品經理鬥智鬥勇的心得。但這項必殺技的使用前提是,確實是從技術角度不能支持的想法。
最後
在任何一家互聯網公司,優秀的產品都須要程序員和產品經理的共同協做。產品經理的工做不只須要程序員的配合,有時更須要技術人員的匡正。
與全盤接受相比,偶爾的拒絕也有其價值。只有在這樣的層面下,產品和技術,才能爲實現真正好的功能作出貢獻。
·END·
程序員的成長之路
路雖遠,行則必至
本文原發於 同名微信公衆號「程序員的成長之路」,回覆「1024」你懂得,給個讚唄。
往期精彩回顧