天天看點

不得不在家辦公後,技術人如何線上研發?線上研發協同的基礎是高可見性及快速連接配接線上項目協同線上代碼協同線上釋出協同使用“雲效”輕松實作一站式線上研發協同

線上研發協同的基礎是高可見性及快速連接配接

為了應對網際網路業務的複雜性和不确定性的特點,現代軟體開發,逐漸過渡到以客戶導向,小團隊(單兵)作戰能力,快速連結生産要素,持續快速高品質地傳遞有效價值的方式。分工越來越細,整個軟體生産的過程,就是分而治之地解決問題,然後持續地內建釋出的過程。

這種軟體開發方式,誰擁有更高的機動靈活響應能力,和更高的協同性,誰就能在競争中搶占先機。

網際網路技術讓互聯互通變得異常簡單。通信技術的發展,對網際網路應用起到了極大的促進作用。即時通信工具,也已經超越了聊天的功能,釘釘項目群、釘釘視訊通話、釘釘視訊會議,再到其平台演化出來各種OA應用,助力快速連接配接。

協同的基礎之一就是連接配接,從人之間的連接配接,到人與物之間的連接配接,快速實作組織線上、溝通線上和協同線上。

生産工具的發展,顯著提升了軟體生産過程的可見性。研發過程的線上化,讓軟體工程的可見性到了前所未有的新高度。生産工具的進步,已經讓生産過程沒有任何秘密可言,隐性的工作逐漸顯性化。而協同的基礎,就是資訊的共享,生産過程的可見性。為人們所熟知的Scrum開發架構中,将透明性(Transparency)列為三大支柱之首。

注:Scrum三大支柱分别是:透明(Transparency),檢視(Inspection)和适應(Adaption)。

軟體架構與部署方式的演進,有利于分工協同。根據康威定律:設計系統的架構受制于産生這些設計的組織的溝通結構。那麼,反過來,系統設計的架構,也反作用于溝通結構及軟體的內建方式。同時,在雲開發、中間件、中台化政策的大環境下,業務層更多關注在業務創新上,分工變得越來越細。

不得不在家辦公後,技術人如何線上研發?線上研發協同的基礎是高可見性及快速連接配接線上項目協同線上代碼協同線上釋出協同使用“雲效”輕松實作一站式線上研發協同

部署架構的演進,也讓系統中的局部,可以獨立持續部署。小團隊,或單兵的價值展現越來越大,而團隊與團隊之間,人與人之間的連接配接,也從傳統樹狀的方式,逐漸往網狀的方向演進。協同,就是在這樣的網狀環境裡,能夠清晰地識别出需要連接配接的生産要求,然後快速線上協同。

對于知識經濟活動,高可見性,快速連接配接能力意味着靈活協作的可能,而線上化是這一切的基礎,線上化讓人們有機會在任何時候任何地方,快速集結、組織協作,讓SOHO這樣的遠端辦公方式成為可能。

線上化,是數字化協作的基礎,為未來智能化的演進創造了可能的條件,這是現代化軟體研發手段演進的趨勢。

下面,我們将從“研發協同”, “代碼協同”及“釋出協同”三個方面,闡述如何線上協同,身處不同地域,不同時區的你我他,能夠快速連接配接起來,真正進入到數字化研發時代。

線上項目協同

需求協作,從拉通和可視化端到端的價值流動開始

可見,是協作的基礎。通過電子看闆,以需求為流動單元,端到端可視化價值流,以流動效率為核心組織需求傳遞。可視化端到端價值流必須做到:價值驅動,即每一個流動單元展現的都是展現使用者價值的業務需求;前後拉通,即可視化的目标是“端到端”的價值流,始于使用者問題的提出,終于使用者問題的解決。

不得不在家辦公後,技術人如何線上研發?線上研發協同的基礎是高可見性及快速連接配接線上項目協同線上代碼協同線上釋出協同使用“雲效”輕松實作一站式線上研發協同

我們可以通過以下三個标準來檢驗可視化的效果,即:

是否能反映端到端的傳遞過程

是否能即時展現影響價值流動的瓶頸和問題

是否能依據可視化的資訊進行協作和做決定

同時,打通從項目協作到軟體釋出的全鍊路,代碼送出和釋出資訊同樣可以即時反映到需求卡片上,集中及時的工作狀态同步,減少溝通基本靠吼的套路,使得項目管理的目标更關注在價值傳遞和問題解決上。

