177
外匯
如何加強企業研發管理?阿裏雲效硬盤式管理實踐揭秘
硬盤式研發管理實踐》分享,深入淺出地分享了互聯網的研發管理理念,解析了企業研發管理麵臨的挑戰和困難,揭密了如何結合雲效產品進行業務技術協同線上化的硬盤式研發管理實踐。
以下內容根據演講嘉賓視頻以及PPT整理而成。
嘉賓介紹
代平:阿裏產品專家。從事多年互聯網係統的研發測試和項目管理。現在專注於研發協同管理產品設計。
本次分享主要和大家探討研發綜合產品管理效能平台應該如何實現,以及如何打通需求、開發、測試、發布這樣的產品研發全過程,希望能夠給大家帶來收獲。
本次分享的內容主要分為以下四個部分:
一、互聯網研發管理背景
二、常見的研發提效策略及其問題
三、雲效支撐的研發管理實踐
四、實踐最佳路徑和效果
一、互聯網研發管理背景
互聯網研發特點

隨著互聯網的發展,不僅僅是互聯網公司的研發,就連傳統企業的研發模式也開始受到互聯網的影響,各行各業都在向“互聯網+”模式轉型,這就導致互聯網的研發有如下的這些特點:
1.變化:市場需求變化的速度非常快,導致研發需要快速適應市場需求的變化。
2.體驗:給用戶帶來的體驗要好,現在用戶獲取信息十分便捷,用戶會有非常多的選擇,所以產品在功能、安全或者體驗上稍稍落後就會被用戶摒棄。
3.速度:互聯網市場競爭非常激烈,產品的研發速度關乎生死,也會影響最終成果。
互聯網研發問題

由以上互聯網研發特點,導致了在研發過程中會出現上圖所示的常見問題。比如業務迭代速度非常快,直接導致項目的並行量非常大;因為業務發展速度快,所以應用的增長也非常迅速,導致無論是開發同學還是測試同學在搭建環境時的工作都會變得非常複雜;除此之外因為研發同學在研發過程中需要與各個角色進行一些協調,所以這帶來的研發成本也會非常高;與此同時,測試的成本也在急劇增長,而且使用的人肉測試也會比較多,這樣導致最終的結果是業務很難快速地交付到客戶手中。
麵對這些問題應該如何應對呢?天下武功唯快不破,提高效率也許就是互聯網研發的關鍵。
二、常見的研發提效策略及其問題

通常情況下,工作時會使用一些通訊工具進行即時溝通,溝通的方式主要有三種:同步型:比如電話或者會議;異步型:如釘釘、微信等通訊工具;郵件:可以看做異步通信的方式,但一般用於發布通知。這些通訊工具的弊端在於整體溝通協作效率比較低下,同時還有兩個更深層次的問題。
第一個問題是如果一個公司沒有統一的任務處理機製,不同團隊就可能采用不同的任務處理方式,那麼會出現甲團隊使用郵件作為溝通方式,乙團隊采用開會的方式,丙團隊協作靠刷臉進行,這樣的效率就會非常低。這樣的方式很容易讓大家聯想到鄉村小路,鄉村小路的特點就是不平、不直、不通並且不一致。 “要想富,先修路”,隻有統一並且寬敞的信息高速公路才能加快研發任務的處理速度。

第二個問題就是工作內容沒有沉澱。如果想要查看前麵沉澱下來的經驗,隻能到處找人問。
如果整個研發過程的數據就如同在一個硬盤上一樣全部存儲下來,那麼對於公司而言將會是巨大的財富,即使有同學離職了,新來的同學也可以通過沉澱下來的數據,參考查證以前的工作路徑和工作記錄。
所以不僅僅需要將原本不平、不直、不通並且不一致的溝通路徑用信息高速公路取代,並且需要將公司的一些項目的數據資產包括過程、文檔、結果以及代碼,統一用於建造公司的類似於數據資產金字塔的硬盤中,將這些數據全部保存下來,這就是雲效平台硬盤式研發管理的主體思路,也就是從各種路徑獨立轉變到建立一條整體相通的信息大道,並將數據進行匯總進而做統一的展示、記錄和存儲的構想。
現在有不少公司意識到了這一點,並開始建立公司的研發信息高速公路。他們的做法往往是通過引入一些平台產品來建設自己的信息高速公路,並且通過這樣的方式沉澱出自己公司的硬盤式金字塔,將數據存儲下來。如下圖所示。

三、雲效支撐的研發管理實踐
下圖是雲效平台整體的架構圖,這就是雲效的研發信息高速公路,它可以讓研發同學以及包括產品、測試和運維同學將自己的日常工作放在這個平台上。需求、做項目、設計技術方案、編碼、代碼的審閱、測試、發布以及所有工作項的評論等全部記錄在雲效平台上。

