企業級敏捷之道
企業對使用敏捷開發方法來處理複雜軟體工程專案越來越感興趣。這些企業希望通過控制成本和進度來提高開發流程的效率,並且同時交付滿足客戶需求的有價值產品。
圖1 基於任務的配置管理
今天,許多大型企業正在研究敏捷軟體開發方法,這主要源於開發流程面臨著一系列的挑戰:如何既能保證質量又能維護多個同步專案?如何用盡可能少的資源做產品,降低成本而使資源的利用率更高?如何化解嵌入式電子商務、Web服務等軟體開發帶來的複雜性?如何滿足各種規範和標準?如何對市場需求和優先順序的不斷變化進行響應?如何管理分散式團隊和離岸開發?……要克服上述挑戰,我們必須對開發過程進行改進。
過程改進的關鍵是採用敏捷開發方法,企業生命週期管理軟體供應商 Telelogic公司副總裁、產品總監Dominic Tavassoli表示,對於規模日益增加的中國開發企業而言,有必要將敏捷開發方法從一般程度擴充套件到企業級程度。企業級敏捷開發將使軟體開發的生產力、質量、開發進度、成本、客戶滿意度都會獲得明顯的改善。
那麼,企業級敏捷開發是如何實現的呢?Dominic Tavassoli認為,結合使用基於任務的配置管理、整合配置管理的企業級變更管理、計量面板以及敏捷的需求管理工具並遵循敏捷軟體開發的根本前提條件,可以有助於確保企業級開發成功。以下方法是企業級敏捷方法的具體實現。
基於任務的配置管理
敏捷開發在企業級的應用將健壯的變更和配置管理解決方案用作大型的複雜開發工具,可以包括分散的專案,這些專案具有遵從性方面的需求,如跟蹤性和文件、客戶和商業案例、需求和變更請求。所有這些因素需要捕獲到可縮放的中心儲存庫,以便確保以可重複的一致方式記錄和分析目標和優先順序。一旦對優先順序取得一致意見並且將開發的特性和bug修復指定到釋出中,開發團隊就可以開始工作了。
為限制開銷和保證有效跟蹤,企業級變更管理通過將任務和變更請求相關聯來與配置管理進行整合。可配置的任務工作流程將一致變更集整理集中起來,以確保最終產品包括所有的變更。開發人員的任務被儲存在CM儲存庫中,只要將任務選入其待辦事項列表中,所有工作就自動分組到統一變更集中。如果要將該變更傳送給團隊的其他成員,開發人員只需提交任務即可。
如果開發人員對某個任務完成到一半的時候又分配一個緊急的任務,他可以轉去執行緊急的任務並自動退出原來的工作。一旦交付完緊急任務,他通過簡單的點選就可以恢復之前未完成的編輯,而不丟失資料或跟蹤記錄。高階的配置管理方案可以做到這一點。
而且,開發人員可以將任務從團隊的其他成員那裡拖放到自己的專案,以便及時檢測衝突和測試相容性。團隊需要快速交付高質量軟體時,基於任務的配置管理方案通過為開發人員提供在早期快速識別問題的方法,來減少團隊的停機時間和返工。
定期構建、迭代和釋出
為了提高客戶滿意度和避免重複工作,企業級敏捷開發促進頻繁的構建和釋出,使之獲得測試和認可。這種方法應該擁有新增或者刪除任務、選擇要求的功能,通過選擇要包括的故事來構建配置,能夠檢測任務或基於故事的衝突、分析相關性。敏捷構建和釋出管理實行了並行、分散的構建迭代,這樣可以提高速度、敏捷性和生產率。它允許開發團隊檢視團隊專案進度和比較基線,以便精確驗證已開發、測試和釋出了哪些功能,以及驗證缺少或未完成哪些功能,從而改善使用者的溝通和專案的透明度。
閉環跟蹤
企業級敏捷開發應該具有閉環跟蹤功能。它們不僅可以識別兩次構建過程之間哪些檔案作了更改,還可以顯示兩次構建、基線、迭代或釋出之間已新增或刪除了哪些任務、變更請求、故障修復、或甚至是添加了哪些案例和需求。團隊可以清楚地看到專案實際的流程狀態。這將有助於敏捷團隊適應按優先順序排列的變更,並確保他們在正確的地方、正確的時間交付正確的產品。
管理專案的複雜性
隨著專案越來越複雜和重用元件,組織需要保持程式碼庫清潔並清瘦。敏捷實踐建議進行重構,對檔案和目錄進行重新組織、命名、分割和合並的流程。
此活動也應該基於任務進行,並跟蹤程式碼的變更、目錄的修改和重新命名。這樣將確保開發團隊的所有成員深刻理解程式碼結構的變化,並在出現合適時機之前制止應用重構任務。
團隊共享
為減少未測試的或不穩定的變更對其他使用者的影響,開發人員需要在隔離但不是孤立的工作區辦公。具有根據需要改進這些環境和檢視其他開發人員的工作區的能力,將提高協作性和減少浪費在恢復不必要的變更的時間。
通過在編寫程式碼時建立單元測試和使用最新基線執行自動的非迴歸測試開發人員可以儘早地捕獲錯誤和不一致。將自動的持續構建和整合流程相結合,大型開發團隊可以快速開發出高質量的程式碼。
自動跟蹤、審查和控制
為確保解決優先順序問題,以及將忽略缺陷和客戶需求的風險降至最低,開發人員需要有自動增加待辦事項的列表。同樣,團隊成員要求可以檢視兩次構建、基線、迭代之間新增或刪除了哪些任務、錯誤修復和故事。這樣可以通過會議每週對專案進度進行有效更新,開發人員在使用卡進行對話和收集故事、情景的同時,組織會對客戶需求、任務和檔案之間的雙方自動跟蹤中獲得益處。
使用報告和指標監控專案進度
在開發團隊接納變更和加快交付產品時,管理層以及整個團隊需要進行客觀、實時地檢視專案進度。自動報告和指標面板會從多個分散資源裡提取資料,以便對當前狀態和趨勢建立有意義的指示資訊。這樣不僅減少了團隊失去控制專案的風險,而且提高了高階管理層的認同感,這對企業級部署很有必要。
作為致力於使企業軟體開發生命週期同業務目標和客戶需求保持一致的提供商, Telelogic的變更和配置管理解決方案Synergy Suite正是基於上述方法設計而成。該套件的獨特之處在於它是企業級變更流程現成的、真正“拿來就用,開機即用”的解決方案,提供適合所有型別和大小的企業的低風險、高ROI的流程模組,企業的各個層次都可以用到。
圖2 兩種開發方法的對比
鏈 接
敏捷開發小貼士
敏捷開發對在企業級、大型或者小型軟體開發專案中都能很好地工作,如進行高質量地跟蹤記錄,並強調開發人員與其客戶(終端使用者)之間的實時溝通。
應用此方法對具有下列環境特點的企業會面臨巨大挑戰:參與的團隊分散在不同的地點和時區、使用不同的語言並且使用多種平行版本和版本變體。採用敏捷軟體開發方法的企業仍然需要解決控制、遵從性和規則等問題,並且要滿足不同客戶的需求和實現業務目標,這事實上在企業級增加了複雜性。