1. 程式人生 > 其它 >推動軟體交付的24個關鍵能力

推動軟體交付的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中至關重要的技術和流程工作。它由五個因素組成:視覺,智力刺激,鼓舞性溝通,支援性領導和個人認可。