推動軟件交付的24個關鍵能力
持續交付能力
1.對所有生產工件使用版本控制
版本控制是將所有生產工件納入版本控制系統(例如GitHub或Subversion)管理,包括應用程序代碼,應用程序配置,系統配置以及用于自動構建和配置環境的腳本。
2.自動化部署過程
部署自動化是指部署完全自動化且不需要人工干預的程度。
3.實施持續集成
持續集成(CI)是實現持續交付的第一步。這是一種開發實踐,其中的代碼會定期檢入,每次檢入都會觸發一組快速測試,以發現嚴重的回歸問題,開發人員會立即對其進行修復。CI流程將創建規范的構建和程序包,并最終進行部署和發布。
4.使用基于主干開發方法
基于主干的開發模式已被證明可以實現軟件開發和交付中的高性能。它的特點是在代碼存儲庫中少于三個活動分支。在合并入主干分支之前具有非常短的生命周期(例如,少于一天)的分支;應用程序團隊很少或從來沒有“code lock”期,因為合并沖突,代碼凍結或穩定階段,沒人能簽入代碼或執行拉取請求。
5.實施測試自動化
測試自動化是一種在整個開發過程中自動(而非手動)連續運行軟件測試的實踐。有效的測試套件是可靠的,也就是說,測試會發現真正的失敗,并且只能通過可發布的代碼。請注意,開發人員應主要負責創建和維護自動化測試套件。
6.支持測試數據管理
測試數據需要仔細的維護,并且測試數據管理已成為自動化測試中越來越重要的部分。有效的做法包括擁有足夠的數據來運行您的測試套件,按需獲取必要數據的能力,在管道中對測試數據進行條件調整的能力以及不限制可以運行的測試數量的數據。但是,我們確實要警告,團隊應盡可能減少運行自動化測試所需的測試數據量。
7.左移安全性
將安全性集成到軟件開發過程的設計和測試階段是提高IT性能的關鍵。這包括對應用程序進行安全審查,包括在應用程序的設計和演示過程中的信息安全團隊,使用預先批準的安全性庫和程序包,以及將安全性功能作為自動化測試套件的一部分進行測試。
8.實施持續交付(CD)
CD是一種開發實踐,其中軟件在其整個生命周期中都處于可部署狀態,并且團隊優先考慮使軟件保持在可部署狀態,而不是研究新功能。所有團隊成員都可以快速獲得有關系統質量和可部署性的反饋,當他們收到有關系統不可部署的報告時,可以快速進行修復。最后,可以根據需要隨時將系統部署到生產或最終用戶。
架構能力
9.使用松耦合的架構
這影響了團隊可以按需測試和部署其應用程序的程度,而無需與其他服務進行協調。松散耦合的架構使您的團隊能夠獨立工作,而無需依賴其他團隊的支持和服務,從而使他們能夠快速工作并為組織創造價值。
10.授權團隊的架構師
我們的研究表明,可以選擇要使用哪些工具的團隊在持續交付方面會更好,進而可以推動更好的軟件開發和交付性能。沒有人比從業者更清楚他們需要什么才能有效。
產品和過程能力
11.收集并實施客戶反饋
我們的研究發現,組織是否定期主動地尋求客戶反饋,并將此反饋納入其產品設計對軟件交付性能很重要。
12.通過價值流使工作流程可見
團隊應該對從業務一直到客戶的工作流程有很好的理解和可視性,包括產品和功能的狀態。我們的研究發現,這對IT性能有積極影響。
13.小批量工作
團隊應該將工作分成小塊,可以在一周或更短的時間內完成。關鍵是將工作分解為允許快速開發的小功能,而不是在分支上開發復雜的功能并很少發布它們。這個想法可以應用于功能和產品級別。(MVP是產品的原型,具有足夠的功能以使人們能夠有效地了解產品及其商業模型。)小批量工作可縮短交貨時間并加快反饋循環。
14.培養和啟用團隊實驗
團隊實驗是開發人員在開發過程中嘗試新想法并創建和更新規范的能力,而無需團隊外部的批準,這使他們能夠快速創新并創造價值。當與小批量工作相結合,合并客戶反饋并使工作流程可見時,這特別有影響。
精益管理和監控能力
15.進行輕量級變更批準流程
我們的研究表明,與使用外部變更批準委員會(CAB)相比,基于同級審查(對編程或團隊內部代碼審查)的輕量級變更批準過程可產生出色的IT性能。
16.跨應用程序和基礎架構進行監視以通知業務決策
使用來自應用程序和基礎架構監視工具的數據來采取行動并制定業務決策。當出現問題時,這不僅僅可以傳呼別人。
17.主動檢查系統運行狀況
使用閾值和變化率警告來監視系統運行狀況,以使團隊能夠搶先發現和緩解問題。
18.改進流程并管理在制品(WIP)限制的工作
在精益社區中,使用在制品限制來管理工作流程是眾所周知的。有效使用后,可提高流程效率,提高吞吐量并在系統中顯示約束。
19.可視化工作以監視質量并在整個團隊中進行溝通
已顯示用于監視質量和在制品的視覺顯示,例如儀表板或內部網站,有助于軟件交付性能。
文化能力
20.支持生成文化
衡量組織文化的依據是社會學家羅恩·韋斯特魯姆(Ron Westrum)開發的一種類型學,他在航空和醫療保健領域研究了對安全至關重要的復雜系統。我們的研究發現,這種文化程度可以預測IT績效,組織績效和減少倦怠。此措施的標志包括良好的信息流,高度的合作與信任,團隊之間的橋梁以及有意識的詢問。
21.鼓勵和支持學習
在您的文化中,學習被認為對持續進步至關重要嗎?學習被視為成本還是投資?這是對組織學習文化的一種衡量。
22.支持和促進團隊之間的合作
這反映了傳統上孤立的團隊在開發,運營和信息安全方面的互動程度。
23.提供使工作有意義的資源和工具。
這項工作滿意度的特殊衡量標準是從事具有挑戰性和有意義的工作,并有權鍛煉您的技能和判斷力。這還與獲得做好工作所需的工具和資源有關。
24.支持或體現變革型領導
變革型領導支持并擴大了DevOps中至關重要的技術和流程工作。它由五個因素組成:視覺,智力刺激,鼓舞性溝通,支持性領導和個人認可。



























