再談敏捷開發(fā) 從成本到收益的優(yōu)化
敏捷開發(fā)的種種優(yōu)點(diǎn)時(shí)常被項(xiàng)目經(jīng)理提及,但真正在項(xiàng)目中采用敏捷開發(fā)的卻很少。這里分析敏捷開發(fā)的優(yōu)點(diǎn),將告訴您采用敏捷的項(xiàng)目如何從成本到收益得到好處。
高效地開發(fā)出有品質(zhì)的軟件對各個行業(yè)的企業(yè)都是至關(guān)重要的,對最終用戶尤為重要。軟件企業(yè)不再能忍受18個月的產(chǎn)品周期,它們正在尋求各種方式變得更加靈活和多變以適應(yīng)不斷變化的市場需求。
盡管我們需要一個高效的軟件開發(fā)計(jì)劃,但目前多數(shù)的開發(fā)項(xiàng)目仍然在進(jìn)行中并且按傳統(tǒng)的模式要求事先定義下所有的需求,同時(shí)這些需求在日后幾乎不允許改變。問題是按這種方式多數(shù)客戶都不能準(zhǔn)確定義出它們的需求。夾雜著技術(shù)進(jìn)步帶來的變化,結(jié)果是令人氣餒的。美國的一家研究公司Standish Group發(fā)現(xiàn)百分之九十的軟件項(xiàng)目延期,百分之六十六的可以認(rèn)為失敗,以及百分之三十的完全報(bào)廢。
敏捷開發(fā)是一個使公司能夠更快速地提交軟件產(chǎn)品的開發(fā)過程方法。 它一個漸進(jìn)的,協(xié)作的方法,其目標(biāo)是有效及時(shí)地生產(chǎn)出高質(zhì)量的軟件。
在敏捷開發(fā)的初期,它適用于較小的范圍和相對簡單的商業(yè)應(yīng)用項(xiàng)目。 如今,局面已發(fā)生了顯著變化。 當(dāng)公司想要把敏捷開發(fā)應(yīng)用在更廣泛的項(xiàng)目上, 那么敏捷開發(fā)就需要處理當(dāng)前軟件開發(fā)組織所面臨的大量業(yè)務(wù)、結(jié)構(gòu)、和技術(shù)的復(fù)雜問題。
正確的分析出轉(zhuǎn)向敏捷的代價(jià),你必須權(quán)衡利弊,同時(shí)開了開發(fā)風(fēng)險(xiǎn)的減少。例如,實(shí)施敏捷方法需要改變工程師花費(fèi)時(shí)間的方式和他們?nèi)绾瓮瓿伤械能浖_發(fā)活動。這里強(qiáng)調(diào)一些進(jìn)行轉(zhuǎn)換應(yīng)該關(guān)注的要點(diǎn)。
◆個人和交互(針對流程和工具)
◆工作軟件(針對全面文檔)
◆客戶的合作(針對合同談判)
◆響應(yīng)變化(針對遵循計(jì)劃)
經(jīng)理們必須考慮他們扮演的角色。多數(shù)敏捷精益開發(fā)經(jīng)理使用更加放手的方式。他們讓隊(duì)員在特定的方向作先鋒從而培育出成功轉(zhuǎn)向敏捷精益開發(fā)的環(huán)境所需要的。
敏捷增加了團(tuán)結(jié)的軟件交付效率,從而轉(zhuǎn)化為客戶滿意度和收益。效率可以消除在特定活動上的浪費(fèi),它可能也許不能對大的目標(biāo)產(chǎn)生影響。但是,效率不會告訴你正在做的事情是否正確,或者告訴你正確的做事順序。效率更重要的是它幫助你實(shí)現(xiàn)目標(biāo)。
和其它重要的敏捷開發(fā)原則一樣的一條是開發(fā)階段的客戶介入,如同前面提到過的,持續(xù)的團(tuán)隊(duì)協(xié)作。相關(guān)人員關(guān)于可工作代碼的反饋和測試驅(qū)動開發(fā)對成功推出一個項(xiàng)目至關(guān)重要。相關(guān)人員包括業(yè)務(wù)相關(guān)者、軟件使用人、客戶支持、和其它企業(yè)IT部門人員,需要他們盡早的多多介入到敏捷項(xiàng)目整個開發(fā)周期中,積極參與建模和測試,有時(shí)甚至是參與開發(fā)。這一層次的介入使得他們能夠看到軟件開發(fā)的內(nèi)部工作。這樣促使開發(fā)人員關(guān)注于客戶的優(yōu)先級上而不是個人的優(yōu)先級,這樣可以提高產(chǎn)品的可用性。
這些敏捷開發(fā)指導(dǎo)方針為企業(yè)提供了一個基礎(chǔ),一個使企業(yè)知道如何快速響應(yīng)并準(zhǔn)備好應(yīng)對需求變化的基礎(chǔ)。例如使用Scrum(混戰(zhàn):一個敏捷開發(fā)借用橄欖球運(yùn)動中的術(shù)語),一個每天舉行的“混戰(zhàn)”(也就是會議)邀請所有項(xiàng)目相關(guān)人員。 每天開發(fā)人員回答三個問題:
◆從昨天到今天你完成了什么?
◆從今天到明天你打算做什么?
◆你遇到什么問題使你無法完成計(jì)劃的目標(biāo)?
這個每日例會要求每個人清楚說明他所做的事情,這樣其它隊(duì)員可以在轉(zhuǎn)為災(zāi)難之前指出錯誤和不兼容。它也可以確保在緊急情況出現(xiàn)時(shí)有人可以作出及時(shí)補(bǔ)救。
敏捷開發(fā)常常被人批評為是過于隨意的,這是不符合事實(shí)的。溝通交流和規(guī)則是敏捷開發(fā)的兩個基本組成部分。敏捷***的驅(qū)動原則是定期提交可工作的軟件。提交周期越短,對規(guī)則的要求越高 - 例如,每次迭代都必須以可工作軟件形式提供具體的可以度量的商業(yè)價(jià)值。
【編輯推薦】