阿里妹導讀:對事物的歸類分組是我們人類的天性,我們的大腦會自動將發現的所有事物以某種持續組織起來。但如何組織才能幫助我們解決工作和生活中出現的各種複雜問題?今天,我們請阿里高階技術專家張建飛分享他的黃金三步法。
我們經常說軟體開發中,沒有銀彈。的確,單看軟體領域,很少有什麼方法論是普適的。然而再拔高一些,跳出軟體的範疇,有一些東西是普適的。
最近,我有一個新發現:我發現“歸類分組”在我們解決問題中起著巨大的作用。而這裡的“問題”不僅僅限於軟體設計,從日常生活、產品設計到公司戰略、生物分類。都有它的身影。
這是為什麼呢?究其原因可能有兩個:
1.歸類分組是抽象的重要方法,解決複雜問題我們離不開抽象。
2.歸類分組是結構化的重要步驟,結構化的表達離不開歸類分組。
當然,歸類分組要先有素材可以“歸類”才行。因此,完整的方法論是這樣的,我給他起了一個好聽的名字——解決問題黃金三步:定義問題——分解問題——歸類分組。
這三步的詳細操作如下:
第一步,定義問題:也就是要清楚我們要解決的問題是什麼?第二步,分解問題:對問題進行分析拆解,形成平鋪的多個子問題,此步可以儘量發散。第三步,歸類分組:對子問題進行歸納、剪枝,將趨同的子問題,合併成一類問題。
如上圖所示,通過黃金三步以後,我們就可以得到一個形同“金字塔”的結構,也就是我們經常說的金字塔結構。根據問題的複雜程度,這個金字塔結構可能是兩層,也可能是三層和多層。
看似簡單的三步操作會有那麼大的作用嗎?廢話不多說,直接上案例。
在日常生活中的運用你出門買報紙,你老婆說家裡冰箱空了,順便帶點東西回來吧。她給你列了一個清單,裡面有葡萄、橘子、鹹鴨蛋、土豆、雞蛋。你說就這麼多了嗎?她說蘋果和胡蘿蔔也可以買一點。當你準備出門的時候,她說家裡的牛奶和優酪乳也沒有了,最好也買一點回來。
你覺得你能把老婆交代的東西都買齊嗎?我看很難,因為我們的大腦短期記憶無法一次容納7個以上的記憶專案,超過5個時,我們就會開始將不同的專案歸類到不同的邏輯範疇,以便於記憶。
如果我們將葡萄、橘子、牛奶、鹹鴨蛋、土豆、雞蛋、胡蘿、蘋果、優酪乳。按照邏輯關係,進行下歸類分組,比如把葡萄、橘子、蘋果歸為水果類,把土豆、胡蘿蔔歸為蔬菜類,便可以大大幫助我們提高記憶效率。
注意這裡分類的作用不只是將一組9個概念,分成每組各有4個、3個和2個概念的3組概念,因為這樣還是9個概念,你所要做的是提高一個抽象層次,將大腦需要處理的9個專案變成3個專案。
如果你已經這麼做了,恭喜你,你已經在實踐黃金三步了:
這就是結構化思維,下次你再接到老婆這樣的“需求”,記得把這個方法論用上,她一定會對你刮目相看。
在工作彙報中的運用定義問題
“小張,客戶對銷售報告和庫存報告不滿意,你去看一下什麼原因。” 面對這種典型的工作問題,你打算怎麼處理呢?
分解問題
首先,你肯定要去調研客戶不滿意的原因,經過調查你發現,客戶不滿意主要有以下原因造成的:
歸類分組
所以我們有必要加上第三步,對問題進行進一步的歸類分組,我們可以將8個問題概括為3組:
報告中含有不可靠的資料;報告的格式混亂;產生報告的時間太晚,無法採取有效措施。進行分組之後,我們就可以得到如下的金字塔結構:
這種結構化的表達,很明顯讓問題的表述更加清晰。領導也可以很快抓住問題的要點,並作出相應的決策。當然,這裡是為了著重介紹歸類分組,真正的彙報你還要提供對應的解決方案,然後讓老闆做“選擇題”。
在寫程式碼時的運用你遇到一個相當複雜的業務場景,在這個業務操作中,涉及到大量的校驗和執行操作。這種程式碼,如果沒有一定的策略,很容易寫成大泥球。
定義問題
例如,在我們的業務中有一個商品上架的操作,是一個非常複雜的業務操作。
分解問題
對這種業務問題的分解,通常是產品經理的職責,但是作為工程師也不能完全依賴PRD。因為產品視角和工程視角還是有差別的。
針對“商品上架”,我們做了如下的功能分解:
歸類分組
同樣,在分解之後,我們需要有一個歸類分組的過程。否則,這些步驟的平鋪會讓程式碼顯得凌亂,不方便記憶和維護。通過分析,我們可以把分解後的步驟分成三個階段:
初始化階段校驗階段執行階段通過黃金三步,我們可以得到如下的金字塔結構:
最後,我們按照這個結構去組織我們的程式碼,整個程式碼結構會更加清晰,程式碼的可維護性也會好很多。
在應用架構中的運用應用架構主要解決的是模組、元件定義和模組、元件關係的問題。
從巨集觀層面來說,架構設計也是遵循這三個步驟的。比如,我們的架構要如何分層,分模組、分元件就是在做問題分解。然後,模組和元件要歸屬在哪個層次,要如何命名,就是在做抽象,在做分類歸組。
在綜合考慮功能屬性+品質屬性,然後通過黃金三步,就能得到我們想要的架構設計。例如,我們的COLA 2.0架構也是在這個方法論的指導下完成的。
在產品架構中的運用定義問題
“小張,為了做新零售,我們打算做一款智慧網際網路POS機,你先做一下產品設計。”
分解問題
通過調研你發現,作為POS機,其核心功能是收銀和經營管理。所以至少需要包含收銀的功能、服務核銷的功能、商品管理的功能、庫存管理的功能等等。
但如果僅僅是滿足這些功能,和傳統的POS並沒有多大的區別,為了滿足“智慧”和“網際網路”的要求,你去深入百度了一下智慧POS應該具備的功能,大致包含以下功能:
刷臉支付;支援品牌商營銷;支援自主營銷;智慧定價;外賣對接;彩票對接;虛擬充值等等。在問題分解階段,我們應該儘量多的收集資訊,多發散,多頭腦風暴。
歸類分組
發散完,我們還是要收回來。在收斂之前,我們先看一下產品框架應該包含哪些東西,通常,一個產品架構至少要包含三個層次:
使用者感知層(在何種場景下通過何種方式觸達使用者);功能模組層(通過哪些功能模組實現產品的核心功能,和哪些外部平臺功能有資訊互動);資料層(產品的資料從哪裡來、產品的資料沉澱到何處去)。在這三個層次的基礎上,我們再對每個層次內的模組進行分組。例如在功能模組層,我們要對功能進行分類,讓分散的功能點內聚成更大的產品模組(體現在使用者介面上,往往是一級選單和子選單的關係)。
比如對於POS的收銀產品模組,我們可以提供以下的產品功能:
支付寶收銀現金收銀微信收銀刷臉支付記賬等通過層次劃分,模組劃分我們就可以得到一個相對清晰的產品架構,以智慧POS為例,我們可以畫出如下的產品架構:
分類是科學也是藝術通過上面的案例,我想你已經領會到黃金三步:定義問題——分解問題——歸類分組的要義了。其中前兩步相對比較直觀,而第三步往往是不容易做好,也容易被忽略的關鍵步驟。
實際上,對事物的歸類分組是我們人類的天性。人類大腦會自動將發現的所有事物以某種持續組織起來。基本上,大腦會認為同時發生的任何事物之間都存在某種關聯,並且會將這些事物按某種邏輯模式組織起來。
比如,下面這張圖片:
無論是誰,乍一看到上面的六個黑點,都會認為共有兩組墨點,每組三個。造成這種印象的原因主要是有些黑點之間的距離比另一些黑點之間的距離大。
空間是一個相對比較直觀的邏輯關係,然而,並不是所有的邏輯關係都是如此的顯性化。實際上,很多的概念會在多個維度進行交叉耦合,這就給我們的歸類分組帶來了很大的挑戰。
生物分類學
生物分類學通常直接稱分類學(Taxonomy),是一門研究生物類群間的異同以及異同程度,闡明生物間的親緣關係、基因遺傳、物種進化過程和發展規律的基礎科學。
最流行的分類是五界系統。通常包括七個主要級別:界(Kingdom)、門(Phylum)、綱(Class)、目(Order)、科(Family)、屬(Genus)、種(Species)。種(物種)是基本單元,近緣的種歸合為屬,近緣的屬歸合為科,科隸於目,目隸於綱,綱隸於門,門隸於界。
不過分類學到不是一門很嚴謹的“科學”。就像比爾.布萊森在《萬物簡史》裡說的:
分類學有時候被描述成一門科學,有時候被描述成一種藝術,但實際上那是一個戰場。即使到了今天,那個體系比許多人認為的還要混亂。以描述生物基本結構的門的劃分為例。許多生物學家堅持認為總數30個門,但有的認為20來個門,而愛德華在《生命的多樣性》一書裡提出的數字高達令人吃驚的89門。
由此可見,分類並不像我們想的那麼簡單。我們觀察事物的視角不同,對問題的認知程度不同,得出來的分類很可能也完全不同。
特別是當概念之間有交叉情況,分類就會變得更加棘手。比如,在你的筆記本中,有“讀書筆記”和“哲學筆記”兩個平級的分類,此時你閱讀了一本哲學書籍,那麼你會把這本書的讀書筆記放在哪個分類裡呢?
分類的原則
分類的基本原則是MECE法則。透過結構看世界,說的就是MECE法則。
MECE法則即mutually exclusive collectively exhaustive的縮寫,是麥肯錫諮詢顧問芭芭拉·明託在《金字塔原理》中提出的一個思考工具,意思是“相互獨立,完全窮盡”,也常被稱為“不重疊,不遺漏”。
MECE原則的思想精髓,就是全維度的去分析一件事情,不要有遺漏和重複的部分。
我們可以藉助已有的結構化思維模型(分類的框架)來分析問題,確保每一層要素之間“不重複、不遺漏”。
分類的思維模型
實際上,在上文中我們已經提到了一些分類的思維模型。比如,在應用架構中,我們通常有展現層、控制層、應用層、領域層和基礎實施層;在產品架構中,有使用者感知層、功能模組層、資料層。這些框架可以有效的指導我們在各自領域中開展工作。
類似於這樣的分類思考模型還有很多,比如:
1.制定市場營銷策略的“4P”模型,即產品策略(Product Strategy)、價格策略(Price Strategy)、渠道策略(Place Strategy)、促銷策略(Promotion Strategy)。
2.分析問題的“5W2H"模型,即Why、What、Who、When、Where、How和How much。
3.思考組織戰略的“7S”模型,即經營策略(Srategy)、組織結構(Structure)、運營系統(System)、經營風格(Style)、職員(Staff)、組織技能(Skill)和共享價值觀(Shared value)。
4.分析競爭力的SWOT模型,SWOT分析代表分析企業優勢(Strengths)、劣勢(Weakness)、機會(Opportunity)和威脅(Threats)。
5.制定目標的SMART模型,即制定目標要滿足確定性(Specific) 、可度量性(Measurable)、可實現性(Attainable)、相關性(Relevant)和時效性(Time-based)。
這些思維模型都是寶貴的經驗總結,相當於已經幫我們做好了第三步“歸類分組”的工作,我們只需要按照模型制定的框架往裡面填充要素即可。
因此擅用模型,活用框架。可以極大的提升我們解決問題的效率,同時幫助我們做更加全面的、更加結構化的思考,做了“無遺漏,不重複”。