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