共用方式為


什麼是敏捷式開發?

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

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

本文為敏捷式開發小組提供一些重要的成功因素:

  • 勤奮待辦專案精簡
  • 早期和經常整合
  • 最小化技術債務

勤奮待辦專案精簡

敏捷式開發小組會處理一系列需求,這通常稱為 「使用者案例」。 待辦專案會優先處理,其中最重要的用戶劇本位於頂端。 產品擁有者擁有待辦專案,並根據客戶需求新增、變更及重設用戶劇本。

Image of a Kanban board that contains several columns. In each column, a few cards are visible.

敏捷式小組生產力的最大拖累之一是定義不力的待辦專案。 除非已明確定義需求,否則小組無法一致地提供高質量的軟體。

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

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

  1. 精簡用戶劇本通常是一項長期活動。 優雅的使用者介面、美麗的屏幕設計,以及客戶滿意的解決方案,都需花費時間和精力來建立。 勤奮的產品擁有者事先精簡使用者案例兩到三個短期衝刺。 他們會考慮設計反覆項目和客戶檢閱。 他們致力於確保每位使用者的故事都是敏捷式小組為提供給客戶而感到自豪的。

  2. 除非小組說是,否則不會精簡用戶劇本。 小組必須檢閱用戶劇本,並同意它已準備好進行。 如果小組直到衝刺的第一天才看到使用者劇本,問題可能會產生。

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

早期和經常整合

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

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

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

Abstract bar chart that shows the status of CI builds over time. Most builds succeeded. Only a few failed.

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

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

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

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

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

最小化技術債務

有了個人財務,遠離債務比從債務中挖掘出來更容易。 相同的規則適用於技術債務。 技術債務包括小組必須解決的任何專案,因為先前採取的快捷方式。 例如,如果您排定得很緊,您可能會犧牲品質以符合期限。 技術債務是您稍後支付的價格,當你必須重構程式代碼來彌補品質不足。 範例包括解決設計不佳、Bug、效能問題、操作問題、輔助功能考慮及其他問題的修正。

保持技術債務之上需要勇氣。 延遲重新作業程式代碼有許多壓力。 在功能上工作並忽略債務感覺很好。 不幸的是,有人必須早晚償還技術債務。 就像金融債務一樣,技術債務越來越難償還它存在的時間。 智慧型產品擁有者會與其小組合作,以確保有時間在每個短期衝刺中償還技術債務。 平衡技術債務與特徵發展是一項艱巨的任務。 幸運的是,有一些簡單的技術可用來 建立具生產力且以客戶為中心的小組

一律是敏捷式

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

例如:

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

剛開始使用敏捷式開發的小組應該期待更多的學習機會。 他們是過程中的寶貴部分,因為它們會導致成長和改善。

下一步

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

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