程序員知識體系探索:點、線、面、體
想寫一寫"點線面體"有一段時間了,但一直未動筆,怕說不好。我發現我最近經常也在說某某是點狀的模式,沒有形成體系。
那么對于自己也不夠那么清晰的內容做一下梳理還是非常有必要的。知之為知之,不知為不知,是知也!
曾鳴教授:點線面體
曾教授在得到 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 由面到體
解決的是由線到面的問題,還是由面到體的問題,我認為最大的分解點在于(二者滿足其一):
- 是否解決的問題域有足夠的擴展,比如從一級域到全域架構。
- 是否重新定義問題域、技術輸出模式、產品模式或者商業模式。
我們可以看一個例子,電商系統發展面臨的問題。包括有有系統問題、業務問題、技術支持問題。
鑒于問題域是整個電商平臺(夠廣)、問題維度涉及方方面面(有較強復雜度),是達到面這個層次的,但是還不能稱之為"體" 這個層次,因為解決的問題域的已知比較確定的問題域。
from 公開演講資料《蘑菇街每秒訂單數 25 倍提升歷程》
對比,聚石塔這個 case,就可以看到由面到體的變化。從輸出技術、到輸出產品、到解決方案,解決是不同層次的問題。
from 公開演講資料《聚石塔電商云容器服務應用和實踐》
總結:點、線、面、體是在任何專業領域都可以采用的 4 要素方法論。小到一位貼瓷磚的工人,大到數萬人公司的參謀長。
4 要素方法論對于程序員知識體系,也有不同層的劃分,就研發體系、運維體系也有各自的細分。
本文所列的觀點僅僅代表業務發展到一次規模公司的程序員的發展和自我完善途徑。
作者:于君澤,花名右軍
簡介:螞蟻金服高級技術專家,IT 從業超過 15 年。對高并發、分布式架構、內建質量、研發管理有一些心得,維護個人公眾號“技術瑣話”。