DevOps平台之看板設計
- 2019 年 10 月 4 日
- 筆記
轉載本文需註明出處:微信公眾號EAWorld,違者必究。
引言:
在DevOps的研發過程中,好的看板功能有助於優化項目管理、提升開發效率,是較重要的功能之一。本文從需求分析角度入手,分析DevOps產品對看板的需求,並結合普元DevOps產品看板部分的實際開發經驗和用戶回饋向大家介紹DevOps看板的設計實踐之路。
1.DevOps需要的看板
看板是DevOps較為常用的功能,整個項目開發周期都離不開它,從需求劃分、任務分配、功能實現到測試上線都需要看板的協助,看板使抽象工作流程可視化,讓項目管理者能更清晰的掌握項目進度。由此,看板設計實踐就成為了DevOps實踐的重要內容之一。首先我們需要了解一下,DevOps中的看板需要具備怎樣的功能:
1.價值流
廣義的價值流指的是從原材料變為成品、並給他賦予價值的全部活動。包括原材料的獲取,對原材料進行加工後轉變為成品交付給客戶的過程,其中還包括了各個階段各方之間的溝通形成的資訊流也是價值流的一部分。完整的價值流包括供應鏈成員之間的溝通,物料的運輸,生產計劃的制定和產品的生產過程等。

舉個簡單的例子,服裝加工廠要按照客戶要求生產一批服裝,生產方首先需要和客戶確定衣服的款式,用料,具體尺碼資訊,然後採購制衣所需的布料,將衣服製作圖紙下發到相關工人手中,工人按圖制衣,完成既定數量的通過品質檢測的成衣後將成品送到客戶手中,這就是一條完整的價值流。
DevOps中的價值流
在DevOps中,價值流的概念同樣適用。定義:把業務構想轉化為客戶交付價值的、由技術驅動的服務所需的流程。
價值流貫穿了整個開發周期,好的價值流在保證快速的交付的同時還能保證部署工作不會產生混亂和破壞。只有打通業務、開發運維等一些列的價值鏈條,保證價值可以完整暢通的流動,減少積壓重組,才能保證產品的順利交付。在此前提下,提高開發效率實現敏捷開發才是可能的。但是技術價值流與製造業的價值流不同,它是不可見的,因此我們很難發現整個價值流是否順暢,在哪裡產生了阻礙積壓。因此我們需要將價值流可視化,清晰的把價值流的呈現出來,這樣價值流是否完整,哪裡存在缺失就一目了然了。
2.DevOps的三步工作法基礎原則
《鳳凰項目》一書把三步工作法作為基礎原則並由此衍生了DevOps的行為和模式:

(1)開發到運維的工作快速的從右向左的流動——流動原則
在保證品質的前提下加快價值流的流動速度,儘可能的優化工作流,減小流動單元合理控制流量,減少等待時間,提高工作效率,可以歸結為以下幾點:
- 使工作可見
- 合理控制最流動單元
- 減少交接次數
- 消除阻礙價值流的問題
(2)從右向左的每一個階段中,應用持續、快速的工作回饋機制——回饋原則
回饋原則是在流動原則的基礎上建立的一條資訊流,價值流上的各個環節通過這條資訊流溝通,好的資訊流有助於及時發現並解決問題,從中分析並總結經驗可以提升項目開發效率。
(3)建立具有創意和高可信度的企業文化,支援動態的、嚴格的、科學的實驗——持續學習與實驗原則:他打造出一種高度信任的文化和一種科學的工作方式
常見的項目中每天的站會、每周的周會一般是項目成員集中在一起交流並互相學習的機會,大家對工作作出自我總結並提出自己的想法互相交流意見,實現工作中的自我提升。
看板在DevOps中主要作為價值流的載體的一部分,使價值流中一些較為抽象的資訊可視,並讓用戶可以從中看清楚價值流的流通情況、每一個環節及環節的具體操作情況,何處需要改進、何處存在問題。三步工作法則可以幫助提升工作效率。結合對價值流的概念以及三步工作法原則的分析,看板需要具備以下功能:
(1)清晰描述最小工作項單元及工作項間的關係
(2)提供便捷的小組成員互相溝通方式
(3)快速直接的回饋某工作項的各種情況
(4)一目了然的任務完分配集成情況,方便開會總結
2.看板實踐及優化
首先是工作的最小單元——工作項,工作項是看板上各類工作內容的最小顯示單元,負責顯示工作內容的各種資訊,一些類似的工作項管理看板對工作項類型進行了極為細緻的劃分,但過於繁雜的工作項類型難於記憶並且存在概念重複反而不利於,結合實際項目開發情況我們將工作項類型分為三類:
(1)故事——一個故事代表一個完整的需求點,可以包含多個任務、bug,一 個故事及其包含的所有子項目可以完整的詮釋一個需求點在價值流上流通的全過程
(2)任務——將故事拆分為一個個的具體工作內容,分配到具體人員
(3)Bug——測試人員向開發人員、項目管理人員提出回饋的途徑
工作項的要展示很多的具體資訊:

