超大型研發(fā)團隊平臺工程探索與實踐
原創(chuàng)作者 | 中國工商銀行軟件開發(fā)中心
一、開發(fā)人員的困境與平臺工程理念
隨著DevOps的不斷推進和云原生技術的推廣,工具鏈體系的自動化程度不斷提高,導致越來越多的研發(fā)職責不斷落到開發(fā)人員身上,開發(fā)人員面臨認知負擔不斷增加的困境。
平臺工程通過建設內(nèi)部開發(fā)平臺,為開發(fā)團隊提供通用共享服務,實現(xiàn)開發(fā)人員服務能力自助,將完成日常任務遇到的阻力降到最低。
Gartner預測,到2026年,80%的軟件工程組織將建立平臺團隊,其中75%將包含開發(fā)者自助服務門戶。此外,在Gartner發(fā)布的2023年十大戰(zhàn)略技術趨勢中,平臺工程也位列其中,足以見得平臺工程的重要性。
二、我們對平臺工程的理解與探索思路
中國工商銀行軟件開發(fā)中心作為金融領域軟件研發(fā)的超大型團隊,結合自身研發(fā)實踐經(jīng)驗,我們認為平臺工程作為整合各種工具鏈的粘合劑,以開發(fā)人員為中心,不僅為開發(fā)人員提供各種自助式服務,此外還避免開發(fā)人員需要不斷掌握各種工具鏈才能完成研發(fā)工作。
在平臺工程探索中,基于“讓開發(fā)更簡單”的思想,我們主要有以下思路。
1.統(tǒng)一語言體系屏蔽底層實現(xiàn)
通過對軟件產(chǎn)品交付生命周期分析,聚焦常見問題,明確能力邊界,避免平臺功能無限擴散。同時,對每個能力域的工具鏈支撐體系進行合理抽象,根據(jù)研發(fā)團隊軟件研發(fā)場景,對工具鏈體系進行服務化改造,提供一站式場景化支撐能力。
2.提升用戶體驗降低平臺阻力
踐行“以客戶為中心”的理念,從用戶使用角度考慮平臺功能的建設,為研發(fā)團隊提供有效的工作流程和推薦路徑,將使用平臺工程的阻力降到最低。使研發(fā)團隊能夠基于內(nèi)部平臺快速開展工作。
3.聚焦核心目標建設平臺能力
一個平臺的建設要有清晰明確的度量指標,但是在平臺工程的建設中,建議度量指標體系不必過于復雜,例如可以聚焦對開發(fā)人員編碼時長提升、編碼過程中的中斷次數(shù)減少、系統(tǒng)使用時長減少等指標。
過于復雜的指標體系可能導致平臺工程師無所適從,無法聚焦于關鍵問題提供有效解決方案。
4.建設平臺文化加速平臺推廣
及時感知一線用戶需求,定時收集和反饋研發(fā)團隊意見,不斷對平臺功能進行迭代完善。同時通過培訓、布道、運營等手段營造協(xié)同工作和分享的文化,及時將最新的平臺功能和最佳實踐推薦給研發(fā)團隊。
四、聚焦開發(fā)人員的平臺工程實踐
基于上述探索思路,我們成立專門的研發(fā)團隊開展平臺工程實踐,在實踐初期,也對業(yè)界開源系統(tǒng)進行過調(diào)研分析。
但是作為大型軟件研發(fā)團隊,我們存在大量特色化的研發(fā)流程與質(zhì)量內(nèi)建要求,業(yè)界開源系統(tǒng)難以完全適配眾多的工具鏈體系,所以我們最終采用根據(jù)自身研發(fā)流程實際,建設內(nèi)部開發(fā)平臺的方案。
1.根據(jù)開發(fā)旅程地圖,提供一站式場景化服務能力
根據(jù)開發(fā)人員研發(fā)流程活動,形成開發(fā)旅程地圖,對每個研發(fā)流程涉及到的工具鏈能力進行抽象封裝,聚焦提供設計、編碼、單元測試、自測、提交部署一站式研發(fā)輔助能力,無需頻繁切換不同支撐系統(tǒng)。
例如針對資產(chǎn)分散,通過數(shù)據(jù)爬蟲、多平臺資產(chǎn)聚合等措施,建設統(tǒng)一資產(chǎn)庫,提供統(tǒng)一檢索入口,實現(xiàn)一鍵觸達效果。
此外,針對開發(fā)人員在接口設計、開發(fā)、測試、發(fā)布中存在流程割裂,難以保證接口設計到實現(xiàn)的一致性問題,我們建設接口一站式服務平臺,將接口自動化編寫效率提升1倍以上、接口編碼效率提升30%。
同時,針對自測和環(huán)境運維中的類似問題,我們還提供自測一站式服務平臺和環(huán)境運維一站式服務平臺等場景化支撐能力。
2.以IDE為觸點統(tǒng)一平臺入口,提升用戶體驗
為避免用戶陷入割裂的產(chǎn)品界面,我們以研發(fā)人員日常編碼工具IDE為觸點,將平臺能力與IDE融合,通過將資產(chǎn)檢索、編碼輔助、自測輔助等能力與IDE集成,以IDE作為開發(fā)人員的統(tǒng)一入口。
同時,在平臺建設中,每項平臺功能都由用戶體驗工程師、一線開發(fā)人員參與功能的設計,為開發(fā)人員提供最佳使用路徑,保證平臺功能用戶體驗最優(yōu),降低開發(fā)人員平臺功能使用阻力。
借助建設的統(tǒng)一平臺,通過提供一系列場景化的支撐能力,平臺功能使用覆蓋率100%。
3.確立沉浸度北極星指標,不斷完善平臺能力
平臺工程的實施旨在盡可能屏蔽基礎設置對開發(fā)人員的影響,降低開發(fā)人員的認知負擔,從而讓開發(fā)人員投入更多的精力在開發(fā)工作中。
通過平臺工程系列能力的提供,我們以編碼時長、編碼中斷次數(shù)、代碼產(chǎn)出為基礎指標,進行形成沉浸度的北極星指標,驅(qū)動平臺能力不斷完善。
圍繞北極星指標,在研發(fā)團隊實踐中,通過一期功能的建設,每日平均編碼時長提升13.4%,打斷頻率降低14.8%。
4.以數(shù)據(jù)輔助用戶運營,形成良好互動文化
在用戶運營方面,主要通過數(shù)字化和智能化方式形成良好的互動文化機制。
一方面,我們通過用戶行為數(shù)據(jù)分析、用戶問卷調(diào)研提升工具感知一線用戶能力。比如,分析開發(fā)人員搜索資產(chǎn)關鍵詞,挖掘熱點數(shù)據(jù),識別用戶的迫切需求。在功能使用完畢后,推送問卷調(diào)研,獲取開發(fā)人員使用體驗。
另一方面,我們將最新平臺能力和最佳實踐推送給用戶,利用智能化手段,及時識別開發(fā)人員編碼行為,向開發(fā)人員推送關聯(lián)度較高資產(chǎn)等。
得益于良好的平臺文化,研發(fā)團隊共建共享標準資產(chǎn)1000+,單個資產(chǎn)引用高達100多次。
四、未來的展望
未來,為更好的推進平臺工程建設,聚焦北極星目標,一方面進一步抽象聚合研發(fā)流程,實現(xiàn)輔助工具鏈與工作流的深度融合,有效降低研發(fā)流程復雜度,減輕開發(fā)人員認知負擔。
另一方面借助數(shù)字化手段,通過對研發(fā)過程數(shù)據(jù)分析,有效挖掘流程及工具的痛點、堵點,推進組織級的過程改進,循環(huán)演進實現(xiàn)高效能研發(fā)團隊建設。