我的產品架構觀:模塊化,高內聚低耦合
編輯導語:我們在談論產品結構時,一般會從哪些角度來探討這個問題?其實從不同的視角看問題會設計出不同的產品架構。作者從模塊化、高內聚低耦合幾個方面談論自己的產品結構觀,希望與你一同共勉。
當我們討論一個產品架構的時候,我們既不是站在用戶的視角去討論這個問題,也不是站在老板的視角去思考商業模式,而僅僅是從一個工程師的角度,去討論這個產品應該以怎樣的結構去搭建,這是我之前很少思考過的命題。
從用戶視角看過去,這個產品是上線的,且這些產品信息是特地展示給用戶的,而與之伴隨的過程和后臺信息,用戶看不到。
從老板視角看過去,這個產品服從于某個戰略,身上貼著兩個標簽:成本和收益。
而從工程師的視角看過去,這是一個系統。這個系統如何從圖紙到地基到高樓大廈,都是這個系統演化過程中的信息。
工程師固然要作為用戶去體驗、要作為員工去思考成本和收益,但工程師的最大滿足,在我看來,就是以一種高效和科學的方式,管理整個流程。流程管好了,和你配合的團隊才算是管好了。
我以前沒有去認真思考過產品架構的問題,一方面是因為我做的很多產品都不需要從0到1,絕大多數都是對現有的產品做優化,而優化的目標,要么是優化用戶體驗,要么是改善成本和收益。
但在具體執行的過程中,總是會出現研發過程的磨損。而這種磨損,往往對團隊士氣是一種巨大的傷害,如果需求成功了,勝利會掩蓋一切矛盾,但如果失敗了,怨氣會在心里慢慢累積。
曾經我以為這種研發過程的磨損,是項目管理上的問題,能通過更好的過程管理來減少磨損,抑或是通過更好的溝通技巧來解決。
但我漸漸覺得,我似乎忽略了產品架構設計對研發過程的影響。
如果一個結構本身不合理,可能就會注定產品方案設計和技術方案設計之間,會產生更多的偏差和磨合,自然而然就反饋到了研發過程中
為了讓你能更容易理解,我以最近負責的一個講書會員產品的搭建過程為例,來說明我的產品架構觀以及這種觀念對研發過程的影響。
市面上有很多講書會員產品,比如樊登讀書:
從用戶視角來看,這個產品就是能夠讓我可以用聽的方式去了解一本書的精華內容和講書人對這本書的分析。
從老板視角來看,這個產品的成本包括版權、講書人簽約、產品研發運營成本等等,收益主要來源于用戶付費買會員資格。
但從工程師的角度來說,理解用戶視角和老板視角,都沒有辦法直接幫助自己去開始一個講書會員產品的設計。
產品經理需要把這件事情,變成程序員可以看的懂的圖、表、原型、描述等,而程序員又進一步以更專業的方式開展任務設計、拆分,最終到一行行代碼。
最近我在操盤公司一個新的講書會員產品,與更經典的講書產品相比,它是日更的形式,跟傳統日更形式的付費專欄相比,它又是以書籍的形式呈現出來。
剛剛接手這個產品的設計工作時,我就在想我的設計需要用一張圖就可以說清楚,清晰的結構,在跨團隊的溝通中會讓大家快速形成共識,并且當問題出現時,也能快速定位到問題。
一、先聊聊模塊化
拋開產品本身不談,我們所在的社會本身就是模塊化的。無論是由無數家庭組成的整個社會,還是由多個部門組成的整個公司,都是模塊化的。
模塊背后是秩序,秩序背后是邏輯,產品是講邏輯的,故產品的背后一定是模塊化的。
對于一個講書會員產品來說,我將它劃分為如下幾個主要模塊:資源、商品、用戶、體驗、營銷、訂單。下面分別做說明。
(1)資源
這是對內容的管理。對于一個日更的講書產品來說,資源管理的主要目標是節目和書籍。
- 節目是最小播放單位,即單次播放是建立在節目上的。
- 書籍是節目的組合,在資源上配以自己的包裝內容,例如封面、介紹、標題等。
基本上管理好書籍和節目,也就管理好了一個講書產品。
(2)商品
這是從內容到商品的轉變。商品是可售賣的,具有交易價值,這是資源和商品最重要的區分。
如果一本書可以單獨售賣,那這個書既是資源、又是商品,但對于一個會員產品來說,用戶買的是會員身份,這個身份的權益是可以暢聽資源。
(3)用戶
C端產品直面用戶,用戶的管理是核心。
從C端產品的角度看,用戶模塊主要是對用戶基本信息的管理和操作。
但從講書會員產品的角度看,用戶模塊更重要的是對用戶會期的管理和操作,在會期的管理上,我認為可跟庫存產品對應來看,用進銷存的概念,去理解會期的新增、消耗和現值。
(4)體驗
這是用戶所能感受到的全部。還記得我們前面說的,從用戶視角看產品呢,其實看的就是對應產品系統內的體驗模塊。
對體驗的進一步拆分,我會劃分為“功能、頁面、端”三條線。
- 講書產品的功能體驗包括播放、互動、行為沉淀等;
- 頁面包括產品首頁、會員付費頁、書籍詳情頁和節目詳情頁;
- 端則主要是客戶端、web端、pc端、ipad端等。
(5)營銷
這是從商業層面出發的模塊,營銷的目標是為了擴大品牌知名度,促成交易。講書會員產品常見的營銷方式有:優惠券、禮品卡、免費會期、組合銷售等。
(6)訂單
這是極其非常重要的一個模塊,怎么下功夫都不為過。
本質上訂單就是一個記錄,在用戶付費購買會員的那一刻,這個記錄就生成了。
為什么說它很重要呢,因為訂單是跟錢關系最大的一個模塊,訂單不準,業務基本就廢了。就好像你開一家實體店,裝修、進貨、陳列、動線,你說重要么,重要的,但是如果賬管不好,基本這家店存活不了多久。
講完這么多,你一定有疑問,為什么是這么幾個模塊?
二、再聊聊高內聚和低耦合
我第一次聽到這個概念,是我在學C語言的時候。對C語言來說,最重要的概念便是函數了。函數就是一個模塊,函數和函數之間可以互相引用,通過參數實現連接。
作為產品經理,我跟技術打交道的第一堂課就是了解了前端和后端的區別。對于技術架構來說,前端和后端是獨立的模塊,彼此通過接口產生連接。
高內聚和低耦合,并不一定是最合理的模塊劃分原則,就像我們小時候做歸類題一樣,標準不同,歸類的結果也不一樣。
但是,高內聚和低耦合是技術最友好的模塊劃分原則,我希望解決的是:減少產品方案和技術方案之間的偏差和磨合,先奠定一個合理的架構,再思考通過項目管理和非暴力溝通,來優化整個產品研發過程的效率。
什么是高內聚,我的理解是:單個模塊是完整并且相似。如果這個模塊可繼續劃分為子模塊,那子模塊之前是相似的。
什么是低耦合,我的理解是:模塊與模塊之間通過類似“接口”這樣的概念產生連接,就像兩個島之間通過橋連接,而不是一個島和島上一個廣場的關系。
上面的話有點抽象,回到講書會員產品吧。
還記得么,資源包括節目和書籍,無論是哪一個,他們都是一個內容方向的概念,你絕對不會把節目和優惠券放在一個模塊內,因為他們幾乎無相似度,聚合度很差。
再者,商品和資源之間,通過一個配置項就可以解決。
當然,具有會員身份的人可以暢聽所有資源,這是一個業務規則,假使會員只能聽其中的部分書籍,那在配置會員商品的時候,也只需要做添加書籍的配置就可以了。
另一方面,講書會員產品本身跟其他系統也是高內聚和低耦合的關系,上面提到的優惠券,一般是有現成的優惠券系統,而講書會員要可以使用優惠券,只需要在優惠券的配置上增加這個會員產品就可以了。
當然,這也很考驗優惠券系統本身的擴展性,這又是另一回事兒了。
三、為什么要寫我的產品架構觀
我經常聽很多人分享在大公司做螺絲釘的體驗,其中最常聽到的一句話就是,一個產品,無論誰來做,最后總能做出來。
也就是說,很多時候我們太關注輸出和價值,但是對設計過程卻關注得不錯,但在我看來設計過程卻是極有魅力的,也非??简灝a品基本功。
怎么跟大家說這種感覺呢,我引用一段《三體》中的情節吧。
人類在未來的某個時刻,在太空的某個角落,意外的發現了四維空間碎片,某個宇航員意外的踏入了這個四維空間。
他說,那是一種有語言無法描述的感受,在四維空間里,一切三維世界中的物體都是透明的,這種透明是原子緯度的。
從三維到四維,這種信息的爆炸是如此之強,以至于他們再次回到三維空間時,都產生了空間幽閉感。因為那個緯度的信息太豐富了,以至于眼前的世界像一方緊閉的高墻。
為什么要關注產品的設計過程中,又為什么要有自己的產品架構觀呢,就是希望作為產品經理,我看到的不再僅僅是用戶體驗和商業價值,而是這個產品所走過的每一步,破除那方高墻,真正認識你所負責的產品。
#專欄作家#
大力哥呀;微信公眾號:大力哥求職,人人都是產品經理專欄作家。正年輕的產品經理,關注新零售、用戶體系,擅長問題抽象及拆解。
本文原創發布于人人都是產品經理。未經許可,禁止轉載
題圖來自Unsplash,基于CC0協議
一圖勝千言,全文只有一張配圖,還是多放幾張圖吧??
作者段位很高