敏捷軟件交付項目管理及相關工具

本文關鍵字 1 軟件交付項目管理面臨的挑戰 軟件交付項目管理的特殊性在於其管理對象是軟件交付,雖然其基本管理思想和管理方法都跳不出通用項目管理範疇,但其面臨的全球化、複雜性和治理等方面的獨特問題,迫使相關人員不斷地去思考和創新軟件交付方法和項目管理模式。 創新時代企業發展速度的加快和全球化軟件交付模式的出現,給軟件交付項目管理帶來了很多挑戰,這些可以總結歸納爲四個方面:複雜性、團隊、流程和工具。在漫長的IT系統建設過程中,技術的進步、語言的變遷、系統平臺的演進以及Web2.0的出現,往往會給企業留下錯綜複雜的IT基礎架構和遺留系統。面對百花齊放的軟件開發方法,軟件開發團隊想方設法建立合適的流程,提高流程的敏捷性,增加業務的響應速度。然而企業內部普遍存在的工具豎井,導致不同的工作環節有不同的工具、流程和數據,這些內容無法整合,就無法提供應用生命週期管理的能力。所有這些正帶給今天的軟件開發團隊前所未有的挑戰。 1.1 軟件交付項目工件和活動管理的挑戰 首先分析一下軟件交付過程本身。和人類的其他生產過程一樣,軟件生產過程就是作爲軟件交付主體的人或團隊,通過項目管理、需求分析、設計、開發、測試和發佈等一系列活動,生產出各種工件(交付物),實現軟件從早期的需求,到中期的架構和代碼,再到可運行的發佈版本的不斷演進。與任何生命體的成長過程類似,在周而復始的活動到工件的交替過程中,會產生許多軟件產品的階段產物(版本),它們代表了軟件產品生命歷程的一個快照。 所有這些快照的集合,記錄了軟件產品從孕育出生到長大成熟的整個生命發展歷程。這期間,作爲軟件生產過程中的主體,人(團隊)起到了重要作用,是人(團隊)憑藉其無比的智慧和經驗,始終“呵護”着軟件產品,完成其從“童年”、“少年”、“青年”到“成年”的成長曆程,處理各種突發事件。 由此可見,軟件交付項目最基本的要素,就是作爲項目主體的人,及其執行的各種活動和產生的各種工件。整個軟件交付生命週期正是在這種以人爲主體,以活動和工件爲核心的循環往復中,不斷向滿足利益相關方需求的軟件產品靠近。 因此,管理好了活動和工件這兩個部分,整個軟件交付生命週期就會變得清楚明白,團隊協作的力量就會慢慢綻放。這也回答了爲什麼近些年關注軟件交付活動管理的需求管理、變更管理和關注工件管理的配置管理工具會如此盛行,成爲很多企業進行過程改進工作的首選。 因此,提高軟件交付團隊的需求管理、配置管理和變更管理能力,是軟件交付項目管理面臨的首要挑戰。 1.2 軟件交付項目進度估計的挑戰 如何評估軟件交付項目的進度,是軟件交付項目管理面臨的又一大挑戰。對於土木工程項目來說,項目進度一目瞭然。然而,如果採用傳統的瀑布模型,在軟件交付項目的大多數里程碑,項目的交付物只是一堆文檔或代碼,它們就是項目管理團隊賴以評估項目進度的唯一依據,進度評估更多地靠主觀估計,而不是客觀度量,無法客觀考慮項目的不確定性、風險和質量偏差導致的進度延期,其結果並不可靠。 因此,在整個軟件交付生命週期中,項目計劃始終是動態的、不斷向目標演進的路標。出現偏差然後修正,這一循環貫穿了項目執行的始終。在採用傳統瀑布模型的軟件交付項目中,整個項目的風險是在系統集成階段才迅速降低,而系統集成階段卻發生在整個生命週期的後端,從而造成項目風險和不確定性在整個生命週期中難以快速降低,項目進度難以控制。因此,常常可以聽到人們笑談軟件開發的“二八”原則,即當軟件項目完成80%時,剩下的20%的工作量往往會消耗掉80%的時間。出現這一現象的根本原因,正是軟件項目進度難以估算。 1.3 軟件交付項目需求不斷變更帶來的挑戰 軟件交付項目的另外一個重大挑戰來源於軟件需求的善變,這是快速發展的業務環境的特產,也是激烈的市場競爭環境的必然結果。對於軟件項目來說,項目範圍並不是一個需求文檔或合約,而是一個持續談判和變更的過程。 軟件的特殊形態決定了在軟件發佈之前,軟件本身一般是看不到、摸不着的,沒有人知道未來的軟件到底是什麼樣子。因此,在項目開始階段,要想把軟件需求說得清清楚楚,基本上是不可能的事情。 而且,需求溝通本身就是一個啓發的過程,在用戶還沒看到可運行的軟件之前,本身也很可能不清楚自己的真實需求。而一旦用戶看到了實際可運行的軟件,人類創造性的思維能力就彷彿瞬間開足馬力,新的想法和要求不斷奔涌。 2 敏捷開發和項目管理方法 爲解決軟件交付項目管理面臨的挑戰,軟件工程領域催生了敏捷開發方法。2008年,IBMRational推出大規模敏捷(Agile@Scale)最佳實踐,明確指出了以迭代式軟件開發、兩級項目規劃、整體團隊協作、持續集成和測試驅動開發作爲敏捷過程的核心最佳實踐,無縫集成IBMRational最新推出的協作的應用生命週期管理平臺。這一最佳實踐不但全面地詮釋了敏捷開發的實施方法,還能夠幫助團隊快速建立敏捷項目管理能力,從容應對軟件開發項目所面臨的各種挑戰。 面對軟件交付項目計劃的動態演進和進度管理難題,IBM敏捷最佳實踐進一步強化了著名的迭代式開發,它把整個軟件開發過程分解成更可控、可預測的迭代,每個迭代交付可運行的軟件發佈,從而使整個軟件團隊能夠向利益相關方迭代地展示價值,獲取用戶反饋,持續改進產品,也使得項目管理團隊能夠使用客觀的、可運行的發佈來度量項目的進度,而不是基於主觀的對代碼和文檔的評估。另外,由項目漸進明細的特徵所決定,整個項目的項目計劃本身也應該是漸進明細的。 因此,敏捷開發推薦的另一個最佳實踐是“兩級項目規劃”,類似於項目管理知識體系中提及的滾動規劃,它包括項目級粗線條的不斷調整的發佈計劃和迭代細化的、可執行的迭代計劃。在項目執行過程中,細化的迭代計劃基本保持穩定不變,用於指導整個團隊快速執行,交付所需的產品需求和特性;而粗線條的發佈計劃可以不斷被修正,使其越來越接近通往項目目標的可執行軌跡。通過“兩級項目規劃”最佳實踐,使得整個軟件開發團隊始終圍繞客戶需求,動態調整項目計劃,實現變更和快速交付業務價值之間的有效平衡。 使用迭代式軟件開發帶給軟件開發團隊的一個新挑戰,就是如何能夠在每個迭代都快速交付出可運行的發佈,從而真實地反映項目的進度狀況。基於這一挑戰,IBM推出了“持續集成”和“每日構建”兩個最佳實踐。“持續集成”通過進行更頻繁的軟件集成,更早地發現和反饋錯誤、降低風險,使得交付的軟件在用戶的體驗和反饋中不斷改進、茁壯成長,從而使整個軟件交付過程變得更加可控和可預測。而“每日構建”就是通過每天進行軟件最新版本的構建,確保開發團隊每天的工作成果都能夠編譯和鏈接通過,從而確保工作的基本質量,提高團隊的質量意識。 它就像軟件交付的脈搏,每一次跳動都會產生出一個可度量的結果,即軟件的一個版本;它又像是一個生命的指示器,書寫着“生命體”(項目)的成長過程。而隨着“脈搏的跳動”,軟件不斷地發展成熟,項目一步一步地接近項目目標。 同時,爲了更好地應對變更,滿足不斷變化的業務發展要求,IBM還推出了“整體團隊協作(WholeTeam)”最佳實踐,它更加強調用戶參與,強調建立團隊的自適應、可持續的開發速度和自組織能力,通過團隊的緊密協作,快速應對業務需求的變更;通過使整個軟件開發團隊更加關注客戶需求變化,幫助客戶更大地提交業務價值。通過“整體團隊協作”最佳實踐,確保團隊圍繞着如何實現迭代目標、如何快速交付業務結果進行自組織開發,保證團隊的整體績效。在自組織團隊中,工作分配模式從由項目經理分配(推)向團隊成員主動承擔(拉)的模式轉變,相關決策也是由最接近第一線的人進行。 每個團隊成員都是工作的負責人,個人的成功就是團隊的成功,反之亦然。通過前面的討論,可以發現,IBM敏捷最佳實踐能夠有效克服軟件交付項目管理的挑戰,幫助實現敏捷開發項目的管理。基於這些敏捷最佳實踐,業界也產生了很多的敏捷項目管理方法,Scrum和OpenUP就是其中最著名的兩種。 配合IBM敏捷最佳實踐,2008年,IBM還推出了創新的軟件交付團隊協作平臺——Jazz平臺,它能夠幫助敏捷項目團隊快速實現敏捷的軟件交付項目管理。 3 IBM Jazz平臺與敏捷的軟件交付項目管理 3.1 IBM Jazz平臺簡介 順應全球化趨勢和Web2.0時代的到來,IBMRational推出了創新的軟件交付協作平臺——Jazz平臺,它是IBMRational精心設計,專門面向全球化、跨地域團隊開發的軟件交付協作平臺,能夠改變人們協作構建軟件的方式,提高軟件交付的自動化、協作性和透明度,它的出現標誌了軟件交付2.0時代的到來。 Jazz平臺基於Internet,提供了統一的軟件交付平臺,徹底屏蔽了地域的概念,爲全球化軟件協作交付團隊提供了完美解決方案;它基於組件的架構模式,使軟件交付生命週期各種能力以服務組件的形式存在,能夠無縫地集成軟件生命週期各個階段的任務;它是基於開放的國際標準,通過社區驅動的軟件開發模式創造的一個開放、可擴展、高效的協作開發平臺。基於這一技術,企業可以自由選擇各種組件化的生命週期管理產品和流程,以服務組件的方式,通過Jazz平臺提供的統一企業服務總線和數據管理能力,組成了靈活的、可擴展的企業軟件交付生產線。 客戶可以根據自身發展需要,替換、升級某個服務組件,同時避免影響交付平臺的其他部分,這能有效地保護客戶投資。 3.2 敏捷的軟件交付項目管理工具——IBM Ra t i o n a l Te amConcert IBM Rational Team Concert(簡稱RTC)是IBM基於Jazz平臺推出的第一款商業產品,這是一個協作式的軟件開發平臺(圖5)。Jazz平臺的創新技術賦予RTC集中的數據存儲和協作服務,在此基礎上,RTC完美地實現了配置管理、工作項管理、構建管理能力,能夠有效支持“持續集成”和“每日構建”最佳實踐。同時,基於Jazz平臺的流程和團隊感知能力以及各種基於Web2.0的創新技術,RTC爲整個軟件交付項目團隊提供了無障礙溝通協作和報告能力,實現了整體團隊最佳實踐;基於內置的敏捷開發方法(包括Scrum、OpenUP等),RTC提供了兩級項目規劃和項目自動化執行跟蹤能力,實現了迭代式開發和“兩級項目規劃”最佳實踐。基於Jazz平臺的協作能力,RTC爲整個軟件交付團隊提供了一個沒有地域限制的虛擬世界的舞臺,使團隊成員無論身在何處,都像身處同一舞臺,在其正在工作的上下文環境中進行實時地協作,特別是當他們處在一個跨地域的工作環境中時,實現彼此的密切協作。 (1)項目啓動。使用RTC工作項管理功能,項目經理能夠方便地完成項目需求定義和收集,爲團隊提供統一的需求列表或產品訂單(ProductBacklog)。 (2)項目規劃。利用RTC的項目規劃能力,項目經理能夠快速完成項目級粗線條的項目規劃或發佈規劃和迭代級詳細的迭代計劃。 (3)項目執行。通過內置的敏捷開發過程或其他定製過程的動態執行,RTC可以指揮整個項目團隊密切協作,高效工作。 在RTC中,迭代計劃中的每個任務都是一個工作項,項目經理可以基於預定義的工作流,將其分配給指定的團隊成員,實現工作任務的自動流轉。同時,開發人員基於各種工作項進行開發活動,生成的代碼和文檔可以直接通過RTC內置的配置管理功能存入配置庫,實現完整的配置變更管理;通過RTC內置的構建管理功能,完成代碼的構建、編譯鏈接和發佈,實現需求的全生命週期跟蹤和監控。 (4)項目監控。通過各種Web2.0的創新技術的應用,項目經理和團隊中的每個人都能夠非常方便地瞭解整個開發團隊的組織結構,瞭解團隊中每個人的角色和職責分工,實時瞭解團隊的工作進度和工作狀況;通過Feeds、Wiki,Blogs以及即時通信等服務,當存儲庫中被關心的對象數據變化後(如:源代碼變更、工作項狀態發生變化等),Feeds服務會主動根據訂閱記錄進行廣播,讓所有相關開發人員能夠在最短的時間內掌握最新動態,實現高效協作溝通和響應。 (5)項目收尾:使用RTC,軟件交付團隊可以把團隊經驗和教訓反映到項目管理的過程定義中,同時,通過將其導出成爲新的模板,供其他項目團隊使用,實現經驗教訓的固化和重用。使用RTC,敏捷交付項目團隊實現了集成的源代碼控制、工作項管理和構建管理等,提供了整個開發生命週期的自動化追蹤和審計能力。項目經理則可以直接從實際工作中彙總出來的準確的項目健康信息,準確地、自動地捕獲項目數據,自動地生成各種所需項目報告。 4 結語 “物競天擇,適者生存”,大自然的基本定律同樣決定了軟件交付項目管理的發展歷程。適應快速的業務變化和企業全球化競爭要求,項目管理者在不斷的積極進取中,傳承、創新、演繹着敏捷項目管理長青的故事。 在順應趨勢,追求敏捷項目管理能力的征程上,IBM敏捷最佳實踐和Jazz平臺,爲敏捷項目管理團隊提供了全面的方法指南和協作平臺支撐,能夠幫助團隊快速實現真正敏捷的項目管理。
發佈了48 篇原創文章 · 獲贊 14 · 訪問量 49萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章