技術(shù)型產(chǎn)品經(jīng)理與系統(tǒng)設(shè)計(jì)
技術(shù)型產(chǎn)品經(jīng)理的定位是什么?產(chǎn)品經(jīng)理對(duì)技術(shù)的了解程度如何劃分?如何設(shè)計(jì)出一個(gè)架構(gòu)合理的系統(tǒng)?本篇文章準(zhǔn)備就這類問題盡量展開去講,拋磚引玉。
熟悉我的人會(huì)知道,我對(duì)技術(shù)的了解相較于一般的產(chǎn)品經(jīng)理要多一些,平時(shí)也更多的承擔(dān)技術(shù)強(qiáng)相關(guān)的系統(tǒng)設(shè)計(jì)工作,因此有一些我一直在不斷反思,嘗試給出更好答案的問題,比如:技術(shù)型產(chǎn)品經(jīng)理的定位是什么?產(chǎn)品經(jīng)理對(duì)技術(shù)的了解程度如何劃分?如何設(shè)計(jì)出一個(gè)架構(gòu)合理的系統(tǒng)?
本篇文章準(zhǔn)備就這類問題盡量展開去講,拋磚引玉。
一、技術(shù)型產(chǎn)品經(jīng)理的定位
八個(gè)月前,我在文章《趨勢(shì)三段論》中提過這樣的觀點(diǎn),技術(shù)型產(chǎn)品經(jīng)理的定位是:以用戶需求為導(dǎo)向,充分利用現(xiàn)有技術(shù)及推動(dòng)新技術(shù)的研究,為用戶提供更高質(zhì)量的產(chǎn)品。
這句話有兩個(gè)要點(diǎn),一個(gè)是充分利用現(xiàn)有技術(shù),另一個(gè)是推動(dòng)新技術(shù)的研究。
1、充分利用現(xiàn)有技術(shù)
第一點(diǎn)強(qiáng)調(diào)的是什么呢?是扛需求、是推動(dòng)業(yè)務(wù)落地的能力。所謂充分利用現(xiàn)有技術(shù),核心要點(diǎn)是保證自己能夠提出一個(gè)合理范圍內(nèi)的落地方案,既不畏首畏尾,讓產(chǎn)品落了俗套,又不天馬行空,完全不具備可行性。這才能叫可落地。
需求的來源有很多:競(jìng)品的新特性、領(lǐng)導(dǎo)的需求、自己的需求、合作方的需求等等,每個(gè)人站在自己的角度講自己的想法。能落地嗎,誰(shuí)該做什么?這是技術(shù)型產(chǎn)品經(jīng)理要問自己的第一個(gè)問題,他應(yīng)該具有對(duì)全鏈路的把控能力,前端、后臺(tái)、總控、意圖、解析、對(duì)話,每個(gè)部分該承擔(dān)什么?改動(dòng)量如何?任務(wù)該如何拆解?存在什么依賴關(guān)系?
技術(shù)型產(chǎn)品經(jīng)理需要兼具從用戶和技術(shù)的角度看問題的能力。平衡技術(shù)實(shí)現(xiàn)與用戶需求,把最初想法轉(zhuǎn)化成真實(shí)可落地的實(shí)施方案,是技術(shù)型產(chǎn)品經(jīng)理的一個(gè)重要的任務(wù)。
關(guān)于這點(diǎn),我有一條約束自己的標(biāo)準(zhǔn),這里分享出來,即:問題是否到我為止?換言之,我能否有能力成為所有問題的最后責(zé)任人?交付到我這的問題,要么我解決,要么我找人解決,我對(duì)最終交付負(fù)責(zé)。
2、推動(dòng)新技術(shù)的研究
第二點(diǎn)強(qiáng)調(diào)的是:預(yù)見性和解決未來問題的能力。作為產(chǎn)品經(jīng)理,應(yīng)當(dāng)對(duì)整個(gè)業(yè)務(wù)的發(fā)展方向有正確的理解;作為技術(shù)型產(chǎn)品經(jīng)理,應(yīng)當(dāng)對(duì)業(yè)務(wù)發(fā)展所需的技術(shù)有一個(gè)明確的認(rèn)知。
因?yàn)槲覀兛勺?、能做、還沒做的事情太多了,都要做嗎?顯然不是。事情有個(gè)輕重緩急,作為產(chǎn)品經(jīng)理,推動(dòng)技術(shù)研究朝著未來業(yè)務(wù)最需要的地方發(fā)展就是自己的職責(zé)。
這一點(diǎn)要求我們根據(jù)業(yè)務(wù)的發(fā)展方向,明確什么是重要而不緊急的事,然后在條件允許的情況下,優(yōu)先去處理它們。否則等到所有的事情都重要且緊急之后,那每天的工作會(huì)變成到處救火,且犯錯(cuò)的概率也會(huì)由于缺乏深入思考的時(shí)間而大大提高。
舉個(gè)真實(shí)例子,我八月份提過一個(gè)需求,九月份上線之前,有個(gè)業(yè)務(wù)方的新需求明確依賴我提過的這個(gè)需求,而且還非常著急。如果等接到需求我再開始籌備,至少要將他們的上線時(shí)間推遲半個(gè)月。
關(guān)于這點(diǎn),我同樣有一條約束自己的標(biāo)準(zhǔn),雖然自己暫時(shí)還做不到,但這里也分享出來,即:別人是否有機(jī)會(huì)向我提出問題?換句話說,就是我是否能夠總是比別人先發(fā)現(xiàn)問題,然后推動(dòng)問題在真正產(chǎn)生負(fù)面影響之前解決。
二、產(chǎn)品經(jīng)理對(duì)技術(shù)的了解層級(jí)
我曾經(jīng)給出過一個(gè)三層的劃分,用于描述產(chǎn)品經(jīng)理對(duì)技術(shù)的了解層級(jí):
第一層:知道什么能做,什么不能做。也即知道所謂的技術(shù)邊界。不論是自己提需求,還是承接別人的需求,你都能肯定的做出『支持』或『目前還不支持』的判斷。
第二層:知道什么好做,什么不好做。也即,當(dāng)產(chǎn)品需求超出了目前系統(tǒng)的邊界時(shí),或者說某需求當(dāng)下『不能做』時(shí),你有能力給出一個(gè)權(quán)衡了產(chǎn)品需求與系統(tǒng)改動(dòng)量的初步技術(shù)方案。能做到這一層的人,可以說是一個(gè)稱職的技術(shù)型產(chǎn)品經(jīng)理了,至少有能力跟技術(shù)人員進(jìn)行高效的溝通。
第三層:知道什么該做,什么不該做。也即,你知道系統(tǒng)中的每個(gè)模塊的定位和意義,并有能力以業(yè)務(wù)需求為導(dǎo)向協(xié)助技術(shù)人員、甚至引導(dǎo)技術(shù)人員完成對(duì)系統(tǒng)架構(gòu)的優(yōu)化與改造,使其在未來能夠更好的滿足業(yè)務(wù)發(fā)展對(duì)于技術(shù)的要求。
第三層比較抽象,這里做一下解釋。當(dāng)業(yè)務(wù)場(chǎng)景較為簡(jiǎn)單且有限時(shí),很容易出現(xiàn)一種情況,就是系統(tǒng)設(shè)計(jì)與業(yè)務(wù)嚴(yán)重耦合。實(shí)現(xiàn)一項(xiàng)業(yè)務(wù)功能的鏈路會(huì)很長(zhǎng),從頭到尾涉及到很多模塊,這塊邏輯你做也可以,他做也可以,往往人們總是傾向于選擇最符合直覺,看起來最直接的方案。但這樣通常會(huì)造成模塊間定位不清,邏輯分散的情況,當(dāng)業(yè)務(wù)漸漸復(fù)雜起來,就不得不進(jìn)行重構(gòu),否則就再難拓展。
所謂該做不該做,就是當(dāng)你與技術(shù)人員合作設(shè)計(jì)方案的時(shí)候,應(yīng)該從業(yè)務(wù)發(fā)展的角度看待問題,幫助技術(shù)人員明確各個(gè)模塊的定位,使得我們的系統(tǒng)能夠在盡可能長(zhǎng)的時(shí)間保證可用性,能夠隨著業(yè)務(wù)的發(fā)展一同成長(zhǎng),而不是頻繁重構(gòu)。
舉個(gè)形象些的例子,就像走一條路,第一層的技術(shù)型產(chǎn)品經(jīng)理可以判斷,這條路上有沒有障礙,能不能走通;當(dāng)走不通的時(shí)候,第二層的技術(shù)型產(chǎn)品經(jīng)理可以了解,這些障礙物到底好不好處理;第三層的技術(shù)型產(chǎn)品經(jīng)理會(huì)知道,這些障礙物究竟該怎樣處理,才能讓它們?cè)谧铋L(zhǎng)的時(shí)間范圍內(nèi)不會(huì)成為干擾。
三、技術(shù)型產(chǎn)品經(jīng)理的抽象能力
抽象能力是技術(shù)型產(chǎn)品經(jīng)理最為重要的能力之一。
抽象能力能夠幫助我們?cè)诜治鰰r(shí)不至于陷入到繁雜的細(xì)節(jié)之中,能夠透過現(xiàn)象看本質(zhì),一針見血地解決問題的核心。
我舉兩個(gè)例子來說明抽象能力的作用。
1、合理的信息通路
第一個(gè),在設(shè)計(jì)新體系時(shí),我時(shí)常會(huì)抽象出一個(gè)概念,叫做信息。一個(gè)體系的建立需要各個(gè)模塊的配合和協(xié)作,我不可能知道每個(gè)模塊每行代碼的邏輯,那我靠什么來判斷一個(gè)方案是否可行呢?靠判斷是否存在合理的信息通路。
是,我確實(shí)不知道每個(gè)模塊的詳細(xì)邏輯,但我知道某項(xiàng)任務(wù)的完成,所必須的信息是什么。
先從整個(gè)任務(wù)的角度去看,將所有的模塊看做一個(gè)整體,看它的輸入輸出是否合理,如果一個(gè)系統(tǒng)未能獲取到它完成任務(wù)所必須的信息,這個(gè)方案必然就是不成立的,因?yàn)?strong>信息無(wú)法無(wú)中生有。
再?gòu)拿總€(gè)模塊的角度去看,每個(gè)模塊在系統(tǒng)中的作用是什么?它們的輸入和輸出是什么?它們有沒有得到完成任務(wù)所必須的信息?它們對(duì)信息做了怎樣的加工?最終模塊的輸出是否是我們想要的?
如果這些問題都有一個(gè)明確而合理的答案,那么這個(gè)方案就是可行的。剩下的只是各個(gè)模塊內(nèi)部選擇自己最優(yōu)的實(shí)現(xiàn)邏輯、模塊間選擇最優(yōu)的協(xié)作方式而已。
2、邏輯上完備
第二個(gè),通過抽象出問題的基本影響因素做到邏輯上完備。在做系統(tǒng)基礎(chǔ)架構(gòu)設(shè)計(jì)時(shí),有一個(gè)很重要的任務(wù)就是避免遺漏場(chǎng)景可能性。因?yàn)樵谙到y(tǒng)設(shè)計(jì)初期,所謂的業(yè)務(wù)場(chǎng)景都只存在與設(shè)想中,而系統(tǒng)又需要在未來盡可能長(zhǎng)的時(shí)間內(nèi)保持對(duì)業(yè)務(wù)的可支持性,所以如何將當(dāng)前還未真正遇到的問題進(jìn)行全面考慮,盡可能的做到高通用性,就成了一個(gè)必須要面對(duì)的問題。
這里我們可以嘗試先想出一些基本且明顯的場(chǎng)景,然后據(jù)其反向抽象出問題的基本影響因素,并明確每個(gè)因素所有可能的情況,然后再利用排列組合的方式去描述一個(gè)個(gè)場(chǎng)景,就能有效的避免遺漏。
舉個(gè)例子,通過頭腦風(fēng)暴,我想到了系統(tǒng)需要解決的12種場(chǎng)景,但是否完備了?我不清楚。但是我通過反向抽象,發(fā)現(xiàn)影響場(chǎng)景的基本因素有3個(gè),它們的可能性個(gè)數(shù)分別為2、3、3,那么通過排列組合,我就知道,完備的場(chǎng)景數(shù)應(yīng)當(dāng)是18種,也就意味著我需要繼續(xù)驗(yàn)證我當(dāng)前的設(shè)計(jì)是否支持剩余的6種情況。當(dāng)然有的情況在實(shí)際業(yè)務(wù)場(chǎng)景中是不可能存在的,不過做最初設(shè)計(jì)時(shí)多考慮一分,未來落地時(shí)就會(huì)少一分風(fēng)險(xiǎn)。
四、好的系統(tǒng)具備什么樣的特征
這個(gè)問題是我最近一直在思考的,很多時(shí)候,我通過直覺能夠判斷出兩個(gè)系統(tǒng)設(shè)計(jì)方案的優(yōu)劣,但要跟別人解釋原因時(shí),卻又不知道如何表達(dá),所以我希望能夠提煉出一套系統(tǒng)設(shè)計(jì)需要遵循的方法論,至少用在我自己的工作中。
現(xiàn)在的我還沒能力提出一整套完備的體系,所以這里只是從幾個(gè)我有所感觸的維度進(jìn)行說明。
第一個(gè)特征是模塊化。承擔(dān)同一功能的邏輯應(yīng)當(dāng)聚合成一個(gè)模塊,不要散落在各處,從而導(dǎo)致不可復(fù)用和難以維護(hù)。類似于開發(fā)過程中的函數(shù)封裝,所有需要同樣邏輯的部分都統(tǒng)一的調(diào)用同一個(gè)函數(shù),而不是每次用到都重新寫一遍,還難以保持一致性。
第二個(gè)特征是低耦合。承擔(dān)不同功能的模塊保有邏輯上的獨(dú)立性,邏輯上分離的兩個(gè)模塊不應(yīng)該存在邏輯上的相互依賴關(guān)系,每個(gè)模塊應(yīng)該明確定義好自己的輸入和輸出,并盡量保證輸入和輸出的通用,而不是和上下位模塊深度耦合,這會(huì)導(dǎo)致在進(jìn)行邏輯優(yōu)化時(shí)牽一發(fā)而動(dòng)全身。
第三個(gè)特征是通用性。系統(tǒng)的設(shè)計(jì)是為了解決一類問題,而不是某幾個(gè)問題。系統(tǒng)定義好自己的輸入輸出特性,將不同的輸入轉(zhuǎn)化為對(duì)應(yīng)的輸出,而不是與業(yè)務(wù)邏輯耦合。不同的模塊,必須明確好,哪些模塊處理業(yè)務(wù)邏輯,哪些模塊不處理業(yè)務(wù)邏輯,這樣作為一個(gè)整體的系統(tǒng)才能有足夠的通用性去做后續(xù)場(chǎng)景的拓展。
第四個(gè)特征是邊際成本遞減。系統(tǒng)對(duì)業(yè)務(wù)的支持一定要做到邊際成本遞減,或者講,做到規(guī)模效應(yīng)。隨著工作量的累積,同一單位工作量所帶來的效果的應(yīng)當(dāng)是遞增的。借用云棲大會(huì)中阿里iDST工程師的說法,每個(gè)技術(shù)人員所能支持的業(yè)務(wù)方數(shù)量應(yīng)當(dāng)是遞增的,而不是說5個(gè)業(yè)務(wù)方需要1個(gè)技術(shù)人員,那10個(gè)業(yè)務(wù)方就需要2個(gè),100個(gè)業(yè)務(wù)方就需要20個(gè),這顯然是不合理的。
五、系統(tǒng)設(shè)計(jì)中需要明確的問題
在系統(tǒng)設(shè)計(jì)中,至少需要明確以下問題:
- 該系統(tǒng)涉及到的模塊有哪些?哪些模塊是已有的,哪些模塊是新增的?
- 每個(gè)模塊的定位,或者說定義是什么?在系統(tǒng)中扮演什么樣的角色,起到什么樣的作用?舊有模塊的定義是否滿足我們的要求,新模塊的定義是否清晰明確?
- 每個(gè)模塊的輸入輸出是什么?每個(gè)模塊所獲得的輸入是否剛好滿足其能完成任務(wù)的需求,既不缺乏信息,也不存在會(huì)導(dǎo)致依賴的信息冗余?
- 模塊間的上下位關(guān)系是否明確,是否與該模塊的原有定位相契合?
- 系統(tǒng)整體的模塊的調(diào)用順序是什么?是否擁有合理的信息通路?是否保證了模塊上下位關(guān)系的一致性?是否存在下位模塊僭越上位模塊進(jìn)行/被進(jìn)行跨層級(jí)調(diào)用的情況?
做個(gè)形象點(diǎn)的類比,設(shè)計(jì)系統(tǒng)就像拼拼圖。第一個(gè)問題,就是看我們手上有哪些拼圖;第二個(gè)問題,就是看拼圖上的畫是什么;第三個(gè)問題就是看拼圖的邊緣是什么樣的;第四個(gè)問題,就是看哪些拼圖的邊緣是相互契合的;第五個(gè)問題,就是拼好后,看整幅拼圖是否存在不一致錯(cuò)誤。
結(jié)語(yǔ)
寫完之后,回顧整篇文章,我發(fā)現(xiàn)我講了三層事情:
- 第一層:抽象能力、產(chǎn)品理解、技術(shù)知識(shí)
- 第二層:工作定位
- 第三層:實(shí)踐方法
抽象能力是技術(shù)型產(chǎn)品經(jīng)理的重要能力,是進(jìn)行頂層設(shè)計(jì)的基礎(chǔ)。同時(shí),技術(shù)型產(chǎn)品經(jīng)理要兼具對(duì)產(chǎn)品的理解和技術(shù)的了解。這些構(gòu)成了一個(gè)技術(shù)型產(chǎn)品經(jīng)理的能力體系。
技術(shù)型產(chǎn)品經(jīng)理要明確自己的工作定位,兼顧當(dāng)下與未來,既要有能力推動(dòng)當(dāng)下業(yè)務(wù)落地,又要有足夠的預(yù)見性去解決未來的問題。
技術(shù)型產(chǎn)品經(jīng)理時(shí)常要與技術(shù)人員合作進(jìn)行系統(tǒng)/平臺(tái)的設(shè)計(jì),保證系統(tǒng)及其各個(gè)模塊擁有明確的目的(定位)、合理的鏈接(信息通路)、必備的要素(模塊),是設(shè)計(jì)一個(gè)完備系統(tǒng)的基本要求。
作者:我偏笑?,“AI產(chǎn)品經(jīng)理大本營(yíng)”成員,“AI研習(xí)小分隊(duì)”的分享嘉賓之一
本文由人人都是產(chǎn)品經(jīng)理專欄作家?@黃釗?授權(quán)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)作者許可,禁止轉(zhuǎn)載。
題圖由作者提供
精彩!
還在因?yàn)?#8221;不懂技術(shù)”被開發(fā)忽悠?前京東高級(jí)產(chǎn)品經(jīng)理帶你15天系統(tǒng)化解鎖產(chǎn)品經(jīng)理必懂的技術(shù)知識(shí)。助你日常溝通更順暢,產(chǎn)品設(shè)計(jì)不挖坑!
詳情戳>http://996.pm/7daXE 或咨詢起點(diǎn)學(xué)院蘑菇(wx:qdxymg)
樓主寫的很好,對(duì)我來說醍醐灌頂。我一直覺得設(shè)計(jì)的后臺(tái)操作產(chǎn)品在維護(hù)上有很大問題,原來就是因?yàn)槟K問題,經(jīng)常多個(gè)模塊摻雜到一起,搞的很混亂,另外在反推應(yīng)用場(chǎng)景上也是不夠徹底,現(xiàn)在終于理解了,非常感謝!
就是在通用性上還是有些無(wú)法理解,能夠舉一個(gè)例子呢?
受教受教…
最近剛好也在做后臺(tái)產(chǎn)品的整體設(shè)計(jì),樓主總結(jié)的很到位,不過還是有幾個(gè)疑惑,希望樓主可以解答:1、模塊化時(shí),經(jīng)常會(huì)遇到功能急可以在A模塊也可以在B模塊,有什么合理的方式進(jìn)行區(qū)別劃分么;2、在信息通路中,一個(gè)中等規(guī)模的功能模塊(訂單或商品)可以很清晰的定義出通路,單如果時(shí)一個(gè)大規(guī)模的系統(tǒng)如何定義信息通路,各個(gè)模塊之間可能會(huì)有多個(gè)點(diǎn)進(jìn)行交互,且各個(gè)點(diǎn)之間還會(huì)互相影響;3、對(duì)技術(shù)沒有實(shí)踐過,但其原理都是熟悉的情況下如何與技術(shù)進(jìn)行有效的溝通并引導(dǎo)其按自己的規(guī)劃進(jìn)行開發(fā)。
你好,謝謝你這么用心的討論交流,可以加原作者的微信,和他(ID“我偏笑”)私聊吧,他微信:zpz1237
樓主邏輯性很強(qiáng),善于總結(jié),相當(dāng)牛 ?