工程實踐規模化推進要點分析

2021-10-04 06:04:39 字數 2298 閱讀 2149

【組織級工程實踐氛圍建設】

【小結】

工程實踐,也有稱為技術實踐,其推進在敏捷轉型當中具有重要位置,有推算認為效能提公升裡面的至少一半來自於工程實踐。由於不能嚴格的區分提公升來自於**,以上推算難以證實,但也可以體會到工程實踐的重要性。

當一位教練輔導10人團隊時,可以與團隊成員逐個結對,手把手傳遞,而在敏捷轉型在超過100人的情況下,工程實踐的推進就會遭遇規模化問題。而隨著敏捷devops的深入,當前1000人級別的推進已經有很多了,到了千人級規模,顯然逐個結對顯然推進速度不夠快,原先在10人團隊的推進手段很難複製到千人級。本文試圖來看看千人級工程實踐推進。以下來**下工程實踐規模化的要點。

首先跟著上面例子,既然光靠1個技術教練逐個結對去推進顯然不夠,那麼很自然的有個方案是建設技術教練團隊和外圍熱情者,比如工程實踐主題的cop,比如tdd cop,持續整合cop。但是這個方案在業界採納的比例不高,成建制的管理教練團隊比較多見,成建制的技術教練團隊相對很少,就算有,人數也有限。在規模化下工程實踐氛圍也許比有限的技術教練團隊更加重要,而千人級工程實踐氛圍的帶動得要有賴於組織刻意的推動,首選是持續整合。

規模化工程實踐首選的推進點是持續整合。通過持續整合工具,天然可以方便地以組織級視角來觀察,也就是可以得到規模化展現和度量。比如可以看到哪些團隊或者系統已經啟用了ci(持續整合),具體樣例指標有:

另外持續整合是組合實踐,不同組織有不同側重點,而且在理論上與持續部署存在交叉。從規模化推進角度,試圖來識別持續整合裡哪些實踐更加優先。

招行去年2023年公布了其devops建設情況,裡面給出了招行成熟度模型,成熟度分**:一級包含了自動化編譯、靜態**掃瞄、發布製品庫三個工程實踐。二級是在一級的基礎上,增加了自動化部署。**是在二級的基礎上增加了單元測試和自動化測試。(引用自招行滕樂英老師分享的演講實錄丨招商銀行devops實踐及devops標準認證評估分享)

筆者的歸納與招行此模型大體一致,按優先順序從高到低如下:

自動化編譯

靜態**掃瞄

發布製品庫

自動化部署

自動化測試

自動化測試這裡與招行不一樣,下文會說明。

自動化編譯是理所當然的高優先,沒有這個餘下一切免談。

靜態**掃瞄是組織級容易推進的工程實踐,最典型的例子是安裝sonarqube服務,提供給各一線團隊使用。開始時可以降低門檻來切入,切實讓廣大一線團隊感受到好處,然後可以迅速鋪開,切實規模化的觀測到組織整體**質量情況。與此實踐對照的是人工code review,code review需要一線團隊主動的人工付出,其規模化推進就有較大困難,需要專項建設。

發布製品庫為發布管理要點,確保投產版本準確並且可以回溯。

自動化部署在海量服務部署情況下顯然也是高優先。

然後來到了複雜的自動化測試。首先的複雜來自於自動化測試這個詞本身,自動化測試在不同組織語境下有不同含義,有些地方說的自動化測試是指啟用諸如selinium的自動化測試,招行把單元測試和自動化測試並列,看起來單元測試好像不是自動化測試。

特徵是無需部署安裝也不依賴外部資源,這與經典單元測試高度重合。為什麼不用單元測試這個提法?因為有些地方的單元測試超出了l0範疇,甚至覆蓋到了l2,這與xunit系列單元測試工具的強大有關,無論如何,單元測試這個詞目前存在不同理解,囉嗦一些的l0自動化測試更加精準。

特徵是無需部署安裝但依賴外部資源,也類似於單元測試,一般所用工具就是xunit系列。

特徵是無ui介面基於介面/api的測試。仍然可以使用xunit系列工具,當然也可以使用專門介面測試工具。

特徵是ui介面自動化測試。常見使用selinium。

微軟公布的例項裡面說明當前微軟目前現有大多數測試都是l3級,而招行的情況是介面測試佔據多數,招行精益敏捷類對介面測試覆蓋率要求達到100%,也就是在以上的l2級。

招行將其測試組合形容為測試橄欖球型,這與筆者之前所提出的紡錘形是一回事。

對於微軟例項說l3最多,這也許與微軟產品特徵有關,尤其是其office系列,這樣的話是冰淇淋形。筆者猜想微軟測試冰淇淋形組合是特例。而招行測試橄欖球形更加代表了規模化測試推進的樣例。

測試金字塔理論上以l0為基礎,數量最多。但從價效比上不是最經濟的,在規模化角度上,跨團隊介面聯通更加優先。

因此自動化測試裡面優先推進建設以介面/api測試為特徵的l2自動化測試,然後l0,l1。而基於介面的l3測試更加排在後面。

個別一線團隊會自動自發地建設持續整合,但如果在千人規模上考慮這個問題,就不能夠指望自動自發。因為這裡面存在至少2重困難:

1,持續整合建設本身存在難度;

2,對如何實踐是否帶來高效率沒有統一認識。

持續整合是工程實踐規模化的核心實踐。其中的自動化測試推薦優先以基於介面/api的l2自動化測試。技術教練團隊值得考慮,但有難度,更重要的是提公升工程實踐氛圍,值得收集並公開各種度量。

規模化產品開發方法 產品線工程 pdf

隨著軟體應用的普及,企業對軟體也越來越重視,不斷的要求採用軟體提高效率,提公升技能增強企業競爭力。隨著客戶的增多,軟體企業這時需要面對更多的 客戶,處理共性和個性問題。如何保證低成本 高質量 快速上市等要求就成為了企業競爭力的主要表現之一,而產品線工程方法就是支援這種大範圍重用 large scal...

規模化產品開發方法 產品線工程 pdf

隨著軟體應用的普及,企業對軟體也越來越重視,不斷的要求採用軟體提高效率,提公升技能增強企業競爭力。隨著客戶的增多,軟體企業這時需要面對更多的 客戶,處理共性和個性問題。如何保證低成本 高質量 快速上市等要求就成為了企業競爭力的主要表現之一,而產品線工程方法就是支援這種大範圍重用 large scal...

mysql 規模化部署 sql mysql部署

配置檔案 設定mysql客戶端預設字符集 default character set utf8mb4 mysqld 設定3306埠 port 3306 設定mysql的安裝目錄 basedir d dev mysql 5.7.30 winx64 設定mysql資料庫的資料的存放目錄 datadir ...