阿里為何跑得這么快?5萬名工程師研發效能提升的秘密!
阿里生意版圖之大,不用多介紹了,業務飛速發展的背后,離不開工程師們的艱苦奮斗,雖然說996是福報,不免讓人好奇,阿里5萬多名工程師是怎么做到如此大規模的協作、高效的協同?
在今年的云棲大會上,阿里云資深技術專家-何勉,分享了《阿里巴巴研發效能提升及業務創新實踐》,讓我們對阿里研發效能提升及業務創新有了全面的了解。
分享分為三部分:阿里研發效能的挑戰、落地實踐和方法、整體解決方案。
1.超大型技術團隊研發效能的挑戰
跟許多大型互聯網公司一樣,阿里研發效能的挑戰在于:業務發展和市場競爭對研發效能的要求不斷提高,研發效能隨著業務及工程協作復雜度增加而降低。研發效能提升就是縮短這兩者之間的距離。
2.互聯網技術團隊研發方法實踐
解決的方法不外乎,將大而緩的瀑布式開發,改變為小而快的敏捷開發,其中的實踐包括:持續交付、DevOps、精益思想的落地。
這里需求提醒大家的是,別以為開發效能提升只是技術人員的事,一定要拉上產品經理、業務人員進來,要從需求源頭進行效能提升(少提些不過大腦的需求、老板需求)。說實在的,根據統計,企業每年浪費在“低價值”需求上的開發資源,占總資源的40%以上,產品經理要把好第一道關。
3.效能提升的本質:順暢、高質量地交付有效價值
效能提升關注以下3點:
- 以流動效率為核心,提升團隊的持續交付能力。
- 以用戶價值為核心,規劃和探索有效的產品。
- 以長期質量為核心,沉淀優質軟件資產和工程能力。
注重整體的優化,而不是局部的優化,以價值流動為重點,減少各環節的等待實踐,不追求一時的效能提升,關注長期有效提升。
4.效能提升落地的方法和實踐
這副圖生動地描述了一些技術團隊協作效率的問題:部門之間建立起了部門墻,協作非常費勁,產品、開發、測試、上線各環節等待時間很長。
大家別笑,在國內大多數公司,都存在這樣的現象,也許你的公司就是這樣的。
5.以流動效率為核心,提升團隊的持續交付能力
作為研發團隊Leader,可以把日常開發每個環節的時間記錄下來進行分析,如:從需求到開發的時間,開發到送測的時間,測試到上線的時間,看看哪個環節花的時間多,各環節之間等待時間多,那就是優化的重點,團隊坐下來一項項列出來討論,逐一改進。
6.前后職能拉動,端到端的價值交付過程
將開發過程進行可視化,如上面的圖,其實很多開發管理軟件都有這功能,如Scrum的白板,就很清楚看到哪個環節block住了。
7.以組織和資源為核心,以用戶價值為核心
高效交付,不等于業務成功,所以開發要前置到需求討論環節,做個懂業務的技術專家,這也是敏捷精髓之一:分工明確化,角色模糊化。
8.以用戶價值為核心,規劃和探索有效的產品
許多創業方法論中都提到:MVP設計,用最小可用設計去驗證市場,看用戶的反饋,基于數據和思考對產品進行快速迭代,形成創新閉環。
9.高效交付與持續高效
局部的優化,改變不了全局;短期的高效,不等于持續高效。做“把時間當成朋友”的事,即:短期見效不一定快,但隨著時間的推移,產生從量變到質變,這就是時間的力量。
有效的改進措施,比如:良好編程習慣的培養、對質量的重視、持續流程改進等等。
10.以長期質量為核心,沉淀優質軟件資產和工程能力
以長期質量為核心,沉淀優質軟件資產和工程能力。從軟件的架構治理入手,如微服務化、中臺化,致力于長期有效的基礎設施搭建。
形成完善的工具鏈建設,打造持續交付的工程能力。
11.研發效能提升之道
研發效能提升包含三個方面:
- 流動效率,提升團隊的持續交付能力。
- 客戶價值,規劃和探索有效的產品。
- 長期質量,沉淀優質軟件資產和工程能力。
12.基于軟件的分層解決方案
將以上研發效能理念,沉淀到管理軟件當中,使規范得以落地,在超大型研發團隊的效能提升中,進行規模化復制,系統化提升。
總結一下,超大型研發團隊,比如BAT等達到上萬名工程師規模,研發效能的提升,要從研發效能思想、研發流程改進、研發工具建設等方面進行落地。
不同于傳統軟件研發效能提升的是,互聯網追求一種“可控的亂”,如:Scrum里可能文檔是滯后的、帶傷上線,但是長期來看,這些問題是得到控制的,對業務的快速發展是有益的,難點就要于這個“度”的把控,有時候你要承受各方的壓力。