因為雲效平台的核心原則就是平台化、流程化和自動化,也就是說希望製定一套標準化的流程,例如持續部署流程、代碼流程、代碼管理流程等,之後將這些流程通過自動化的方式以及自動化的工具實現出來,這就是雲效平台的基本原則。
有了這些原則之後就在平台之上建立了配置管理、持續集成、持續交付、環境自動化、分層自動化以及集成自動化這些相關的子係統。有了這些子係統之後就創建了一個可靠可重複的交付流水線。比如說在提交與編譯階段的並行研發、編譯構建和單元測試,在測試與驗證階段的環境部署、係統測試和集成測試,以及在發布與運維階段的生產交付、發布回滾和生產監控等都是可以通過雲效平台的相關產品進行效率提升的。
在可靠可重複的交付流水線建設完成之後,雲效團隊又將之前所做的研發綜合效能管理方麵的東西,包括業務模型分層、業務規劃、研發資源管理以及ROI複盤等,全部在雲效平台上進行呈現。而將包括需求跟蹤矩陣、迭代計劃、任務分解流轉以及度量與改進在內的這些,構建成了協同工作流,每一個人都可以在平台上評論所有的工作項並提出方案或者進行頂踩,這樣就保證了開發的質量、效率以及評論和文檔等所有相關的數據都存儲在平台之上。
項目維度的互動和多角色之間的溝通協作全部都是在雲效平台上進行,參與項目的人員使用相同的係統進行相互協作,這樣對組織效率和業務也能夠起到很好的促進作用。
除此之外,雲效平台還支持私有雲部署,對於Docker等開發框架以及最簡單的J2EE工程項目等也能夠提供良好的支持。
硬盤式研發管理的總體流程

上圖所示的就是研發流程的示意,從上層的業務方進行業務規劃開始,之後需要進行組織人員的安排,再到立項之後的需求確立。
對於需求的確立而言,需要通過需求跟蹤矩陣將需求橫向化、標準化。需求是可以分解和拆解的,也是可以配置的,需求的變更記錄、評審記錄包括對於需求的評論、頂踩全部會在這個平台上記錄下來,在平台之上還可以實現責任人以及狀態的流轉和變更來記錄需求到了什麼樣狀態,這樣就能夠提升需求的質量,控製需求的範圍,這是從橫向上來看這條線。
而從縱向上來看,需求是和後麵的整個項目串聯起來的,因為需求確定之後就可以進行迭代拆分、評估工作項的資源以及進行任務分解、測試用例的設計實現以及與Bug相關的一些東西都是可以通過需求串接起來的,這樣就保證了需求與後續工作的關係都可以透視出來,這樣有利於對於整體風險的把控。在整個項目過程結束之後,可以將項目的全部代碼發布到代碼庫中,然後通過雲效平台指揮部這個產品對於整個項目進行複盤並評估出項目的投入和產出。
這裏大家可能會產生一個疑問,看上去整個研發過程的工作都是記錄在這個平台上麵的,那麼有沒有一些研發相關工作是沒有記錄在雲效平台上的呢?這個問題的回答是:沒有!雲效平台提倡硬盤式記錄,如果工作沒有在平台上記錄,那就相當於沒有工作的產出。可以設想一下:如果一名員工在公司做了很多年,既沒有留下一行代碼,也沒有留下任何對於技術方案或者需求的變更、評審進行討論的東西,對於公司而言這名員工給公司留下了什麼呢?所以,站在公司的角度,希望每一位員工都能夠積累下屬於自己的工作記錄,並且全部都記錄在公司的平台之上,固化成公司的數字資產。
對於一些比較高級的技術專家可以在雲效平台上做些什麼呢?也許他們不用自己去寫代碼,但是可以在平台上Review一些技術方案並給出一些評論和指導,甚至還可以進行代碼的審閱。這些能夠非常好的幫助開發同學避免很多坑,節省大量時間。對於管理者而言,他們所需要做的事情就是促使團隊在這個平台上產出有價值的東西並記錄在硬盤上麵,從而沉澱出整個公司的數字金字塔。管理者也可以看到自己團隊所有成員的全部產出。
雲效項目頁麵
下圖所示的是項目概況頁麵,包含了項目的整體進度、概要、裏程碑信息、風險信息、負責人以及項目成員、相關的子項目、及時滾動顯示的項目動態、通知信息等。除此之外,項目中各角色所需要做的工作項等內容也是通過一些服務呈現的,比如需求頁、任務頁、迭代、測試用例缺陷、自動化、單測集成、環境搭建以及整個係統數據的報表還有發布等,這些內容都會以項目的維度進行展示。

