程式設計師知識體系探索:點、線、面、體
想寫寫"點線面體"有一段時間了,但一直未動筆,怕說不好。
最近,我經常也在說,某某是點狀的模式,沒有形成體系。那麼對於自己也不夠那麼清晰的內容做一下梳理還是非常有必要的。知之為知之,不知為不知,是知也!
曾鳴教授:點線面體
曾教授在得到app曾經開了一個免費的講座,智慧商業二十講。裡面有一章:
第八講 新定位—點、線、面、體。教授說,現在如果有人再來找我討論企業下一步發展戰略問題,我經常反問的第一句話就是,點、線、面、體,你的定位到底是什麼?先得明確這個問題,後面一系列的問題才能展開討論。
點、線、面、體,每一個定位背後,邏輯是不一樣的,需要的運營原則、資源調配的方法,甚至競爭壁壘,最後可能的發展路徑都不一樣。 所以先明確自己在未來網路化世界的定位,是決定企業發展方向的第一步。
面,是通常意義上講的平臺或者生態型的企業,典型的例子是淘寶。面的核心,是創造新模式的可能性,它要廣泛地連線不同的玩家,換句話說,面起碼是一個市場。
點,是這個面上各種各樣新的角色。比如說在淘寶上有很多豐富的角色,從賣家到給賣家提供物流服務、模特服務、軟體服務,甚至是代運營服務的商家,這些角色都是淘寶這個面上的不同的點。
在淘寶平臺這個面上,要讓淘寶賣家賺點錢,淘寶才能發展。模特服務、廣告服務等都是為線(賣家)或者面(淘寶平臺)服務的。難得的是,這些點和線形成了網路協同效應,這樣就比純粹上下游關係的模式多了很多種可能。
那麼由面,如何形成體呢?同樣是阿里巴巴這個例子。虎嗅網曾報道過2017年阿里Q4財報,披露業務板塊如圖所示:
這裡跳過財報細節,可以看到電商、雲端計算都形成對應的板塊,就是我們說的面。整合在一起就是“體”。當然面和麵之間有協同和聯動,讓他們有機的在一起。
樑寧:點線面體的戰略選擇
本模組第一節,我講一個非常重要的戰略判斷框架。這是一個非常簡潔的思考結構,叫點線面體。
點線面體是曾鳴教授的理論,他在得到App的課程《智慧商業20講》中做了闡述。我也從曾鳴教授這個新型的定位方法中收益良多。我和他說要在我的產品課裡,把我的理解再講講,獲得了他的授權。
樑寧女士在產品思維30講中,講的“點線面體的戰略選擇” 實際講的是360的故事。
首先,瑞星通過低價幹掉了江民、而360通過免費幹掉了瑞星。注意劃重點,這2場戰役都是“點”上的競爭,這個點就是防毒軟體。瑞星在專注防毒產品的基礎上未形成面和體的產品體系。
360從一個免費安全的點入手,快速變成了一個安全平臺,接著變成流量分發平臺。這就是360的三級火箭策略。
360安全成功之後,通過搜尋阻擊百度,但這場仗輸給了"勢",就是移動網際網路。今天我們可以看到,很多搜尋是在app內部的。
上圖為某機構公佈的2017.12國內app活躍度的資料。可見最hot的app,它的行業劃分不是搜尋。搜尋已經內化為app內部生態的基礎服務和能力。
如果你的面所承載的體是在下沉的,面做的再精彩,亦無法跟上歷史前進的車輪。
程式設計師的點線面體
這裡先拋一張示意圖,點線面體是一種演進。在各階段還有細分。
點:我們首先定義為解決具體問題,比如實現多檔案的上傳下載。一個複雜度一般的系統owner,我們都可以暫且納入到點這個層面。但其實system就需要一些系統化思維。
從系統owner到二級域
如上圖所示,System的Owner,從系統的角度是一個點。但從功能(Func)到System的角度可以是一個面的變化。有平臺能力視角、穩定性視角、運維視角。
那麼,研發人員要邁出的一步就是,從完成功能A下載(點)逐步進階到整體功能覆蓋(線)、進而考慮多維視角:平臺能力視角、穩定性視角、運維視角...
線:從但系統到產品線(二級域)可以理解為一種點到線的躍遷。之前考慮的是單個系統的職責、質量;現在要考慮一條產品線(N個系統)。
從二級域到一級域
從產品線(二級域)到一級域,可以理解為由線到面的躍遷。
在面的視野上,除了平臺能力視角、穩定性視角、運維視角,可能又有了業務治理視角、業務運營視角等。
對於業務身份,你寫的程式碼,是別人的噩夢嗎? 這篇文章曾提及,使用擴充套件點的方式。
擴充套件點的設計是這樣的,所有的擴充套件點(ExtensionPoint)必須通過介面申明,擴充套件實現(Extension)是通過Annotation的方式標註的,Extension裡面使用BizCode和TenantId兩個屬性用來標識身份。
業務身份對於業務層的跟蹤和治理作用非常大,類似於技術側traceId的可追溯性。
如上圖所示,全域性架構可以稱之為面; 對於足夠複雜的一級域,亦達到了面的level。
從面到體,就技術人員發展而言,我認為有2條途徑,比如從一級域的問題終結者到全域架構,視野俯瞰是整個公司的技術架構;也可能是從架構師角色走向管理崗,比如CTO。
由線到面 vs 由面到體
解決的是由線到面的問題,還是由面到體的問題 我認為最大的分解點在於是
1:是否是解決的問題域有足夠的擴充套件,比如從一級域到全域架構
2:是否重新定義問題域、技術輸出模式、產品模式或者商業模式
(二者滿足其一)
我們可以看一個例子,電商系統發展面臨的問題。有系統問題、業務問題、技術支援問題。鑑於問題域是整個電商平臺(夠廣)、問題維度涉及方方面面(有較強複雜度),是達到面這個層次的,但是還不能稱之為"體" 這個層次,因為解決的問題域已知比較確定的問題域。
來源:公開演講資料《蘑菇街每秒訂單數25倍提升歷程》
對比,聚石塔這個case,就可以看到由面到體的變化。
從輸出技術、到輸出產品、到解決方案。解決是不同層次的問題。
來源:公開演講資料《聚石塔電商雲容器服務應用和實踐》
總結:點、線、面、體在任何專業領域都可以採用的4要素方法論。小到一位貼瓷磚的工人,大到數萬人公司的參謀長。4要素方法論對於程式設計師知識體系,也有不同層的劃分,就研發體系、運維體系也有各自的細分。本文所列的觀點僅僅代表業務發展到一次規模公司的程式設計師的發展和自我完善途徑。
◇◇◇
本文來自我的前同事右軍,《深入分散式快取》一書的作者,螞蟻金服高階技術專家。他的公眾號技術瑣話,以分散式設計、架構、體系思想為基礎,兼論研發相關的點點滴滴,不限於程式碼、質量體系和研發管理。識別下圖二維碼關注他,可以看到更多幹貨。