管理價值流動,建構價值回報閉環,讓傳遞更可控

軟體傳遞的關鍵,是客戶價值的流動,而組織壁壘、溝通延遲、協作阻塞是主要障礙。基于端到端可視化的價值流看闆,産品需求排期,還是團隊每日站會的任務指派,圍繞需求看闆,來組織日常的項目協作。自右往左檢視需求的傳遞狀态,從測試工程師、開發工程師到産品經理,跨職能協同。同時,需求的任何風險及問題,高亮顯性地展示在看闆上,以釘釘等即時通信工具,快速回報到責任人,做到即時發現、即時響應,就問題快速連結集結。

形成從需求規劃、需求排期、每日站會,再到需求複盤的完整價值回報閉環。從整體傳遞節奏上,形成月規劃、周排期、日站會的節奏。而這一切,完全可以通過線上化的電子看闆進行。

不得不在家辦公後,技術人如何線上研發?線上研發協同的基礎是高可見性及快速連接配接線上項目協同線上代碼協同線上釋出協同使用“雲效”輕松實作一站式線上研發協同

限制線上品數量,加速業務需求傳遞

影響需求(價值)流動效率的關鍵是批量和并行,通過限制在制品數量(我們稱之為束水攻沙),加速需求傳遞。同時,數字化協作,有利于研發過程中,效能資料的沉澱,建立效能改進的基線和願景目标,以客戶響應周期和品質提升為目标,驅動問題的發現和解決,建立持續改進的基礎。

線上代碼協同

代碼協作是代碼集體所有制(Collective Code Ownership)

團隊成員共同為代碼負責。基于Git分布式版本控制系統,實作了基本的代碼托管理能力。在目前的代碼協作概念中,分支即是協作的載體,世界各地的開發者們可以根據産品需求,建立不同分支,同時開發。恰當的分支模式,讓分散的工作,快速內建在一起,并在版本上可追溯。每個代碼庫的readme資訊詳細說明代碼設計,建立基本的代碼品質管理标準(如單元測試和自動化的增量代碼靜态掃描),保證持續增量代碼不會影響到已有功能,讓協作成為可能。

提升代碼的可見性,助力代碼協作

無論從簡單的複雜度、重複度分析、依賴分析,再到領域語言識别,安全敏感資訊識别等,像阿裡巴巴代碼規約等工具,極大提升了代碼的可見性,程式員們已經完全可以從大量的代碼中,抓住關鍵資訊。

不得不在家辦公後,技術人如何線上研發?線上研發協同的基礎是高可見性及快速連接配接線上項目協同線上代碼協同線上釋出協同使用“雲效”輕松實作一站式線上研發協同

同時,借助雲端IDE、雲端分布式代碼托管工具,有效地促進社交化程式設計,無論是結對程式設計,還是代碼評審,讓代碼本身及編碼過程顯性化,可以:

促進團隊内部知識共享,提高團隊整體水準,確定團隊統一規範,不出現“天書”代碼;

同時,工具的早期介入潛在缺陷發現率可以提升30%;

透明的代碼,多人的讨論可以促進正向鼓勵,主動思考和追求卓越。

代碼安全

代碼線上化協同,代碼共享、複用文化的建立都依賴于代碼平台複雜的權限控制體系,這是一把雙刃劍,越開放意味着代碼洩露的風險越大,但是越封閉意味着協同效率低下。為了讓開發者可以更好地享受代碼協作帶來的紅利,需要重點注意以下幾個方面:

代碼中的敏感資訊:比如資料庫密碼,被有意或無意洩露後會導緻公司業務出現緻命打擊。

通路權限控制:常見的有通路IP控制,離職權限回收,代碼庫可見範圍設定等。

異常行為風險識别:擁有事後審計,事前預警的能力,比如大量下載下傳代碼異常行為檢測和預警。

代碼協作是技術卓越的追求,是培養軟體匠藝精神的機會,借助先進的代碼協作工具及技術手段,促進代碼及編碼過程的可見性,同時,讓每一位程式員能夠有信心地送出每一行代碼。

線上釋出協同

現代化企業級軟體傳遞過程常常是多人多角色協作,跨越多個系統互動,同時為了保障傳遞可靠,傳遞流程往往也是複雜和難以完全标準化。而阿裡巴巴為什麼能緊跟市場變化,快速寫出高品質軟體,這得益于多年沉澱出的一套完整DevOps方法論和産品,確定軟體傳遞過程線上高效可靠。

