国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

Scrum敏捷方法在快速開發(fā)中的實踐及改進

2012-04-29 22:54:41劉慧玲王申申陳曉軍
電腦知識與技術(shù) 2012年21期

劉慧玲 王申申 陳曉軍

摘要:敏捷開發(fā)是一種以人為核心、迭代、循序漸進的開發(fā)方法,是為了解決項目的復(fù)雜性,以最快最科學(xué)的方式實現(xiàn)需求的開發(fā)方式。敏捷開發(fā)強調(diào)產(chǎn)品質(zhì)量,更適合于開發(fā)進度不是很緊迫的環(huán)境。但是國內(nèi)的軟件項目開發(fā)往往更注重于開發(fā)周期。該文介紹了一種敏捷方法Scrum,通過在實際項目中的應(yīng)用經(jīng)驗,針對快速開發(fā)環(huán)境,做出了一些改進。

關(guān)鍵詞:敏捷開發(fā);Scrum;快速開發(fā)

中圖分類號:TP312文獻標識碼:A文章編號:1009-3044(2012)21-5168-02

在當前的軟件項目開發(fā)中,敏捷方法被大量應(yīng)用。敏捷的優(yōu)點不斷的被發(fā)掘。但是什么是真正的敏捷方法也在不斷的爭論中。敏捷是一個思想,而不是過程。敏捷宣言中只提到了四大主題思想和十二項原則。由此引出的敏捷方法有很多,像極限編程,特征驅(qū)動開發(fā),精益開發(fā),水晶開發(fā),動態(tài)系統(tǒng)開發(fā)方法,Scrum等,其中的Scrum方法在國內(nèi)應(yīng)用的最為廣泛。

1 Scrum介紹

Scrum不是一個技術(shù)或流程,而是一個開發(fā)框架。Scrum將開發(fā)過程分為多個Sprint周期,每個Sprint代表一個2-4周的開發(fā)周期。在項目開始前,將項目分成很多細小的任務(wù)。所有開發(fā)者一起對這些任務(wù)評估。每一項的任務(wù)的開發(fā)時間取所有人評估的中間值。然后根據(jù)任務(wù)的優(yōu)先級分配到不同的Sprint中。每一個Sprint包含完整的設(shè)計,開發(fā),測試,發(fā)布環(huán)節(jié)。當一個Sprint的任務(wù)不能完成時,必須對剩下的任務(wù)重新規(guī)劃。在Sprint的開發(fā)過程中,每天開發(fā)團隊都應(yīng)舉行一個簡短的進度會議(Stand up meet ing)。團隊中的每個成員匯報當天的工作進展,以及遇到的問題。

這個會議應(yīng)該盡可能簡短,不能開成問題討論會。在每個Sprint結(jié)束后,需要對這個Sprint進行回顧。主要總結(jié)4點:1)什么做的好?2)學(xué)到了什么?3)有哪些不足?4)下一次哪些要做的更好?在進行完所有環(huán)節(jié)后,進入下一個Sprint。

2 Scrum實際應(yīng)用中的問題

目前,很多公司都采用或正在嘗試Scrum方法,Scrum的效果毋庸置疑。但是當敏捷方法在國內(nèi)一路高歌猛進的同時,也有些不同的聲音。有人認為,敏捷開發(fā)對開發(fā)者的素質(zhì)要求很高,對產(chǎn)品質(zhì)量要求很高,但是國內(nèi)軟件開發(fā)對開發(fā)周期更加關(guān)注,敏捷不適合國情。國內(nèi)一個軟件項目定計劃時,開發(fā)時間總是定的不足,開發(fā)者要經(jīng)常性的加班。在這種情況下,敏捷開發(fā)往往會被肢解,裁剪或簡化一些保證質(zhì)量的流程,如code review,unit test。這樣違背了敏捷的基本原則,已經(jīng)不是敏捷方法了。敏捷以持續(xù)交付的方式來保證客戶的需求被正確實現(xiàn)。筆者認為這是敏捷最重要的部分,也是當前被廣泛接受的開發(fā)模式。敏捷最重要的是概念,而不是要求你必須尊循它的所有原則。所以可以根據(jù)項目的實際情況對開發(fā)流程適度調(diào)整。筆者以多年的敏捷項目開發(fā)經(jīng)驗,對Scrum方法進行了改進,使之更適合于開發(fā)周期短的項目。

3 Scrum方法的改進

3.1漸進細化

