當開發說,這個功能實現不了,PM該怎么辦?

13 評論 32699 瀏覽 201 收藏 7 分鐘

產品設計結束之后,進入到如火如荼的研發階段時,突然研發同學跑過來問你,“這個功能實現太麻煩了,這版肯定實現不了了”,可是這個功能缺又是不可或缺的,作為PM的你該怎么辦呢?

這是一個及其常見的問題,很多PM會迎難而上,據理力爭,天花亂墜地言稱這個功能如何如何重要,一定要實現,甚至和研發同學撕逼起來,一封一封地郵件抄送一堆老大,天下大亂之勢。

在這里,我分享幾個我的經驗,不能說屢試不爽,但是也能夠極大地節省成本,快速推進產品研發。

首先,作為PM,你需要了解這個功能實現不了的原因是什么,如果你不懂技術也沒有關系,但你起碼需要知道一些基礎的問題描述,比如是實現的算法要求太高,還是當前的系統體系不支持,還是純粹時間來不及,還是對移動端性能要求太高優化難度太大,還是研發同學此前理解有誤現在改已經來不及了,等等。根據這些,你大致能夠判斷這個問題的復雜度,這會對你接下來進行設計修改時提供依據。

然后,你要確定當前正在研發的版本的目標,這個目標的意思是,你正在研發的是一個v1.0基礎版本,還是一個v5.0這樣的體驗和功能都進行了多重優化的版本。確定版本目標,對于你判斷功能的重要性很重要。

其次,你需要對這個功能進行一個優先級判斷,這個功能是否可以砍,沒有這個功能會怎么樣。如果這個功能沒有直接影響這個產品的體驗,那起碼說明這個功能不能砍,如果只是一個體驗上的問題,你需要結合當前版本的目標,你可以判斷這個體驗的問題是否很重要。

在這里舉個例子。我的前同事,他們曾經在開發一個體感網球游戲時,揮拍擊打球時,需要計算拍子的角度和揮拍的力度,從而計算球的飛行軌跡,繼而表現在游戲界面上。可是這個過程是一個非常復雜的數學計算,對于他們當時的團隊而言是非常困難的。他們當時正在研發v1.0版本,這個功能是當前版本的基礎,對于基礎而言,實現它是第一要務,優先級最高,但是體驗不是第一要務,所以體驗的優先級是可以調低的。后面我會說他們如何解決這個問題。

判斷完優先級,你接下來要做的,是考慮是否可以簡化這個功能的設計。對于PM而言,融會貫通是一項必備的技能,你是應該對需求負責,但你更需要對產品負責,產品的至善至美是所有人的美好期待,但是不代表你一開始就要吃成大胖子,你完全可以一步一步走到那個產品完美的巔峰。對于一個復雜的難題,在不同階段解決的程度是不一樣的,如果當前的優先級第一位是實現功能,搭建框架,那么你不必盯著體驗不放,即使體驗優先級很高,你也需要搞明白體驗也是分級的,是否還有比體驗更重要的東西,你需要做個判斷。

在我看來,一個PM最重要的能力,首先是理解商業邏輯,然后是結合“需求-人群-場景”實現產品設計,最后才是考慮體驗的優化。

回到我上面說的這個體感游戲的例子。他們當時很糾結,可是如果把時間都花在實現這個算法上,雖然可以解決問題,但是上線肯定來不及了。所以,我那個天才的同事,提出了一個策略,簡化這個問題。既然這個版本里最重要的是實現“揮拍-球飛行-畫面表現”,那么是否是依據復雜的數學公式實現就不是最重要的,體驗是70%還是99%對用戶而言不是最重要的,球能飛出去,并且能夠表現在畫面上才是最重要的。于是,他們的產品實現中,揮拍時,根據擊球點和擊球角度,在東南西北、東北、東南、西北、西南進行一個映射,然后隨機出一個擊球速度,這樣便將問題簡化成了一個一次數學函數,球依然會飛出去,表現在畫面上的效果也不差,這個隨機數只要給的不要太離譜,基本上體驗上能夠達到70-80%,問題迎刃而解。

很多時候,作為PM,不僅僅是坐在電腦前寫寫文檔,你更需要快速決斷一個功能如何滿足你的商業目標,也就是你的產品迭代目標。揪著一個功能的實現不放,和研發同學撕逼是很不理智的。其實在產品的實現過程中,這樣的case比比皆是,你需要對一些功能實現妥協,只要記得后面把坑填上。

這篇文章作為第一篇,后面我會慢慢介紹微軟小冰在產品設計中的很多討巧卻效率百倍的功能設計,也會討論優護家產品體系設計中的一些有趣的點。當然,我還會探討,一個好的PM究竟需要擁有哪些技能。

本文由作者@帥帥的帥(優護家聯合創始人,首席產品官; 前微軟小冰高級產品經理)原創發布于人人都是產品經理,未經許可,禁止轉載。

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 請問如果是同質競品呢,在第一版本可不可以把體驗當成差異化優勢?

    來自北京 回復
  2. 如果是給企業做項目,客戶一直堅持需要這個需求呢?

    來自北京 回復
  3. 文章挺好的,總結一下就是挖掘原因——判斷優先級和重要性——是否可以簡化,照目前情況來看,我一般會采取簡化設計,先實現該功能,后期再優化。我覺得這個問題不僅是PM和程序猿的問題,其中業務方也會一直扮演催促的角色,所以PM是在程序猿和業務人員之間起協調、潤滑作用。

    來自北京 回復
  4. 前幾天喜馬拉雅筆試剛做的這個題,要是早幾天看到您的文章就好了!

    回復
    1. 繼續加油哈!

      回復
    2. 我也做到這個題了……

      回復
  5. 受教了~能否加您qq或微信,方便請教您問題。

    來自上海 回復
    1. 我的QQ:1010219043

      來自四川 回復
  6. 我是從技術轉產品,產品與技術之間針對這種問題,我算是比較了解的。產品經理一定要有明確商業目標或者產品規劃,之后主要的矛盾點就集中在兩點:一是開發難度,二是開發時間及排期。產品經理最好有一定的技術儲備,從前端到后臺,前端對于安卓、iOS、h5都要有一定的了解,后臺至少要對PHP與MySQL,Sqlserver要有一定的了解,移動端的話產品經理本人最好有獨自編寫和上架的應用。對于研發難度自己要有預判,實在拿捏不準之前最好與項目經理或者開發人員先溝通一下再做設計,一定要多聽取技術人員的意見,當然如果自己對技術有所了解,溝通和計劃起來會容易很多。

    來自四川 回復
    1. 贊!

      來自福建 回復
    2. 請問:您說的產品經理最好對i那些前端后臺的語言要有一定的了解,要理解到什么程度,又有哪些渠道可以去了解學習的?

      來自上海 回復
    3. 我以前是從事iOS開發的,順便寫一點HTML的代碼。對于sql和數據庫也有所涉獵。從個人角度來看,現在學習和了解開發的渠道很多,w3cschool、極客學院,乃至淘寶都能找到你需要的資源。至于了解到哪一種程度的話,舉一個例子,我們現在要做一個IM得項目,要實現查找附近的人的功能,對于技術這一塊來說,我首先就會想到MongoDB自帶的查附近的人的方法,雖然我不知道具體方法怎么寫,但是我知道該功能實現起來很簡單,并且有現成的方法可以用就行了。

      來自四川 回復
    4. 大概明白謝謝大牛

      來自上海 回復