1. 程式人生 > 其它 >如何加強企業研發管理?阿里雲效硬碟式管理實踐揭祕

如何加強企業研發管理?阿里雲效硬碟式管理實踐揭祕

摘要:在雲效持續整合持續交付專場直播中,阿里雲效產品專家代平為大家帶來了《硬碟式研發管理實踐》分享,深入淺出地分享了網際網路的研發管理理念,解析了企業研發管理面臨的挑戰和困難,揭密瞭如何結合雲效產品進行業務技術協同線上化的硬碟式研發管理實踐。 以下內容根據演講嘉賓視訊以及PPT整理而成。 嘉賓介紹 代平:阿里產品專家。從事多年網際網路系統的研發測試和專案管理。現在專注於研發協同管理產品設計。 本次分享主要和大家探討研發綜合產品管理效能平臺應該如何實現,以及如何打通需求、開發、測試、釋出這樣的產品研發全過程,希望能夠給大家帶來收穫。 本次分享的內容主要分為以下四個部分:
一、網際網路研發管理背景 二、常見的研發提效策略及其問題 三、雲效支撐的研發管理實踐 四、實踐最佳路徑和效果

一、網際網路研發管理背景

網際網路研發特點 隨著網際網路的發展,不僅僅是網際網路公司的研發,就連傳統企業的研發模式也開始受到網際網路的影響,各行各業都在向“網際網路+”模式轉型,這就導致網際網路的研發有如下的這些特點: 1.變化:市場需求變化的速度非常快,導致研發需要快速適應市場需求的變化。 2.體驗:給使用者帶來的體驗要好,現在使用者獲取資訊十分便捷,使用者會有非常多的選擇,所以產品在功能、安全或者體驗上稍稍落後就會被使用者摒棄。
3.速度:網際網路市場競爭非常激烈,產品的研發速度關乎生死,也會影響最終成果。 網際網路研發問題 由以上網際網路研發特點,導致了在研發過程中會出現上圖所示的常見問題。比如業務迭代速度非常快,直接導致專案的並行量非常大;因為業務發展速度快,所以應用的增長也非常迅速,導致無論是開發同學還是測試同學在搭建環境時的工作都會變得非常複雜;除此之外因為研發同學在研發過程中需要與各個角色進行一些協調,所以這帶來的研發成本也會非常高;與此同時,測試的成本也在急劇增長,而且使用的人肉測試也會比較多,這樣導致最終的結果是業務很難快速地交付到客戶手中。 面對這些問題應該如何應對呢?天下武功唯快不破,提高效率也許就是網際網路研發的關鍵。

二、常見的研發提效策略及其問題

通常情況下,工作時會使用一些通訊工具進行即時溝通,溝通的方式主要有三種:同步型:比如電話或者會議;非同步型:如釘釘、微信等通訊工具;郵件:可以看做非同步通訊的方式,但一般用於釋出通知。這些通訊工具的弊端在於整體溝通協作效率比較低下,同時還有兩個更深層次的問題。 第一個問題是如果一個公司沒有統一的任務處理機制,不同團隊就可能採用不同的任務處理方式,那麼會出現甲團隊使用郵件作為溝通方式,乙團隊採用開會的方式,丙團隊協作靠刷臉進行,這樣的效率就會非常低。這樣的方式很容易讓大家聯想到鄉村小路,鄉村小路的特點就是不平、不直、不通並且不一致。 “要想富,先修路”,只有統一併且寬敞的資訊高速公路才能加快研發任務的處理速度。 第二個問題就是工作內容沒有沉澱。如果想要檢視前面沉澱下來的經驗,只能到處找人問。 如果整個研發過程的資料就如同在一個硬碟上一樣全部儲存下來,那麼對於公司而言將會是巨大的財富,即使有同學離職了,新來的同學也可以通過沉澱下來的資料,參考查證以前的工作路徑和工作記錄。 所以不僅僅需要將原本不平、不直、不通並且不一致的溝通路徑用資訊高速公路取代,並且需要將公司的一些專案的資料資產包括過程、文件、結果以及程式碼,統一用於建造公司的類似於資料資產金字塔的硬碟中,將這些資料全部儲存下來,這就是雲效平臺硬碟式研發管理的主體思路,也就是從各種路徑獨立轉變到建立一條整體相通的資訊大道,並將資料進行彙總進而做統一的展示、記錄和儲存的構想。 現在有不少公司意識到了這一點,並開始建立公司的研發資訊高速公路。他們的做法往往是通過引入一些平臺產品來建設自己的資訊高速公路,並且通過這樣的方式沉澱出自己公司的硬碟式金字塔,將資料儲存下來。如下圖所示。