(1)描述資訊(標題、描述、附件、Comments、所屬迭代、所屬版本)
Comments是提供給開發人員的交流空間,讓開發人員可以在這裡進行簡短的意見交流,一些較小、內容簡短的討論可以在這裡進行,無需所有相關人員聚集在一起討論節約時間
(2)狀態資訊(工作項狀態、優先順序)
(3)人員資訊(責任人、創建人、解決人)
明確工作項的相關人員,責任劃分明確。
(4)時間資訊(創建時間、預估時間、耗費時間、到期時間)
提供明確的時間資訊,有利於項目管理者控制項目開發進度
(5)關聯的工作項(子任務、Bug)
將有關的工作項關聯到一起,完整描述產品中某一項功能,從需求分析到開發實現到測試回饋的全過程
工作項設計完成後需要考慮的就是如何一個個的工作項集中在一起展示,考慮到DevOps的用戶有很多不同的角色,對看板的關注角度也不同,例如項目經理更希望可以一目了然的看到任務的完成情況,開發人員需更關注的是分配給自己的工作項的具體的內容,綜合各方面分析考量,對看板設計了四種展示方案:
(1)普通列表

普通列表視圖用分頁列表形式展現工作項,不會展示過於詳盡的資訊,意在為用戶提供一個可以快捷操作的頁面,如添加工作項、快速修改工作項的狀態。
(2)詳情列表

詳情列表視圖將頁面分為左右兩個區域,左側是簡化的目錄列表展示全部工作項,右側展示用戶在目錄列表選中的工作項的全部資訊,適用於快速瀏覽工作項後切換查看各個工作項的詳細資訊。
(3)狀態甬道

從工作項狀態的維度展示工作項的簡要資訊,標題、負責任、狀態,方便項目組舉辦周會,每日站會時匯總展示當前所有工作項所處狀態,統一分配任務、總結任務完成情況使用,採用拖拽形式來修改任務狀態,方便快捷。
(4)時間甬道

針對每日站會的甬道,項目進入較為緊張的開發階段時往往需要每日或較短的時間內分配任務、查看任務完成情況,以時間為展示維度,讓項目管理者看到每個時間段內工作項的數量、完成情況,方便把控項目進度。
根據真實使用回饋的優化完善
DevOps的看板設計完成後經過一段時間的使用,發現了許多問題,我們對此做出了總結和改進:
(1)檢索功能優化
工作項具備很多檢索條件,條件過多,選擇控制項按鈕在頁面上堆疊,用戶體驗不佳,所以改為採用摺疊形式的查詢欄並提供常用查詢條件存儲功能,優化體驗。
(2)時間甬道看工作項板卡片優化

工作項具備很多屬性,開站會時經常需要修改負責人、任務優先順序等一些資訊,甬道修改時間方便但是要修改其他屬性則需要進入詳情頁面,增加了操作步驟,浪費時間,因此將一些常修改的屬性添加至卡片上方便修改。
(3)列表視圖資訊快速修改優化

列表視圖的使用者一般對工作項內容較為了解,很少查看工作項詳細內容,此類用戶要修改工作項的一些基本資訊時不希望進入詳情頁後才能修改工作項資訊,因此將列表的單元格改為可編輯形式,減少點擊頁面次數。
以上就是普元DevOps產品看板模組的設計和實踐歷程,在價值流可視化和項目成員溝通等方面我們仍在持續改進,希望能打造出更便捷、更清晰的看板,完善DevOps平台看板模組。
*參考書籍:《DevOps實踐指南》