從流程标準,工序改進,建立線上釋出協作

不得不在家辦公後,技術人如何線上研發?線上研發協同的基礎是高可見性及快速連接配接線上項目協同線上代碼協同線上釋出協同使用“雲效”輕松實作一站式線上研發協同

線上釋出協同,需要基于同一個傳遞流水線進行,首先,需要拉通軟體內建釋出的完整流程。打通從變更到傳遞的完整系統;将流程工具化,通過工具串起整個內建傳遞過程;同時,明确流程中各階段的準入準出标準,下遊活動基于上遊産出品質。其次,按工序建立品質守護系統,并使每一道工序自動化。再次,建立回報機制,有問題能夠精準定位,即時響應,快速修複。建立相應的度量回報機制,還能對流程和工序進行持續優化。

真正的線上釋出協同,應該是滿足:流程工具化、部署無人化、測試自動化、回報數字化的要求。

特性分支驅動多人多角色線上協作

為了實作多人研發不打擾,代碼功能可以自由可靠組合傳遞,阿裡巴巴生産經驗積累出一套AoneFlow代碼分支管理方法,以特性變更為單元,使用CI/CD 流水線完整的覆寫了從建構、測試到部署整個持續傳遞過程,過程中的每一個步驟和任務的資訊都可以通過消息、郵件、釘釘機器人等告知和追溯,使研發、測試、運維、配管等角色能線上協同,異步工作。

用雲原生技術打破開發與運維的邊界

以Kubernetes、Serverless、Service Mesh、Cloud IDE為代表的多項雲原生技術在過去一年讓人印像深刻。這套開箱即用的開源軟體,讓中小公司快速的獲得了以往網際網路大廠才有的精項軟體傳遞能力,比如複雜的流量治理能力,灰階釋出能力,A/B測試能力,多環境管理能力,基礎設施一鍵拉起,快速擴縮容能力等等。但在企業采納新技術的同時,也面臨着諸多挑戰,比如開源軟體複雜的搭建過程,黑屏化的互動設計,缺乏研發管理方法,缺乏企業權限管理能力等。阿裡巴巴也在積極将CI/CD工具、測試環境管理方法、應用運維理念、DevOps協同方法論等與雲原生技術融合貫通,為開發者提供開箱即用的新技術解決方案。

使用“雲效”輕松實作一站式線上研發協同

工欲善其事必先利其器,雲效可以提供從“需求 ->開發->測試->釋出->運維->營運”端到端的線上協同服務和研發工具,讓你輕松實作一站式研發協同。

不得不在家辦公後,技術人如何線上研發?線上研發協同的基礎是高可見性及快速連接配接線上項目協同線上代碼協同線上釋出協同使用“雲效”輕松實作一站式線上研發協同

我們可以這樣使用雲效來完成一天的工作:

晨會上團隊基于精益看闆進行需求、任務對齊,完成任務指派;

開發同學根據特性開發,建立變更分支;

通過線下或雲端開發環境進行程式設計工作,然後送出代碼;

代碼自動觸發自動的代碼掃描,并發送給指定的代碼評審員進行評審;

完成評審的代碼自動觸發內建釋出流水線,自動化的完成建構,生成Docker鏡像,分别在開發環境、內建環境及預發環境進行部署,完成相應的驗證工作;驗證完之後處于待釋出狀态,觸發上線稽核流程,運維完成稽核釋出上線;

過程中任何問題通過釘釘,遵循no news is good news的原則,及時回報到指定負責人,做到準确回報、即時響應,快速恢複。盡量避免垃圾短信式回報,過多的噪音,反而會降低協作的效率。

我們希望将雲效多年積累的研發實戰經驗和先進的工具分享出來,讓小企業,具備大智慧,快速開展在家研發軟體工作。

關于雲效:雲效,企業級一站式DevOps解決方案,源于阿裡巴巴先進的管理理念和工程實踐,緻力于成為數字企業的研發效能引擎!雲效提供從“需求 ->開發->測試->釋出->運維->營運”端到端的線上協同服務和研發工具,通過人工智能、雲原生技術的應用助力開發者提升研發效能,持續快速傳遞有效價值。

繼續閱讀