三、雲效支撐的研發管理實踐

下圖是雲效平臺整體的架構圖,這就是雲效的研發資訊高速公路,它可以讓研發同學以及包括產品、測試和運維同學將自己的日常工作放在這個平臺上。需求、做專案、設計技術方案、編碼、程式碼的審閱、測試、釋出以及所有工作項的評論等全部記錄在雲效平臺上。 因為雲效平臺的核心原則就是平臺化、流程化和自動化,也就是說希望制定一套標準化的流程,例如持續部署流程、程式碼流程、程式碼管理流程等,之後將這些流程通過自動化的方式以及自動化的工具實現出來,這就是雲效平臺的基本原則。 有了這些原則之後就在平臺之上建立了配置管理、持續整合、持續交付、環境自動化、分層自動化以及整合自動化這些相關的子系統。有了這些子系統之後就建立了一個可靠可重複的交付流水線。比如說在提交與編譯階段的並行研發、編譯構建和單元測試,在測試與驗證階段的環境部署、系統測試和整合測試,以及在釋出與運維階段的生產交付、釋出回滾和生產監控等都是可以通過雲效平臺的相關產品進行效率提升的。 在可靠可重複的交付流水線建設完成之後,雲效團隊又將之前所做的研發綜合效能管理方面的東西,包括業務模型分層、業務規劃、研發資源管理以及ROI覆盤等,全部在雲效平臺上進行呈現。而將包括需求跟蹤矩陣、迭代計劃、任務分解流轉以及度量與改進在內的這些,構建成了協同工作流,每一個人都可以在平臺上評論所有的工作項並提出方案或者進行頂踩,這樣就保證了開發的質量、效率以及評論和文件等所有相關的資料都儲存在平臺之上。 專案維度的互動和多角色之間的溝通協作全部都是在雲效平臺上進行,參與專案的人員使用相同的系統進行相互協作,這樣對組織效率和業務也能夠起到很好的促進作用。 除此之外,雲效平臺還支援私有云部署,對於Docker等開發框架以及最簡單的J2EE工程專案等也能夠提供良好的支援。 硬碟式研發管理的總體流程 上圖所示的就是研發流程的示意,從上層的業務方進行業務規劃開始,之後需要進行組織人員的安排,再到立項之後的需求確立。 對於需求的確立而言,需要通過需求跟蹤矩陣將需求橫向化、標準化。需求是可以分解和拆解的,也是可以配置的,需求的變更記錄、評審記錄包括對於需求的評論、頂踩全部會在這個平臺上記錄下來,在平臺之上還可以實現責任人以及狀態的流轉和變更來記錄需求到了什麼樣狀態,這樣就能夠提升需求的質量,控制需求的範圍,這是從橫向上來看這條線。 而從縱向上來看,需求是和後面的整個專案串聯起來的,因為需求確定之後就可以進行迭代拆分、評估工作項的資源以及進行任務分解、測試用例的設計實現以及與Bug相關的一些東西都是可以通過需求串接起來的,這樣就保證了需求與後續工作的關係都可以透視出來,這樣有利於對於整體風險的把控。在整個專案過程結束之後,可以將專案的全部程式碼釋出到程式碼庫中,然後通過雲效平臺指揮部這個產品對於整個專案進行復盤並評估出項目的投入和產出。 這裡大家可能會產生一個疑問,看上去整個研發過程的工作都是記錄在這個平臺上面的,那麼有沒有一些研發相關工作是沒有記錄在雲效平臺上的呢?這個問題的回答是:沒有!雲效平臺提倡硬碟式記錄,如果工作沒有在平臺上記錄,那就相當於沒有工作的產出。可以設想一下:如果一名員工在公司做了很多年,既沒有留下一行程式碼,也沒有留下任何對於技術方案或者需求的變更、評審進行討論的東西,對於公司而言這名員工給公司留下了什麼呢?所以,站在公司的角度,希望每一位員工都能夠積累下屬於自己的工作記錄,並且全部都記錄在公司的平臺之上,固化成公司的數字資產。 對於一些比較高階的技術專家可以在雲效平臺上做些什麼呢?也許他們不用自己去寫程式碼,但是可以在平臺上Review一些技術方案並給出一些評論和指導,甚至還可以進行程式碼的審閱。這些能夠非常好的幫助開發同學避免很多坑,節省大量時間。對於管理者而言,他們所需要做的事情就是促使團隊在這個平臺上產出有價值的東西並記錄在硬碟上面,從而沉澱出整個公司的數字金字塔。管理者也可以看到自己團隊所有成員的全部產出。 雲效專案頁面 下圖所示的是專案概況頁面,包含了專案的整體進度、概要、里程碑資訊、風險資訊、負責人以及專案成員、相關的子專案、及時滾動顯示的專案動態、通知資訊等。除此之外,專案中各角色所需要做的工作項等內容也是通過一些服務呈現的,比如需求頁、任務頁、迭代、測試用例缺陷、自動化、單測整合、環境搭建以及整個系統資料的報表還有釋出等,這些內容都會以專案的維度進行展示。 雲效需求頁面 一個專案的管理者或者專案成員,在雲效平臺上可以看到與專案相關的所有內容 以產品為例,可以看到整個需求跟蹤矩陣的列表,這裡提供了看板和數表這兩種模式來顯示專案需求的優先順序、是否上線、迭代情況、建立者以及當前的負責人等狀態資訊,點選每個需求條目之後可以看到這條需求的詳細情況,包括需求的具體內容、相關聯的需求狀態和相關的一些任務狀態,還包含一些相關評論,鼓勵大家分析需求,對需求進行評論或者頂踩,提出更好的方案。 除此之外,需求的詳細內容頁面還會顯示需求各個版本的修訂記錄、變更記錄、評審記錄以及操作記錄等資訊,對於每一個工作項都有這樣類似硬碟式的記錄,包括這個需求所包含的任務、用例、缺陷、分支等工作項也會在詳細資訊中進行展示。上圖頁面中最右邊展示的是需求屬性以及附件,包含了優先順序資訊、迭代資訊、所屬專案、關聯專案、模組資訊、版本資訊、進度資訊以及經過技術同學評估之後計算出的大概的工作量,還有就是一些自定義的標籤、發生變更之後需要通知的物件資訊,以及與該需求相關的附件等。 這些就是需求頁面的大致情況,因為這部分是專案的源頭,包含的資訊量非常大,所以需要以硬碟的形式全部儲存下來。一言以蔽之,雲效平臺在橫向上會將需求所有相關的資訊全部記錄下來;對於縱向而言,像任務拆分、用例、缺陷以及開發分支等所有專案相關的內容都可以在這裡記錄,以此串聯起整個需求的過程,直到產品釋出上線。 雲效整合自動化 下圖所展示的就是某一個專案的整合自動化的情況。雲效平臺擅長UI自動化、介面自動化以及單元測試,這些可以全部整合在一個平臺上執行,而且歷史的執行結果會全部展示在頁面上,整合的通過率如何、有多少成功和失敗、測試件在執行時候繫結的環境情況、專案中各個部分所執行的測試件情況等,這些專案相關的自動化情況也都會在頁面上得到展示。這樣大家對於硬碟資料的管理就會有一個直接的概念,專案中所有的資訊都可以在一個統一的平臺上呈現出來。

四、實踐最佳路徑和效果

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