產品設計——一見復雜先分層

0 評論 1791 瀏覽 4 收藏 10 分鐘

分層是一種重要的思考和解決問題的方法。它可以幫助我們從宏觀上把握問題,分階段設定目標,再通過分解來具體實施。無論是組織架構設計,還是軟件開發,分層都發揮著重要作用。掌握分層思維,可以讓我們更從容地面對復雜問題,邁出解決問題的第一步。

我們要談一個同行們都會遇到的問題,面對復雜需求時,如何邁出第一步?這里不賣關子,豆芽君的解法就是對問題進行分層。

我們先回答一個問題:分層和分解有什么區別?

一、分層和分解有何區別?

學習過金字塔原理、結構化思維、軟件開發設計的朋友,對分解都不陌生。它是一種結構主義,假設了要完成一件復雜的事,通過逐層分解,最終是可以分解成一個個具體的動作。

比如美食博主們要做一份蒜香蝦,他能把這份美食的材料組成、烹飪過程都分解得一清二楚。屏幕前的我們,仿佛看完后,自己已經預演操作了一遍。

那么我們今天要說的分層又是什么?分層相比分解,它更抽象。同樣舉個我們常見的例子來感受下分層。

公司定了一個產品目標,要向市場推出一套新的辦公系統。如果你是一名產品經理,你會如何制定這個產品開發計劃?這件事有標準做法嗎?

有的產品經理會采用先調研內部高層的目標,再尋找市面的競品,最后再來梳理產品的用戶群、功能定位、差異化。而有的產品經理則會先開展外部調研,了解外部客戶的需求,再回來和公司高層分享市場信息,最后再來考慮自己的產品設計。

我們能說哪種做法更正確嗎?這很難說。他們的差異更多是取決于他們所在組織的工作文化和產品經理的工作方式偏好。

但你認真對比下這兩種做法,能抽象出它們有什么共性嗎?

建議你想一想,再往下看

簡單地理解,兩種做法的背后都是先調研、分析,再定目標。雖然它們的具體步驟是不同的,但有一點是相同的:先規劃(規劃層),再行動(執行層)。

認真觀察我們周圍,不少人接到一項任務,習慣性就開始采用【分解】的做法,他們相比那些想都不想,直接開干的人已經上了一個臺階。但大家具體一聊的話,會發現他們常常面臨諸多問題,不知道怎么分解才是對的。原因是他們把不同層次的問題都夾雜在一起考慮,導致無從開始做分解。

這也是我們今天分享【分層】這個主題的意義所在。

二、分層到底能解決什么問題?

我們先看看分層的一些典型應用:

從公司的職務來看,至少分為高層、中層、執行層。大家有沒認真想過不同職務層的人他們如果參與到同一件事,他們各自的工作是什么嗎?這里就是我們要講的分層最通俗的應用。

一般來說高層解決定目標的事,中層處理定流程、規范的事,執行層干類似搬磚的事(沒有貶低任何一方得事,高層和中層可能也不會搬磚了,各司其職而已)。

那么為什么要對組織架構進行分層?其實這種分層對應著組織在開展業務過程中所需的分工、協作。有資源、有行業經驗的高層,他們負責制定業務的戰略、目標;有管理經驗、能力強的中層,他們則負責梳理業務開展的規范、分工;有專業能力的執行層,負責落地具體的分工任務。

大家有繼續想一個更復雜的問題?這三者分工的事,最終能像膠水粘出一件像樣的成品嗎?不然這就是各說各話,各做各事,最后干的結果可想而知。

好,我們重點介紹下在軟件的分層設計,這種工程領域,它們是如何分層以及連接?(以下內容部分來自AI,豆芽君根據我們讀者的背景知識進行調整)。

三層架構是一種經典的軟件設計模式,將應用程序劃分為三個邏輯上的層次,分別是表示層、業務邏輯層、數據訪問層。

下面是每層的具體分工以及它們之間的協作方式:

1)表示層: 系統與用戶交互的界面,負責展示數據和接收用戶輸入。它處理圖形用戶界面的顯示邏輯、用戶輸入驗證以及用戶操作響應,但不包含業務處理邏輯。

2)業務邏輯層: 系統的核心,封裝了所有的業務規則和邏輯處理。它接收來自表示層的請求,進行必要的業務處理(如計算、事務處理、邏輯判斷等),并可能調用數據訪問層來獲取或更新數據,最后將處理結果返回給表示層。

3)數據訪問層: 負責與持久化數據存儲(如數據庫、文件系統)進行交互,包括數據的讀取、寫入、更新和刪除操作。它的主要目的是為業務邏輯層提供一個抽象層,隱藏數據存儲的具體細節。

層與層之間的工作銜接:

  1. 表示層向業務邏輯層請求數據或服務,當用戶在界面上執行操作時,表示層收集用戶輸入,將其封裝成請求或參數,然后調用業務邏輯層的接口或方法。
  2. 業務邏輯層接收到表示層的請求后,執行相應的業務邏輯處理,如果需要訪問數據庫,它會調用數據訪問層的方法來完成數據的CRUD(創建、讀取、更新、刪除)操作。
  3. 數據訪問層處理與數據庫的通信,執行SQL查詢或其他數據訪問操作,并將查詢結果返回給業務邏輯層。
  4. 業務邏輯層根據從數據訪問層獲得的數據,進一步處理(如格式轉換、邏輯運算等),然后將最終結果封裝好,通過接口返回給表示層。
  5. 最后,表示層接收到來自業務邏輯層的結果,更新用戶界面,展示所需的信息或處理結果,完成與用戶的交互循環。

相信具備點計算機基礎的你,是可以看出表示層、業務邏輯層、數據訪問層是通過一種自上而下請求,然后自底向上返回的方式來完成三者的連接的。

不知道好奇的你,會不會進一步追問,難道不分層不行嗎?

答案是:真不行。理由是一方面人員的術業有專攻,很少有工程師同時掌握前后端的所有開發技術;另一方面業務的發展、變化,如果系統不分層,會造成每一個調整都牽一發動全身,影響業務的正常開展。

所以說分層是為專業化、復雜性而生的。

講到這,你回過頭來想想,為什么要先分層?再考慮分解?

分層的目的是考慮不同階段所要達成的目標,而分解是對每個層次目標的具體工作分解。如果跳過分層,直接進入分解,就容易擴大問題范圍,造成問題失焦。

三、如果我想了解分層,怎么入門?

聽起來分層好像很厲害,但又很抽象。如果我想用下【分層】這種做法,可以怎么樣上手?

豆芽君又偷懶用了下,用AI查了分層的一些應用工具。你可以網上去看看三個工具:分層直方圖、分層排列圖和層次分析法,和它們的具體應用案例。

相信看完后,你就不會覺得這個概念太玄乎,動手去分析一個復雜問題的分層吧。比如說時下最火的AI,你能分析下它的組成是什么嗎?普通人如果想進入這個領域去做些副業,可以怎么開始?歡迎你來一起討論。

本文由人人都是產品經理作者【豆芽悟】,微信公眾號:【豆芽悟】,原創/授權 發布于人人都是產品經理,未經許可,禁止轉載。

題圖來自Unsplash,基于 CC0 協議。

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 目前還沒評論,等你發揮!