前言:想要寫出一篇引人入勝的文章?我們特意為您整理了軟件開發敏捷管理方法研究范文,希望能給你帶來靈感和參考,敬請閱讀。
摘要:21世紀是計算機崛起和發展迅速的時代,面對著用戶多樣化、個性化的需求,軟件開發必須積極適應這一變化,從項目、技術等多方面靈活應對,以提高軟件的適應性,降低開發成本。傳統的軟件開發理論已經失去了作用,而敏捷管理方法為這一問題更好地解決提供了有益的指導,它能夠有效地提高軟件的質量,更好地提升用戶的滿意度。
關鍵詞:敏捷管理;軟件開發;應用
隨著信息技術的發展,用戶對軟件的需求也逐漸提高,這就對軟件開發者提出了更高的要求。由于傳統軟件開發理論的不足,軟件開發一般耗時較長,用戶從中的收益較小,而敏捷管理方法以實踐為基礎,為軟件開發提供了新的思路,充分提高了軟件的適應性,有效地滿足了用戶的需求。
一、敏捷管理方法概述
軟件開發的難度隨著用戶的需求在逐步提高,市場競爭的激烈化也刺激著軟件開發者必須使用新的軟件工程管理理論。目前,敏捷管理方法包括極限編程、自適應軟件開發等,這些方法都以用戶的需求為中心,減少了所需要的文檔,提高了軟件的靈活性。敏捷軟件開發主要有一下幾條原則:要盡早、持續地交付有價值的軟件供用戶使用;即使到了開發后期也能夠滿足客戶的需求,為客戶的利益著想;經常性的交付可工作的軟件;在軟件開發期間,開發人員要和業務人員積極溝通;為軟件開發者提供他們所需要的環境,給予充足的支持;在開發團隊內部,要面對面的交流,以提高信息傳遞效率;軟件開發必須保證可持續的、恒定的開發速度;積極關注技能的創新;從最簡的工作開設等。這些原則涵蓋了敏捷管理的核心思想,顛覆了傳統的重載軟件的過程,顯示了以人為本、以技術為支持、注重實效的思想,國內外的實踐也證明了敏捷管理方法在軟件開發中的重要作用。與傳統的管理方法比較,敏捷管理主要有以下幾個優點:
①較強的靈活性。敏捷管理方法較為靈活,以現有的事物為基本管理職責,由市場驅動競爭力的儲備,能夠有效地滿足用戶需求的變化。
②錯誤率低。敏捷管理方法將設計工作與編碼工作融合到了一起,能夠及時發現錯誤。
③項目風險較低。敏捷管理方法提高了有價值、可運行軟件的速度,使用戶能夠盡早地使用軟件。
④能夠提高人員的能動性。敏捷管理為員工提供了充足的資源,對客戶的個性需求有較強的應對能力。⑤降低了成本。敏捷管理方法降低了文檔的維護成本,面對面的信息交流也較低了交流成本,同時輕快開發過程也降低了時間成本。
二、敏捷管理方法在軟件開發中的應用
1、團隊管理
軟件開發不是由個人單槍匹馬就能夠完成的,它需要團隊的合作,因此,“以人為本”是團隊管理的基本原則。團隊管理需要以項目為中心,為開發人員提供必要的環境和技術支持,同時還要給予積極的鼓勵。一方面,要“恩威并濟”。團隊管理需要融入一定的紀律,保證軟件開發的標準性,同時也要容忍一定的個體變化。在傳統的管理方法中,嚴格的紀律保證了很多行業的高生產力,但在軟件開發中,如果項目負責人單從自身的角度出發制定嚴格的標準,而忽視了員工的獨特思想,則很可能造成很多不利的影響。另一方面,促進團隊合作。敏捷軟件開發需要促進人與和人之間、小組和小組之間的合作,不再以命令的形式調節他們之間的關系,而是以互信為基礎。第三,提高開發人員的榮譽感。團隊管理的困難之一在于提供適應性強的獎勵機制,如果單純以獎金的形式進行獎勵,長時間也會影響團隊的動力,因此,需要以更好的形式激勵團隊。為員工提供一定的榮譽感,能夠讓員工真實感受到自己勞動成果的價值,能夠更加有效地激發員工的主動性、積極性和創造性。第四,提高信息的反饋效率。敏捷管理方法較為靈活,但評估起來較為困難。國內外的實踐表明,在管理過程中實施積極的、經常性的反饋,并認真分析評估反饋結果能夠及時地、清楚地了解團隊的精神狀態和項目進展情況,從而為項目負責人優化管理方法提供了科學的參考。反饋方法較多,如檢測用戶故事的完成數、驗收測試通過率等,另外也包括每周的評估等。啟動團隊是軟件項目開發的重要步驟,每一個團隊的啟動都需要一定的時間和過程,是工作關系的構建,只有做好啟動團隊工作才能夠有效地促進項目開發目標的實現,確定團隊和員工的工作目標。一般的,從組建團隊開始,調查員工的基本情況,如工作能力、人際關系等,然后分配責任,最后在啟動項目前,召開團隊會議,制定團隊目標、做動員等。
2、開發管理
在敏捷軟件管理中,多以迭代開發為主,但對管理人員的缺乏可操作性的指導,同時也缺少開發方法的闡述,缺少了單元測試、驗收測試。由于項目團隊的規模、人員構成、項目目標等方面的不同,軟件開發項目沒有統一的開發策略,只有結合具體情況制定開發策略才能夠滿足實際的需要。敏捷管理方法指導下的開發策略需要注意以下幾個問題:第一,努力實現軟件的可運行。從階段性設計看,可運行的軟件代表了團隊的開發成果,為團隊帶來了成就感和信心;從用戶的角度出發,只有給用戶展示了可運行的軟件才能夠讓他們真實地看到自己的需求是否得到了滿足。第二,制定周密的開發計劃。傳統的軟件開發在項目進度方面的掌握程度較低,系統正式完成的時間不確定,因此,敏捷開發要求將開發進度可衡量化,將每一個任務制定一定的點數,將所有任務的點數相加就是本次開發所需要的工作量,用所完成的任務點數比上總任務點數就是開發進度百分比。第三,盡量減少文檔的數量。在開發時要根據實際需要增減文檔的制定,降低項目的風險。第四,加強交流。敏捷開發要求開發成員之間要加強交流,保證數據采集、團隊合作、軟件設計的效率。第五,積極考慮客戶的需要。敏捷開發要積極滿足用戶的需要,讓用戶直接參與軟件開發的過程中,讓客戶親臨現場,與其探討軟件開發中的各種問題,提高軟件的實用性。
3、需求管理
需求管理以掌握用戶對軟件的需求為目的,是項目啟動的第一步,是一支指揮棒,以靈活的變動將“用戶故事”和“現場客戶”結合起來,表達了用戶真正的、迫切的需求?!坝脩艄适隆笔且环N較為簡單的搜集客戶需求的新方式,獨立表達了用戶的需求,用戶可以隨時刪除也可以隨時加入,是一種概述性的描述;“現場客戶”是指讓用戶代表親臨開發現場給予指導。用戶故事與現場客戶兩種方法的結合,讓客戶對團隊開發軟件的細節有更加深入地了解,同時也能夠給予必要的指導,節省了交流時間,提高了開發的效率。
4、規劃
在對用戶故事進行輕重排列后,從業務和技術方面逐一制定實現計劃。在業務方面要積極考慮業務價值加大的用戶故事;在技術方面,技術小組從技術難度及風險的角度出發,劃分功能區,要將所存在的問題說明給客戶,讓客戶做出選擇。
5、迭代規劃
敏捷開發要求盡可能為客戶提供可工作的軟件,因此,要盡量縮短迭代的周期,一般為1~4周。迭代的優先級由技術組確定,但其價值又客戶決定。在第一次迭代中,小組要建立基本的開發設施,另外,要避免技術迭代,減少耗時。對團隊開發來說,在歷經幾個月甚至幾年的時間才有所突破,每一次的迭代都是一次成就,是一種較好地員工激勵形式。
6、任務分配
在客戶將用戶故事提出后,開發團隊商討如何分界為幾個任務,然后分配給開發人員。第一步,客戶提出用戶故事。客戶將用戶故事宣布告知給開發團隊,團隊成員可以提出問題,以充分理解客戶故事。第二,討論任務。開發團隊在討論過后將用戶故事分成多個任務,做好接受任務的準備。第三,選定任務。團隊成員選定合適的任務,做好估算工作。
7、軟件設計管理
在敏捷設計中,迭代開發的過程要力求減少文檔,另外,敏捷管理要努力實現全局視圖和軟件源代碼一起演化,從當前的系統需求出發構建所需的基礎結構,保持結構的簡潔、干凈,病富有表現力,同時還要提高其靈活性。在分配給開發人員任務之后,要測試代碼,提高源代碼的質量,讓開發人員有更加充足的信心,同時,測試也能夠迫使程序員從不同的角度觀察所要編寫的程序。軟件開發都是由結對的程序員使用同一臺電腦實現的,由一位出入代碼,另一外觀察代碼及其需要改進的地方,兩者可以交換角色,最后所生成的代碼成果由兩人共享。結對關系每天至少要改變一次,以減少兩者的壓力,提高編碼質量,同時也能夠促進他們編碼技術的提高。
8、跟蹤
跟蹤能夠讓程序員、客戶及管理者明確工作進度、質量等問題,同時也能夠發現潛在的問題等。一方面,要跟蹤資源,即計劃和實際的對比、團隊成員的人數、客戶參與次數、測試人員數量、參與開發的計算機數量等,這些是軟件開發的必要條件。另一方面,跟蹤范圍,即跟蹤故事的變化情況。第三,跟蹤質量,即測試表所顯示的通過測試數及未通過測試數。第四,跟蹤團隊成員,即觀察開發成員的問題、開發成員之間人際關系問題,看其是否全身心地投入等。
9、測試驗收管理
當一個迭代完成后,用戶會與團隊商議下一步的需求。測試驗收過程中,越早的發現問題,就能夠縮短程序投入運行所需的時間,期間,客戶需要提供驗收測試,所提供的測試越多,項目進展速度就越快,價值也就越高??蛻艨梢酝ㄟ^制定的形式采集所需要的素材,通過自動的腳本根據客戶的需求運轉。一旦某項測試通過需求,則決不允許該測試再次失敗,隨著測試的不斷累積會形成一個測試集合,它能夠測試系統的運行,一旦測試失敗,系統的創建也就失敗。因此,要保證需求的實現,避免其遭到破壞。
三、結語
敏捷管理方法滲透于整個軟件開發過程中,是一個長期的信息構建原則,而不是某一個獨立的事件它,適應了復雜軟件開發的要求,同時也適應了軟件技術發展的需要。隨著客戶對軟件要求的不斷提高,敏捷開發適應了復雜的環境,并且盡可能地保持軟件開發的簡單化和系統化,適合團隊型的開發項目,它能夠及時反饋信息,有效提高客戶的滿意度,也能夠保證系統的質量。
參考文獻:
[1]沈成莉.敏捷項目管理在軟件開發中的實踐應用[D].復旦大學2009
[2]唐俐威.軟件開發的敏捷管理方法應用研究[D].哈爾濱工業大學2006
[3]向佐龍.敏捷管理方法在軟件開發中的應用研究[D].武漢理工大學2007
作者:張斯楠 單位:渤海大學