雲效需求頁麵
一個項目的管理者或者項目成員,在雲效平台上可以看到與項目相關的所有內容。
以產品為例,可以看到整個需求跟蹤矩陣的列表,這裏提供了看板和數表這兩種模式來顯示項目需求的優先級、是否上線、迭代情況、創建者以及當前的負責人等狀態信息,點擊每個需求條目之後可以看到這條需求的詳細情況,包括需求的具體內容、相關聯的需求狀態和相關的一些任務狀態,還包含一些相關評論,鼓勵大家分析需求,對需求進行評論或者頂踩,提出更好的方案。

除此之外,需求的詳細內容頁麵還會顯示需求各個版本的修訂記錄、變更記錄、評審記錄以及操作記錄等信息,對於每一個工作項都有這樣類似硬盤式的記錄,包括這個需求所包含的任務、用例、缺陷、分支等工作項也會在詳細信息中進行展示。上圖頁麵中最右邊展示的是需求屬性以及附件,包含了優先級信息、迭代信息、所屬項目、關聯項目、模塊信息、版本信息、進度信息以及經過技術同學評估之後計算出的大概的工作量,還有就是一些自定義的標簽、發生變更之後需要通知的對象信息,以及與該需求相關的附件等。
這些就是需求頁麵的大致情況,因為這部分是項目的源頭,包含的信息量非常大,所以需要以硬盤的形式全部存儲下來。一言以蔽之,雲效平台在橫向上會將需求所有相關的信息全部記錄下來;對於縱向而言,像任務拆分、用例、缺陷以及開發分支等所有項目相關的內容都可以在這裏記錄,以此串聯起整個需求的過程,直到產品發布上線。
雲效集成自動化
下圖所展示的就是某一個項目的集成自動化的情況。雲效平台擅長UI自動化、接口自動化以及單元測試,這些可以全部集成在一個平台上執行,而且曆史的執行結果會全部展示在頁麵上,集成的通過率如何、有多少成功和失敗、測試件在執行時候綁定的環境情況、項目中各個部分所執行的測試件情況等,這些項目相關的自動化情況也都會在頁麵上得到展示。這樣大家對於硬盤數據的管理就會有一個直接的概念,項目中所有的信息都可以在一個統一的平台上呈現出來。

四、實踐最佳路徑和效果
對於雲效平台而言,實踐之路也不是一帆風順的,在剛開始起步階段也不是非常規範,從最初的簡單的Bug係統再到項目和任務、再到討論以及文檔管理,都是一步步實現的。
實踐並非一步到位

在實踐過程中,我們也發現了與其他公司一樣的問題。這些工具都是比較零散的,我們一邊將這些係統進行集成,一邊進行係統重構,讓這些子係統的數據能夠互通,這樣才得以統一,形成了阿裏巴巴統一的信息高速公路。隻有這個信息高速公路建成之後才有可能構建出阿裏研發資產的金字塔,將數據全部像硬盤一樣存儲下來。在實踐的過程中有一個基本的原則就是統一高於好用。比如剛開始的時候,各個團隊想要使用的工具往往會是不同的,如果不同團隊溝通方式不同或者使用的工具不同,那麼對於整個公司而言,效率就會比較低下。所以在雲效平台的實踐中,堅持的基本原則是統一高於好用,公司是需要一個統一的研發管理平台,而不是各種好用的工具的簡單堆疊。
實踐中遇到的挑戰
雲效平台在實踐過程中遇到了很多挑戰。引入一整套的研發管理工具平台,無論對於阿裏巴巴自己還是客戶而言,都會需要轉變工作習慣,需要從線下的各種不同的方式引導到線上並且使用統一的方式,使得業務同學、研發同學都是按照這一套規範的路徑完成工作。
總結下來有這樣三個比較好的措施:
1.宣導:告訴大家為什麼要做這件事情,引導大家進行思維的轉變;
2.由易到難:從簡單的事情出發,從易到難的推動這件事情;
3.專人負責:常見的負責組織就是PMO組織,也就是項目管理專員。如果有專人去負責、宣導、實施和複盤,並且從係統中拿到一些數據並發現問題或者可預見性的瓶頸,並進行匯報,再通過管理層的資源解決問題,如此就能夠加速硬盤式研發管理實踐的落地。
實踐效果
硬盤式研發管理實踐的最終效果:一方麵是把員工腦海中的信息都數據化成為公司的研發資產,員工的工作也都會固化成為數據存儲在公司的平台上;另一方麵統一的研發效能平台就如同信息高速公路一樣,因為其是透明的,所以可以營造出一種在意工作過程並且在意相互幫助的工作氛圍,團隊成員之間也會鼓勵積極共享代碼並且參與討論。最終會使得研發的效率更高,並且帶來高效的橫向協同。
最後更新:2017-08-28 15:32:35