什麼是敏捷式開發?

敏捷 式開發是用來描述反復軟體發展的詞彙。 反復式軟體發展可藉由以簡短增量完成工作來縮短 DevOps 生命週期,通常稱為 短期衝刺。 短期衝刺通常是一到四周的時間。 敏捷式開發通常與傳統或瀑布式開發相比較,它會預先規劃較大的專案,並根據計畫完成這些專案。

每個短期衝刺都會提供生產品質程式碼,需要敏捷式開發小組考慮加速步調。 所有編碼、測試和品質驗證都必須完成每個和每個短期衝刺。 除非小組已正確設定,否則結果可能會短于預期。 雖然這些失敗提供絕佳的學習機會,但開始之前先瞭解一些重要課程會很有説明。

本文為敏捷式開發小組配置幾個重要成功因素:

  • Diligent 待辦專案精簡
  • 早期和經常整合
  • 將技術債務降到最低

Diligent 待辦專案精簡

敏捷式開發小組會從需求待辦專案運作,這通常稱為 「使用者故事」。 待辦專案會優先使用最上層最重要的使用者故事。 產品擁有者擁有待辦專案,並根據客戶需求新增、變更及重設使用者劇本。

包含數個數據行的 Kanban 面板影像。在每個資料行中,會顯示一些卡片。

敏捷式小組生產力上最大的拖曳之一是定義不良的待辦專案。 除非小組已明確定義需求,否則無法一致地為每個短期衝刺提供高品質的軟體。

產品擁有者的工作是確保每個短期衝刺,工程師已清楚定義要使用的使用者劇本。 待辦專案頂端的使用者劇本應該一律準備好讓小組開始。 這個概念稱為待辦專案精簡。 讓待辦專案準備好供敏捷式開發小組使用,需要投入心力和專業領域。 幸運的是,這值得投資。

當您精簡待辦專案時,請記住下列重要考慮。

  1. 精簡使用者劇本通常是長時間的潛在客戶活動。 簡潔的使用者介面、美觀的螢幕設計,以及客戶滿意的解決方案全都花費時間與精力來建立。 Diligent 產品擁有者事先精簡使用者案例兩到三個短期衝刺。 他們考慮設計反復專案和客戶評論。 他們致力於確保每位使用者故事都是敏捷式小組要為客戶提供的成就。

  2. 除非小組說出使用者故事,否則不會精簡。 小組必須檢閱使用者劇本,並同意它已準備好要處理。 如果小組在短期衝刺的第一天之前看不到使用者劇本,可能會造成問題。

  3. 進一步降低待辦專案的使用者案例可能會保持模棱兩可。 不要浪費時間精簡較低優先順序的專案。 將焦點放在待辦專案頂端。

早期和經常整合

持續整合持續傳遞 (CI/CD) 為您的小組設定敏捷式開發的快速步調。 儘快自動化建置、測試和部署管線。 將自動化設定為小組在開始新專案時所處理的第一個工作之一。

透過自動化,小組可避免速度緩慢、容易出錯且需要大量時間的手動部署程式。 由於小組會發行每個短期衝刺,因此無法手動執行這些工作。

CI/CD 也會影響您的軟體架構。 它可確保您提供可建置和可部署的軟體。 當小組實作難以部署的功能時,如果建置和部署失敗,他們就會立即察覺。 CI/CD 會強制小組在部署問題發生時修正。 然後,產品一律準備好寄送。

顯示一段時間內 CI 組建狀態的抽象橫條圖。大部分的組建都成功。只有少數失敗。

有一些重要的 CI/CD 活動對於有效的敏捷式開發至關重要。

  1. 單元測試。 單元測試是第一個防禦人為錯誤。 請考慮單元測試撰寫程式碼的一部分。 使用程式碼簽入測試。 讓單元測試成為每個組建的一部分。 失敗的單元測試表示建置失敗。

  2. 建置自動化。 建置系統應該會在組建執行時,直接從原始檔控制提取程式碼和測試。

  3. 分支和建置原則。 設定分支和建置原則,以在小組將程式碼簽入至特定分支時自動建置。

  4. 部署至環境。 設定發行管線,以自動將建置專案部署到模擬生產環境的環境。

將技術債務降到最低

透過個人財務,比起從其下深入探索,更容易掌握貸款。 相同的規則適用于技術債務。 技術性債務包括小組因先前採取的快捷方式而必須處理的任何專案。 例如,如果您排程緊密,您可能會犧牲品質以符合期限。 技術性債務是您稍後支付的價格,當您必須重構程式碼,以構成缺乏品質。 範例包括解決設計不佳、Bug、效能問題、操作問題、協助工具考慮和其他問題的修正。

持續掌握技術性債務需要一點心力。 延遲重新撰寫程式碼有許多壓力。 最好處理功能,並忽略貸款。 不幸的是,有人必須儘快或更新版本支付技術債務。 就像財務債務一樣,技術性貸款更難以支付其存在的時間。 智慧型產品擁有者會與其小組合作,以確保每個短期衝刺都能支付技術債務。 平衡技術債務降低與功能開發是一項困難的工作。 幸運的是,有一些直接的技術可用來 建立具生產力、以客戶為主的小組

一律為 Agile

敏捷式表示從經驗學習並持續改善。 敏捷式開發提供比傳統專案規劃更多的學習週期,因為程式迴圈更緊密。 每個短期衝刺都會為小組提供一些新功能來學習。

例如:

  • 小組會為客戶提供價值、取得意見反應,然後根據該意見反應修改其待辦專案。
  • 他們瞭解其自動化組建缺少關鍵測試。 他們會在其下一個短期衝刺中包含工作,以解決此問題。
  • 他們發現某些功能在生產環境中效能不佳,因此會制定改善效能的計畫。
  • 小組中的某人會聽到新的練習。 小組決定試用幾個短期衝刺。

剛開始進行敏捷式開發的團隊應該會預期有更多學習機會。 它們是程式的重要部分,因為它們會導致成長和改善。

後續步驟

有許多方法可以解決適合小組的敏捷式開發程式。 Azure DevOps 提供各種程式範本。 想要尋找其規劃不同基準結構的小組,可以使用這些範本作為起點。 如需選取最適合小組文化與目標的進程範本的相關資訊,請參閱選擇程式流程或程式範本以在Azure Boards中運作

隨著組織成長,保持專業領域是一項挑戰。 深入瞭解 將 Agile 調整為大型小組