規(guī)劃:TO B產(chǎn)品架構(gòu)圖,用這6步搞定,錯過就要再等(1)
導(dǎo)語:軟件工程是一項復(fù)雜的項目工程,架構(gòu)設(shè)計的好壞往往決定著項目的成功或失敗。To B的產(chǎn)品人在設(shè)計一款產(chǎn)品時,學(xué)會搭建產(chǎn)品架構(gòu)是一項必備的能力。這里我們來聊聊To B的產(chǎn)品架構(gòu)如何去搭建,能讓你的產(chǎn)品生命周期更長,更穩(wěn)定。
“產(chǎn)品架構(gòu)猶如房屋地基、人體骨骼、車輛核心部件?!?/p>
“架構(gòu)”一詞最早來源于建筑,其核心是通過一系列構(gòu)件的組合來承載上層傳遞的壓力。經(jīng)過漫長的演變,架構(gòu)設(shè)計的理念已經(jīng)深入多個行業(yè)和場景,成為了必不可少的活動。
01 架構(gòu)認(rèn)知
1. 架構(gòu)的含義
架構(gòu)一詞,從韋伯詞典中定義為“一種意識過程結(jié)果的形態(tài)或框架;一種統(tǒng)一或有條理的形式或結(jié)構(gòu)”。這里的關(guān)鍵部分是具有特定結(jié)構(gòu)的,有條理的,這個定義很抽象,很不好理解,說人話核心我們要把握住“框架”、“結(jié)構(gòu)”、“有條理”這幾個關(guān)鍵詞就好了。
我們來看一個例子:
車的骨架由車身、車架、發(fā)動機、制動設(shè)備、輪胎和電器設(shè)備等構(gòu)成,這些組件構(gòu)成了一款完整的車,提供駕駛服務(wù),這些組件的好壞決定著車的使用壽命和服務(wù)體驗;組件數(shù)量的多少決定著車所能提供的服務(wù)邊界在哪,不是越多功能越多好,也不是只有一個車身就行,組件的最低數(shù)量是起碼保證一款車能夠正常使用。
同理,軟件產(chǎn)品是不是也需要具備同樣的邏輯,保證一款軟件產(chǎn)品能夠正常使用,滿足用戶訴求,解決用戶的問題。
我們有一個不容忽視的問題,軟件領(lǐng)域發(fā)展到今天,延伸出了企業(yè)架構(gòu)、業(yè)務(wù)架構(gòu)、應(yīng)用架構(gòu)、數(shù)據(jù)架構(gòu)、產(chǎn)品架構(gòu)、技術(shù)架構(gòu)等一堆的名詞。是不是有點暈了,這些架構(gòu)都是用來干什么,它們之間有什么區(qū)別?不搞清楚它們之間的關(guān)系,產(chǎn)品架構(gòu)從何談起。
2. 架構(gòu)之間的區(qū)別和聯(lián)系
這么多名詞,它們是如何定義的?相互之間如何區(qū)分和聯(lián)系?這里做一些簡單的說明,詳細(xì)的解釋和案例還望各位童鞋翻閱架構(gòu)相關(guān)書籍。我們來看下面這張圖。
1)業(yè)務(wù)架構(gòu)
業(yè)務(wù)架構(gòu)是指企業(yè)通過分析自身所處的外界環(huán)境,自身面臨的機遇和挑戰(zhàn),同時剖析自身的結(jié)構(gòu)特點和資源情況,明確自身優(yōu)劣勢,從而選擇和制定企業(yè)發(fā)展目標(biāo),制定具體的實施方案和計劃。
核心要素主要包括業(yè)務(wù)目標(biāo)、資源能力、業(yè)務(wù)流程和組織結(jié)構(gòu);放在企業(yè)層面是企業(yè)業(yè)務(wù)目標(biāo),放在部門層面是部門業(yè)務(wù)目標(biāo)。
對業(yè)務(wù)架構(gòu)我們要思考一下的問題:
- 達(dá)成的目標(biāo)是什么;
- 做什么業(yè)務(wù);
- 資源和能力在哪里;
- 什么樣方式在什么樣的組織里做;
舉例來說:企業(yè)采購業(yè)務(wù)的業(yè)務(wù)架構(gòu)
- 業(yè)務(wù)目標(biāo):合理、合規(guī)、高效、節(jié)約的方式為集團(tuán)各部門提供尋源、合同簽訂、訂單執(zhí)行等服務(wù),保障和保本各運營業(yè)務(wù)線的運行。
- 資源能力:品類豐富、規(guī)模優(yōu)勢、采購模式多樣,具備一定的市場話語權(quán)。
- 業(yè)務(wù)流程:以集團(tuán)統(tǒng)管的方式,實現(xiàn)供應(yīng)商交付,需求部門驗收的上下游流程一體化的格局。
- 組織結(jié)構(gòu):建立集采、分采等采購團(tuán)隊,集中管控+授權(quán)自購的組織體系。
2)數(shù)據(jù)架構(gòu)
數(shù)據(jù)架構(gòu)是基于數(shù)據(jù)管理領(lǐng)域知識經(jīng)驗的總結(jié),提煉指導(dǎo)未來數(shù)據(jù)管理的過程。
主要包括數(shù)據(jù)治理和數(shù)據(jù)管理,數(shù)據(jù)治理包括數(shù)據(jù)管理政策,原則,規(guī)范和標(biāo)準(zhǔn)等;數(shù)據(jù)管理包括數(shù)據(jù)總體視圖和數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)庫設(shè)計等。
下圖是一張總體視圖:
3)技術(shù)架構(gòu)
技術(shù)架構(gòu)是將數(shù)據(jù)架構(gòu)和應(yīng)用架構(gòu)落實下去,通過技術(shù)的手段實現(xiàn)出來。主要包括架構(gòu)規(guī)劃和技術(shù)選型等事項。架構(gòu)規(guī)劃包括網(wǎng)絡(luò)、平臺、語言、中臺、微服務(wù)等概念規(guī)劃;技術(shù)選型主要是具體到某個產(chǎn)品時技術(shù)方案的選型,包括開源框架、語言、架構(gòu)風(fēng)格、數(shù)據(jù)庫、中間件等。
我們來參考一個單個產(chǎn)品的技術(shù)架構(gòu)方案,如下圖:
圖片來源:百度圖片
4)應(yīng)用架構(gòu)
應(yīng)用架構(gòu)是描述一個企業(yè)各個相互獨立的應(yīng)用系統(tǒng)的部署以及核心業(yè)務(wù)流程之間的關(guān)系,目的是建立業(yè)務(wù)架構(gòu)與數(shù)據(jù)架構(gòu)和其他架構(gòu)之間的關(guān)聯(lián);它能連接業(yè)務(wù)架構(gòu)的流程,功能,人員,也能夠連接數(shù)據(jù)架構(gòu)中的數(shù)據(jù)管理和使用,還能提出對技術(shù)架構(gòu)的要求。主要分為表現(xiàn)層、應(yīng)用層和數(shù)據(jù)層來表示
產(chǎn)品架構(gòu)是產(chǎn)品的結(jié)構(gòu),是對某一塊具體業(yè)務(wù)的進(jìn)行抽象,并用可視化的方式呈現(xiàn)出來,它劃分了功能模塊、數(shù)據(jù)流向,包括現(xiàn)有的,以及未來規(guī)劃的。其目的不僅是為了架構(gòu)設(shè)計的簡潔性,更是為了整個業(yè)務(wù)的完整性,把離散的業(yè)務(wù)過程場景化。
產(chǎn)品架構(gòu)和應(yīng)用架構(gòu)的關(guān)系?
產(chǎn)品架構(gòu)是應(yīng)用架構(gòu)的一部分,當(dāng)應(yīng)用架構(gòu)只有一個產(chǎn)品時,也就是產(chǎn)品架構(gòu)。多個產(chǎn)品組合一起形成了企業(yè)應(yīng)用架構(gòu)全景圖。
這里主要闡述如何規(guī)劃產(chǎn)品架構(gòu)圖。
02 為什么產(chǎn)品架構(gòu)圖
畫產(chǎn)品架構(gòu)圖目的是為了將業(yè)務(wù)架構(gòu)拆解并梳理出產(chǎn)品思路,整體上把握產(chǎn)品的發(fā)展方向,把控產(chǎn)品的核心功能,決定了產(chǎn)品功能的實現(xiàn)路徑和大體規(guī)劃。當(dāng)然,架構(gòu)本身也是需要隨業(yè)務(wù)的發(fā)展逐步的演進(jìn),具備一定的擴(kuò)展性。這里闡述幾條做架構(gòu)的好處:
1)梳理產(chǎn)品方向和規(guī)劃路徑
這種圖本身就體現(xiàn)了整個產(chǎn)品的結(jié)構(gòu),包括已實現(xiàn)的和未實現(xiàn)的,為產(chǎn)品的迭代指明方向,判斷產(chǎn)品之間的依賴和關(guān)系。
2)為團(tuán)隊提供明確的目標(biāo)
團(tuán)隊成員,包括,研發(fā)、測試、運營、市場和銷售,能夠根據(jù)這張圖了解產(chǎn)品的規(guī)劃,相應(yīng)的團(tuán)隊可采取對應(yīng)的策略。比如,研發(fā)可思考技術(shù)方案,市場和銷售可制定產(chǎn)品的推銷策略等。
3)建立業(yè)務(wù)全景圖
產(chǎn)品規(guī)劃是從業(yè)務(wù)架構(gòu)中抽象出來的,反過來,可以幫助業(yè)務(wù)部門完善業(yè)務(wù)制度、和管理標(biāo)準(zhǔn)化,實現(xiàn)整個鏈條上的閉環(huán)。
03 構(gòu)建產(chǎn)品架構(gòu)圖
構(gòu)建產(chǎn)品架構(gòu)圖是需要產(chǎn)品人具備較高的綜合能力,包括不限于:
- 相關(guān)的業(yè)務(wù)知識;
- 對相關(guān)成熟的商業(yè)產(chǎn)品了如指掌;
- 一定的技術(shù)知識儲備;
- 產(chǎn)品戰(zhàn)略和規(guī)劃的能力;
- 抽象、歸納和結(jié)構(gòu)化思維能力;
這里提供一個方法:6步構(gòu)建To B產(chǎn)品架構(gòu)圖
1. 梳理用戶故事,全面認(rèn)識業(yè)務(wù)需求,形成業(yè)務(wù)閉環(huán)
不管是從0到1構(gòu)建一款產(chǎn)品,還是1到N迭代一款產(chǎn)品,當(dāng)新的業(yè)務(wù)場景進(jìn)來時,我們先要進(jìn)行用戶分析和需求調(diào)研,全面的認(rèn)識需求,從組織級,用戶級,開發(fā)級三個層面考慮不同類型的功能需求、質(zhì)量需求和約束條件。比如,我們看一個企業(yè)采購需求到合同簽訂的場景。
這里用戶提交需求,中間經(jīng)過招投標(biāo),最后才簽訂合同,涉及多個角色,多個業(yè)務(wù)場景,我們在分析的時候,就要全面的調(diào)研整個業(yè)務(wù)環(huán)節(jié)的用戶,并記錄其相應(yīng)的業(yè)務(wù)訴求和現(xiàn)狀。
2. 識別業(yè)務(wù)鏈條的業(yè)務(wù)領(lǐng)域以及問題域
用戶的需求陳述可能是模糊,可能是清晰的,我們在獲取用戶需求后,先要判斷業(yè)務(wù)領(lǐng)域,再識別該領(lǐng)域內(nèi)的問題。
1)業(yè)務(wù)領(lǐng)域,是一個組織所做的事情以及其中所包含的一切。狹義上,如采購領(lǐng)域、生產(chǎn)領(lǐng)域、銷售領(lǐng)域等。這里領(lǐng)域是采購領(lǐng)域,子領(lǐng)域是采購里的細(xì)分領(lǐng)域。
我們將上面的例子進(jìn)行領(lǐng)域劃分后,分為需求領(lǐng)域、招投標(biāo)領(lǐng)域和合同領(lǐng)域,如下:
2)問題域,是指產(chǎn)品能夠解決的所有問題的集合。架構(gòu)設(shè)計是沒有時間對所有需求進(jìn)行深入分析,也沒必要對所有的需求進(jìn)行深入分析,只要抓住關(guān)鍵需求即可。
關(guān)鍵需求決定架構(gòu),將核心需求當(dāng)前要解決的,以及未來要解決的問題歸集起來,作為問題域。
比如,上面的例子包括不限于以下問題:
- 怎么識別該需求需要招投標(biāo);
- 招投標(biāo)需求是否需要策略;
- 招投標(biāo)如何制定比價模板;
- 招投標(biāo)如何進(jìn)行比價;
- 招投標(biāo)如何進(jìn)行定標(biāo);
- 合同簽訂有多方嗎;
建立問題域是需要產(chǎn)品人具備一定的業(yè)務(wù)知識和結(jié)構(gòu)化思維,可閱讀相關(guān)業(yè)務(wù)書籍,比如采購,財務(wù)書籍等,提問過程可基于實際業(yè)務(wù)操作流來積累每個環(huán)節(jié)可能會出現(xiàn)的問題。
3. 畫出業(yè)務(wù)閉環(huán)流程圖,并拆分出初步的解決方案域
通過前面的調(diào)研和領(lǐng)域劃分,基本上能夠確定業(yè)務(wù)場景現(xiàn)有的或?qū)淼臉I(yè)務(wù)流程圖。業(yè)務(wù)流程圖的畫法,可參考相應(yīng)的書籍或后續(xù)文章會單獨進(jìn)行分享如何畫好業(yè)務(wù)流程圖。
基于業(yè)務(wù)流程圖和需求,我們需要抽象和歸納同類型事物,用更高層次來表達(dá);比如,蘋果和梨子都是水果。
上述案例我們基本可以得出整個流程上的初步解決方案功能。
4. 明確產(chǎn)品定位,劃分好范圍
回到定位,不要走錯了路。可參考:《戰(zhàn)略(4):TO B產(chǎn)品定位,千萬不要忽略這兩層!》。
梳理完需求和業(yè)務(wù)流程以及初步的解決方案域,我們能夠評估那些是當(dāng)前產(chǎn)品或待規(guī)劃產(chǎn)品的范圍,不是當(dāng)前產(chǎn)品定位內(nèi)的需求,要果斷的讓另一個產(chǎn)品承接;比如,審批流的需求,當(dāng)前產(chǎn)品內(nèi)只能是部門內(nèi)審批,涉及到外部門的審批,審批流的功能必須放在企業(yè)OA系統(tǒng)完成。
5. 架構(gòu)分層
清晰的產(chǎn)品架構(gòu)圖至少包括這三層:
- 表現(xiàn)層:用戶接觸產(chǎn)品的途徑;產(chǎn)品展示給用戶的界面、風(fēng)格;
- 應(yīng)用層:產(chǎn)品的功能模塊劃分、數(shù)據(jù)流向、接口集成;
- 數(shù)據(jù)層:產(chǎn)品的數(shù)據(jù)存儲方式;
在進(jìn)行產(chǎn)品架構(gòu)分層時,我們可以采用自上而下的方法分別對展示層、業(yè)務(wù)邏輯層和數(shù)據(jù)層進(jìn)行信息分類和排版。在信息分類時可以使用金字塔原理將每層核心信息盡量完全窮盡,相互獨立。
分層之前需注意以下幾項:
- 明確不同信息層級的邊界:架構(gòu)的層級表達(dá)有一定的信息流轉(zhuǎn)邏輯,同一層級的上下信息流轉(zhuǎn)要一致
- 明確同一層級的子模塊邊界:同一層級不同模塊的邊界要清晰,模塊之間要做到可獨立開發(fā)和部署
- 明確產(chǎn)品邊界:產(chǎn)品邊界要清晰,明確區(qū)分不同產(chǎn)品的顏色
1)表現(xiàn)層
主要是用戶的接觸渠道,用戶通過這個登錄使用產(chǎn)品功能,獲取相應(yīng)的服務(wù),一般可分為PC端和APP端。
2)應(yīng)用層
這個層將具體的功能進(jìn)行分類組合成模塊單元,先將大的模塊填充,再將大模塊下的功能點填充。
模塊和功能的顆粒度如何界定?
- 模塊的劃分顆粒度可參照業(yè)務(wù)領(lǐng)域模型來劃分,比如招投標(biāo)領(lǐng)域的業(yè)務(wù)功能點歸類到招投標(biāo)模塊,合同領(lǐng)域的功能點歸類到合同模塊;
- 功能點劃分顆粒度可采用面向?qū)ο蠓椒ǖ膶嶓w顆粒度或者按完成某一項業(yè)務(wù)工作事項,比如,立項這個功能點,就是按采購員要完成發(fā)標(biāo)前立項要做的工作任務(wù)來劃分。
顆粒度大小沒有明確標(biāo)準(zhǔn),只要能表述一項工作任務(wù)即可。
另外,一些主數(shù)據(jù),用戶,組織架構(gòu),消息組件,日志管理、接口服務(wù)等服務(wù)能力可單獨放在支撐層或者作為應(yīng)用層的一些基礎(chǔ)數(shù)據(jù)也是可以。
3)數(shù)據(jù)層
這里主要是描述產(chǎn)品主要的數(shù)據(jù)存儲數(shù)據(jù)庫和存儲方式。比如,涉及到結(jié)構(gòu)化數(shù)據(jù)一般存儲在Mysql,sql server等關(guān)系型數(shù)據(jù)庫;涉及到文件,可能一般存儲在對象存儲。
圖中的1、2、3對應(yīng)的是表現(xiàn)層,應(yīng)用層和數(shù)據(jù)層的功能和邏輯劃分,大家可以參考;這里就沒有把技術(shù)架構(gòu)相關(guān)的內(nèi)容放上來了,特別是涉及到中臺、微服務(wù)劃分,均沒有體現(xiàn),比如,IAAS層,PASS層,SaaS層等。
5. 信息流轉(zhuǎn)和產(chǎn)品規(guī)劃
產(chǎn)品架構(gòu)圖除了表達(dá)核心功能之外,還需將信息流轉(zhuǎn)的路徑標(biāo)識清楚,比如圖中的標(biāo)識4;
另外,我們需將產(chǎn)品功能的實現(xiàn)情況通過不同顏色標(biāo)識出來,比如,綠色代表功能已上線,黃色代表功能需優(yōu)化,灰色代表功能是規(guī)劃中。
如果你的產(chǎn)品是0到1,那么也可以標(biāo)識出1.0版本做那些功能,2.0版本做那些功能,3.0版本做那些功能,有一個相對清晰的展示,這才是最終的產(chǎn)品架構(gòu)圖。
如下圖:
最后,構(gòu)建產(chǎn)品架構(gòu)圖是產(chǎn)品經(jīng)理一項必備的能力,To B的產(chǎn)品結(jié)構(gòu)相對較為復(fù)雜,除了考慮產(chǎn)品本身功能場景外,還需考慮集成系統(tǒng)之間的數(shù)據(jù)交互和接口交互。
這里給大家分享了架構(gòu)是什么,為什么要做產(chǎn)品架構(gòu),以及6步法構(gòu)建一款B端產(chǎn)品架構(gòu)圖,接下來我們就是要找機會去練習(xí),去感悟。
知道的是知識,做到的是能力,能夠構(gòu)建自己的體系才是大咖!
你認(rèn)為好的產(chǎn)品架構(gòu)圖是什么樣的?
作者:Robin;公眾號:PM雜貨鋪
本文由 @Robin 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載。
題圖來自 Unsplash,基于CC0協(xié)議
請問有推薦的書籍嗎?
終于看到個能把這個事兒說清楚的老師了,請問下有推薦的畫產(chǎn)品架構(gòu)圖的軟件么?
可以使用億圖圖示
感謝
思路清晰