敏捷開發(fā)將一個項目周期拆分成許多個小的迭代周期。每個迭代周期都包括需求,設(shè)計,開發(fā),測試,發(fā)布所有環(huán)節(jié)。由于需求的不斷變更,這種迭代可能產(chǎn)生重復(fù)的,無效的勞動。例如,上個周期完成的一個功能,這個周期中可能被移除。采用逐漸細化的方法可以減少迭代產(chǎn)生的無效勞動。

1)Code Review從大到小

傳統(tǒng)的開發(fā)模式在設(shè)計階段需要有相對完整的需求和相當長的時間,必須考慮到方方面面。

敏捷開發(fā)不主張高度細化和完整的設(shè)計,提倡做出一個大粒度的框架性設(shè)計,一般指架構(gòu)設(shè)計或者系統(tǒng)設(shè)計,避免在以后的重構(gòu)中發(fā)生架構(gòu)級別的變化,然后在逐步實現(xiàn)的過程中逐漸深入展開、細化。敏捷提倡的是持續(xù)重構(gòu),所以要做大量的Code Review來保證程序質(zhì)量。通過實踐經(jīng)驗,對Code Review的范圍做適當調(diào)整。在項目初期的迭代周期中,Code Review主要關(guān)注架構(gòu)設(shè)計,模塊接口。隨著迭代周期的增加,逐漸擴展到業(yè)務(wù)邏輯,界面行為,具體代碼。這種方式可以減少由需求變更帶來的影響。

2)測試粒度由粗到細

Scrum推崇測試驅(qū)動。然而在實際應(yīng)用中,能完全做到測試驅(qū)動的不多。但是足夠的測試用例是產(chǎn)品質(zhì)量的保障。在初期的迭代周期中,測試用例覆蓋在功能的主要測試分支,并不是覆蓋所有分支。在后期迭代中(需求基本確定,主要是界面需求確定后),逐漸完善所有的測試分支。這種延后測試,不僅可以減少由需求變動帶來的測試用例維護問題,而且增加了Code Review效果。當開發(fā)者寫測試用例時,相當于再次review代碼。這時更容易發(fā)現(xiàn)當時未考慮到的問題。

3.2重視必要的文檔

敏捷開發(fā)強調(diào)溝通的重要性,強調(diào)源代碼就是設(shè)計,而輕冗余文檔,但敏捷開發(fā)并不意味著無文檔。實際是,源代碼清單本身就是軟件開發(fā)所產(chǎn)生的最終文檔。敏捷開發(fā)所排斥的是軟件設(shè)計、研發(fā)過程中過多的冗余文檔。這里強調(diào)的是開發(fā)中將需要共享的知識形成文檔。尤其是在模塊化開發(fā)的項目中,每個人對于其他人開發(fā)的模塊并不熟悉,這時知識的共享就更重要。

3.3持續(xù)重構(gòu)

敏捷開發(fā)以重構(gòu)為基礎(chǔ),時時刻刻處于重構(gòu)過程中。所以在每個迭代周期必須留出足夠的重構(gòu)時間,這是保證產(chǎn)品質(zhì)量不會因需求的頻繁改動而變差的重要措施。重構(gòu)不等于重做,它必須是可控的。當項目進行到后期時,重構(gòu)的范圍應(yīng)盡可能小,必須考慮到重構(gòu)的風(fēng)險。重構(gòu)必須以足夠的測試為保障。

4結(jié)束語

Scrum是一個框架,不是流程,不能完全照搬。必須通過實踐-總結(jié)-實踐的方式,選擇適合自己的方法。敏捷開發(fā)強調(diào)的是以人為本,這意味著,需要根據(jù)開發(fā)團隊的素質(zhì),來選擇合適的方法。Scrum給了開發(fā)團隊足夠的發(fā)揮空間,只需要遵守基本的敏捷原則,這也是Scrum能廣泛應(yīng)用的原因。

參考文獻:

[1]楊帆,徐俊剛.一種改進的Scrum敏捷軟件開發(fā)方法[J].電子技術(shù),2011(9).

[2]韓鵬.小規(guī)模團隊的敏捷開發(fā)研究[J].軟件工程師,2011(7).

离岛区| 峨眉山市| 南木林县| 双城市| 灌阳县| 揭阳市| 历史| 济源市| 香格里拉县| 额济纳旗| 乌鲁木齐市| 耒阳市| 新安县| 新干县| 惠来县| 韶关市| 三亚市| 修武县| 寿宁县| 晋江市| 原平市| 南华县| 虞城县| 遵化市| 五华县| 洪洞县| 湟中县| 道孚县| 上蔡县| 阜康市| 江都市| 新野县| 开江县| 道孚县| 海南省| 锦屏县| 印江| 马公市| 江安县| 龙口市| 延寿县|