產(chǎn)品窺探:什么是產(chǎn)品的底層邏輯?
產(chǎn)品的底層邏輯設(shè)計(jì)其核心在于,對(duì)數(shù)據(jù)和模塊的分割,以及服務(wù)能力的設(shè)計(jì)和調(diào)用關(guān)系的搭建。
先啰嗦一下
產(chǎn)品的底層邏輯,指的是一個(gè)產(chǎn)品對(duì)所支撐的業(yè)務(wù)過(guò)程的抽象,是一個(gè)產(chǎn)品從數(shù)據(jù)維度對(duì)功能模塊的分割。
各模塊接收的外部數(shù)據(jù)(比如用戶通過(guò)頁(yè)面輸入的、作為被調(diào)用模塊從其他模塊接收的等等),維護(hù)的內(nèi)部數(shù)據(jù)(比如訂單模塊內(nèi)部維護(hù)的:訂單ID、訂單狀態(tài)、交易雙方ID即用戶的索引值、訂單時(shí)間、金額等等)和該模塊提供能的服務(wù)能力(依然用訂單模塊的例子,該模塊可提供各內(nèi)部數(shù)據(jù)的查詢服務(wù)、由外部觸發(fā)的更新訂單狀態(tài)的服務(wù)等等),將上述的服務(wù)能力,以模塊之間的調(diào)用關(guān)系結(jié)合起來(lái),形成了一個(gè)產(chǎn)品支撐的各種功能的實(shí)現(xiàn)過(guò)程。
無(wú)論是直接面向C端用戶的產(chǎn)品(比如社交、媒體等等),還是一個(gè)To B的應(yīng)用(第三方支付、企業(yè)CRM、),甚至是一個(gè)產(chǎn)品體系中的分支,都包含了一個(gè)自有的底層邏輯,通過(guò)數(shù)據(jù)接口相互關(guān)聯(lián)。廣義范圍內(nèi)來(lái)看,個(gè)人認(rèn)為,To B的產(chǎn)品底層邏輯相對(duì)To C的產(chǎn)品,數(shù)據(jù)結(jié)構(gòu)與調(diào)用關(guān)系普遍更為復(fù)雜且到達(dá)前端的路徑更長(zhǎng)。而C端產(chǎn)品,往往更關(guān)注前端交互,底層邏輯單薄,這也就是為什么,C端產(chǎn)品甚至只憑一個(gè)交互稿就可以完成與開(kāi)發(fā)團(tuán)隊(duì)確認(rèn)需求的溝通(當(dāng)然這也沒(méi)什么錯(cuò),畢竟這只是溝通的手段)。但一個(gè)B端的產(chǎn)品經(jīng)理,如果只輸出原型,就請(qǐng)?jiān)谠u(píng)審會(huì)上注意人身安全,程序員爸爸們大概是不會(huì)甘愿從寥寥的原型批注上理解錯(cuò)綜復(fù)雜的數(shù)據(jù)遷移和訂正邏輯的。
以下,是作為一個(gè)從To C向To B的業(yè)務(wù)轉(zhuǎn)型的產(chǎn)品經(jīng)理關(guān)于產(chǎn)品底層邏輯的一些經(jīng)驗(yàn),整理出來(lái)供諸君參考。
下面說(shuō)正事
我們先來(lái)看節(jié)選自一個(gè)PRD的部分目錄結(jié)構(gòu):
1.模塊分解
2.模塊名稱:
2.1模塊功能描述
2.2模塊定義數(shù)據(jù)
2.3服務(wù)能力
2.3.1服務(wù)名稱
2.3.2服務(wù)業(yè)務(wù)含義描述
2.3.3適用場(chǎng)景
2.3.4前置要求與能力觸發(fā)機(jī)制
2.3.5數(shù)據(jù)及數(shù)據(jù)有效性要求
2.3.5.1外部數(shù)據(jù)
2.3.5.2內(nèi)部數(shù)據(jù)
2.3.6處理過(guò)程描述
2.3.7調(diào)用后續(xù)模塊
2.3.8數(shù)據(jù)輸出
2.3.9異常情況以及處理
上述目錄傳達(dá)了幾個(gè)概念:模塊、服務(wù)、數(shù)據(jù)
模塊:
模塊定義了以業(yè)務(wù)含義高度關(guān)聯(lián)的核心數(shù)據(jù)范圍,以及該數(shù)據(jù)范圍內(nèi)可能發(fā)生的處理過(guò)程,也就是服務(wù)能力。
比如,一個(gè)企業(yè)賬號(hào)信息模塊,包含了該賬號(hào)ID(即系統(tǒng)賦予此賬號(hào)的索引值)、企業(yè)名稱、賬號(hào)類型、角色標(biāo)識(shí)(與角色權(quán)限關(guān)聯(lián))、相關(guān)的注冊(cè)信息(聯(lián)系方式、地址、規(guī)模等等)、相關(guān)的系統(tǒng)行為信息(登錄歷史、操作歷史等等)。在上述前提下,在核心數(shù)據(jù)范圍的設(shè)計(jì)策略上,普遍遵循模塊間解耦的原則,也就是模塊之間維護(hù)的核心數(shù)據(jù)保持獨(dú)立和隔離,避免重復(fù)存儲(chǔ)和間接查詢。
服務(wù):
服務(wù)定義了以某個(gè)模塊維護(hù)的核心數(shù)據(jù)為基礎(chǔ),發(fā)生的初始化、查詢、刪除等等處理過(guò)程,可能存在相應(yīng)的外部數(shù)據(jù)輸入和內(nèi)部數(shù)據(jù),以及經(jīng)過(guò)服務(wù)處理過(guò)程的數(shù)據(jù)輸出。依然以企業(yè)賬號(hào)信息模塊為例,該模塊提供的服務(wù)可能包含,初始化服務(wù)(即創(chuàng)建某個(gè)新的企業(yè)賬號(hào),也就是由用戶注冊(cè)行為觸發(fā)的底層數(shù)據(jù)行為)、對(duì)某個(gè)字段數(shù)據(jù)的查詢服務(wù)(通過(guò)外部輸入的索引值查詢?cè)撡~號(hào)的相關(guān)信息并給出輸出)、修改某個(gè)字段數(shù)據(jù)的服務(wù)(也可能存在不可修改的數(shù)據(jù),例如賬號(hào)ID)、刪除服務(wù)、更新賬號(hào)狀態(tài)服務(wù)、更新操作歷史服務(wù),以及可能存在的其他服務(wù)。服務(wù)的設(shè)計(jì)依賴對(duì)產(chǎn)品所支撐的業(yè)務(wù)過(guò)程的抽象,即該業(yè)務(wù)流中所包含的數(shù)據(jù),以及數(shù)據(jù)是以何種形式被輸入和被加工并輸出的。
數(shù)據(jù):
這里通過(guò)一個(gè)簡(jiǎn)單的功能來(lái)闡述,某個(gè)社交類產(chǎn)品里面,存在一個(gè)加好友的功能,并且用戶可以自由定義是否允許我的好友瀏覽我的朋友圈。下面我們分析一下,這個(gè)看起來(lái)很簡(jiǎn)單的功能所涉及到的數(shù)據(jù)。
首先,區(qū)分用戶的賬號(hào)類型,比如我們通常使用的個(gè)人微信號(hào)很明顯屬于同一類型的數(shù)據(jù)結(jié)構(gòu),且注冊(cè)方式、登錄方式、驗(yàn)證方式相同,微信公眾號(hào)的賬號(hào)體系卻有所區(qū)別(同時(shí)存在關(guān)聯(lián),這里暫時(shí)不討論復(fù)雜的情況)。在這樣的前提下,我們可以認(rèn)為發(fā)起好友申請(qǐng)的賬號(hào)和通過(guò)該申請(qǐng)的賬號(hào)屬于同一個(gè)模塊中維護(hù)的同一種類型的數(shù)據(jù),這里暫時(shí)命名為賬號(hào)信息模塊。同時(shí),每個(gè)賬號(hào)都有一個(gè)與之關(guān)聯(lián)的好友列表,這里暫時(shí)命名為好友模塊。這兩個(gè)模塊中維護(hù)的部分核心數(shù)據(jù)見(jiàn)下圖:
通過(guò)對(duì)模塊的分解和對(duì)核心數(shù)據(jù)的定義,添加好友這個(gè)功能,我們可以將底層邏輯解析為:
1.查詢賬號(hào)信息服務(wù)
即通過(guò)登錄狀態(tài)的賬號(hào)ID(理解為該服務(wù)的外部輸入),查詢至關(guān)聯(lián)的好友列表ID,并輸出。該賬號(hào)的好友,也是通過(guò)調(diào)用該服務(wù),查詢關(guān)于賬號(hào)的其他信息(可能包括昵稱、性別、年齡等等)。
2.查詢好友信息服務(wù)
通過(guò)前述服務(wù)輸出的好友列表ID(索引值),查詢至關(guān)聯(lián)的好友信息,并輸出該模塊部分核心數(shù)據(jù):好友的賬號(hào)ID和是否允許其瀏覽朋友圈(布爾值)。
3.初始化好友信息服務(wù)
即通過(guò)外部輸入的賬號(hào)ID,是否允許其瀏覽朋友圈(通過(guò)用戶的設(shè)置),新建該賬號(hào)關(guān)聯(lián)的好友列表中的一條數(shù)據(jù)并保存。
4.更新設(shè)置服務(wù)
在該權(quán)限允許修改的前提下,即更新“是否允許瀏覽朋友圈”這個(gè)數(shù)據(jù),更改對(duì)某一個(gè)好友對(duì)該賬號(hào)的朋友圈的瀏覽權(quán)限。
通過(guò)上述幾個(gè)服務(wù)的設(shè)計(jì)和互為輸入輸出的調(diào)用,方可實(shí)現(xiàn)所謂的“加好友和屏蔽朋友圈”這個(gè)簡(jiǎn)單的功能。且此處討論的是最簡(jiǎn)單的情況,賬號(hào)類型唯一,好友申請(qǐng)不需要通過(guò),僅有一個(gè)權(quán)限設(shè)置,考慮到實(shí)際設(shè)計(jì)過(guò)程中會(huì)出現(xiàn)更為復(fù)雜的情況,比如多種賬號(hào)類型的關(guān)系,是否采用雙向的好友關(guān)系,亦或是類似“關(guān)注”的單向關(guān)系,以及是否需要通過(guò)申請(qǐng),是否存在多個(gè)權(quán)限設(shè)置,權(quán)限之間是否存在交叉關(guān)聯(lián)。則需要在上述模塊中設(shè)置更多的數(shù)據(jù)和服務(wù),以確保功能的正確實(shí)現(xiàn)。
我說(shuō)完了
產(chǎn)品的底層邏輯設(shè)計(jì)其核心在于,對(duì)數(shù)據(jù)和模塊的分割,以及服務(wù)能力的設(shè)計(jì)和調(diào)用關(guān)系的搭建?;貧w到諸位作為設(shè)計(jì)者身上,考驗(yàn)的是產(chǎn)品經(jīng)理對(duì)業(yè)務(wù)的抽象能力,以及對(duì)定義數(shù)據(jù)的高度透視。個(gè)人理解其,作為對(duì)需求的描述方式,需要結(jié)合與底層邏輯高度一致的交互說(shuō)明以及前端信息結(jié)構(gòu)才能夠?qū)φ麄€(gè)產(chǎn)品做出清晰的闡釋。
簡(jiǎn)潔的界面并不能代表最優(yōu)秀的設(shè)計(jì),清晰高效的底層邏輯,代表了一個(gè)產(chǎn)品經(jīng)理對(duì)自己作品的終極思考和對(duì)細(xì)節(jié)的考究。如何規(guī)避產(chǎn)出冗余的數(shù)據(jù),交叉重復(fù)的服務(wù)能力,模塊分解的顆粒度選擇等等諸多細(xì)節(jié),都是1-3歲的產(chǎn)品經(jīng)理們趟著渾水一步一步摸索和積累,從而內(nèi)化為我們所謂的“邏輯能力”。
過(guò)去曾經(jīng)面試過(guò)很多產(chǎn)品方向的新同學(xué),往往大家都存在著覺(jué)得自己的邏輯能力還不錯(cuò)的幻覺(jué),個(gè)人的經(jīng)驗(yàn)是,邏輯能力也許是可以天生的,但更多還是需要在實(shí)踐中慢慢打磨。近日無(wú)事,再回頭看自己曾經(jīng)做過(guò)的設(shè)計(jì),老臉一紅,不知當(dāng)初何來(lái)的勇氣敢用這種東西打發(fā)程序員爸爸。
感嘆前路漫長(zhǎng),與君共勉。
本文由 @MyLady 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載。
又看了一遍這篇文章,簡(jiǎn)單的說(shuō),產(chǎn)品經(jīng)理懂點(diǎn)技術(shù)吧,比生硬的聽(tīng)作者講所謂的虛頭巴腦的底層邏輯強(qiáng)多了
我曾經(jīng)做過(guò)聊天應(yīng)用,確如作者所說(shuō)
寫(xiě)得非常好!這是產(chǎn)品經(jīng)理需要具備的底層技術(shù)邏輯理解能力。底下評(píng)論說(shuō)看不懂的自己給自己打嘴巴子吧
看不懂是不是因?yàn)槟闾肆四兀?/p>
產(chǎn)品的底層邏輯設(shè)計(jì)其核心在于,對(duì)數(shù)據(jù)和模塊的分割,以及服務(wù)能力的設(shè)計(jì)和調(diào)用關(guān)系的搭建。
閱讀的整個(gè)過(guò)程都很茫然。
作者的題目是:什么是底層邏輯。
于是我一直在尋找關(guān)鍵句:什么是底層邏輯?
然而作者只定義了:什么是底層邏輯的核心。
舉個(gè)栗子,什么是人類,和什么是人類的核心,這兩個(gè)問(wèn)題差別很大的。
文章開(kāi)門(mén)見(jiàn)山,產(chǎn)品的底層邏輯,指的是一個(gè)產(chǎn)品對(duì)所支撐的業(yè)務(wù)過(guò)程的抽象,是一個(gè)產(chǎn)品從數(shù)據(jù)維度對(duì)功能模塊的分割
謝謝提示。
但看不懂。
那你可以來(lái)一篇懂的
真是啰嗦,繞來(lái)繞去不知道說(shuō)些什么~
寫(xiě)得這么拗口,真的是看不懂寫(xiě)什么
等一個(gè)月以后,再來(lái)看看,希望理解更透徹些。
為什么我看不太懂 ??
看到最后一句話 太贊同了
受益受益!看一篇不夠,得花些時(shí)間重讀再消化
2B產(chǎn)品經(jīng)理經(jīng)常是提出改版,優(yōu)化這樣的體驗(yàn)需求,而很多設(shè)計(jì)師能優(yōu)化的部分往往少之又少,就像最近炒的很火的手淘優(yōu)化,更多的只是 “耳目一新”實(shí)際上并沒(méi)有多少“優(yōu)化”和“創(chuàng)新”,文章也揭示了一些正解