掃盲——敏捷開發(fā) Agile development 之 Scrum開發(fā)

什么是敏捷開發(fā)?

敏捷開發(fā)(Agile Development)是一種以人為核心、迭代、循序漸進(jìn)的開發(fā)方法。在敏捷開發(fā)中,軟件項(xiàng)目在構(gòu)建初期被切分成多個子項(xiàng)目,各個子項(xiàng)目的成果都經(jīng)過測試,具備可視、可集成和可運(yùn)行使用的特征。(把一個大項(xiàng)目分為多個相互聯(lián)系,但也可獨(dú)立運(yùn)行的小項(xiàng)目,并分別完成,在此過程中軟件一直處于可使用狀態(tài)。)

主要目的:降低需求變化的成本

開發(fā)流程:編寫用戶案例,架構(gòu)規(guī)范,實(shí)施規(guī)劃,迭代計(jì)劃,代碼開發(fā),單元測試,驗(yàn)收測試等等。

原則和方法:迭代式開發(fā)。增量交付。開發(fā)團(tuán)隊(duì)和用戶反饋推動產(chǎn)品開發(fā)。持續(xù)集成。團(tuán)隊(duì)自我管理。

核心做法:小規(guī)模,頻繁的版本發(fā)布,短迭代周期。測試驅(qū)動開發(fā)、結(jié)對編程、持續(xù)集成、每日站立會議、共同擁有代碼、系統(tǒng)隱喻。

精髓:2/8法則(20%交付功能代表80%最終商業(yè)價值);

為什么說是以人為核心?

我們大部分人都學(xué)過瀑布開發(fā)模型,它是以文檔為驅(qū)動的。在瀑布的整個開發(fā)過程中,要寫大量的文檔,把需求文檔寫出來后,開發(fā)人員都是根據(jù)文檔進(jìn)行開發(fā)的,一切以文檔為依據(jù);

而敏捷開發(fā)它只寫有必要的文檔,或盡量少寫文檔,敏捷開發(fā)注重的是人與人之間,面對面的交流,所以它強(qiáng)調(diào)以人為核心。

什么是迭代?

迭代是指把一個復(fù)雜且開發(fā)周期很長的開發(fā)任務(wù),分解為很多小周期可完成的任務(wù),這樣的一個周期就是一次迭代的過程;同時每一次迭代都可以生產(chǎn)或開發(fā)出一個可以交付的軟件產(chǎn)品。

關(guān)于Scrum和XP

敏捷是一種指導(dǎo)思想或開發(fā)方式,而Scrum和XP就是敏捷開發(fā)的具體方式了,你可以采用Scrum方式也可以采用XP方式

什么是Scrum?

Scrum是一個敏捷開發(fā)框架;由一個開發(fā)過程,幾種角色以及一套規(guī)范的實(shí)施方法組成。

【Scrum開發(fā)流程中的四大角色】

產(chǎn)品負(fù)責(zé)人(Product Owner)

該角色負(fù)責(zé)產(chǎn)品的遠(yuǎn)景規(guī)劃,平衡利益相關(guān)者的利益。確定不同的產(chǎn)品需求積壓的優(yōu)先級等。

在開發(fā)中,主要負(fù)責(zé)確定產(chǎn)品的功能和達(dá)到要求的標(biāo)準(zhǔn),指定軟件的發(fā)布日期和交付的內(nèi)容,同時有權(quán)力接受或拒絕開發(fā)團(tuán)隊(duì)的工作成果。

他是開發(fā)團(tuán)隊(duì)和客戶或最終用戶之間的聯(lián)絡(luò)點(diǎn)。

利益相關(guān)者(Stakeholder)

該角色與產(chǎn)品之間有直接或間接的利益關(guān)系,通常是客戶或最終用戶代表。他們負(fù)責(zé)收集編寫產(chǎn)品需求,審查項(xiàng)目成果等。

流程管理員(Scrum Master)

主要負(fù)責(zé)整個Scrum流程在項(xiàng)目中的順利實(shí)施和進(jìn)行,以及清除擋在客戶和開發(fā)工作之間的溝通障礙,使得客戶可以直接驅(qū)動開發(fā)。

他也是開發(fā)團(tuán)隊(duì)與產(chǎn)品擁有者之間交流的聯(lián)絡(luò)點(diǎn)。

開發(fā)團(tuán)隊(duì)(Scrum Team)

主要負(fù)責(zé)軟件產(chǎn)品在Scrum規(guī)定流程下進(jìn)行開發(fā)工作,每個成員可能負(fù)責(zé)不同的技術(shù)方面,但要求每成員必須要有很強(qiáng)的自我管理能力,同時具有一定的表達(dá)能力;成員可以采用任何工作方式,只要能達(dá)到Sprint的目標(biāo)。

Scrum名詞解釋:

backlog:可以預(yù)知的所有任務(wù),包括功能性的和非功能性的所有任務(wù)。建立Product Backlog 的過程就是將用戶需求轉(zhuǎn)化為一個個User Story 并確定其優(yōu)先級的過程。

story:用講故事的方式來表達(dá)需求,這樣便于讓原始客戶比較清晰的對需求進(jìn)行表達(dá),開發(fā)和測試也會逐漸以客戶的需求思維來思考自己的工作。

sprint:一次迭代開發(fā)的時間周期,一般最多以30天為一個周期。在這段時間內(nèi),開發(fā)團(tuán)隊(duì)需要完成一個制定的backlog,并且最終成果是一個增量的,可交付的產(chǎn)品。

sprint backlog:一個sprint周期內(nèi)所需要完成的任務(wù)

scrum Master:監(jiān)督整個Scrum進(jìn)程,修訂計(jì)劃

time-box:一個用于開會時間段。每個daily scrum meeting的time-box為15分鐘。

sprint planning meeting:啟動每個sprint前召開。一般為8小時。產(chǎn)品Owner和團(tuán)隊(duì)成員將backlog分解成小的功能模塊,決定在即將進(jìn)行的sprint里需要完成多少小功能模塊,確定Product Backlog的任務(wù)優(yōu)先級。還需詳細(xì)討論如何按需求完成小功能模塊。

Daily Scrum meeting:開發(fā)團(tuán)隊(duì)召開,開發(fā)人員向ScrumMaster匯報(bào):今天完成了什么?遇到了什么障礙?明天做什么?團(tuán)隊(duì)成員相互了解項(xiàng)目進(jìn)度

Sprint review meeting:每個Sprint結(jié)束后,Team將Sprint成果演示給Product Owner和其他人員。并總結(jié)結(jié)束的Sprint。


Scrum流程圖

如何進(jìn)行Scrum開發(fā)?

1、確定Product Backlog(按優(yōu)先順序排列的一個產(chǎn)品需求列表),由Product Owner 負(fù)責(zé)的;

2、Scrum Team做工作量的預(yù)估和安排;

3、Product Backlog列表中挑選出一個Story作為迭代目標(biāo),然后Story進(jìn)行細(xì)化。

團(tuán)隊(duì)在Backlog列表中挑選出當(dāng)前sprint內(nèi)完成的工作。團(tuán)隊(duì)決定如何將選定的產(chǎn)品Backlog轉(zhuǎn)化為潛在可交付產(chǎn)品的功能增量。

形成一個Sprint Backlog(Sprint Backlog是由Scrum Team去完成的)

4、召開sprint planning meeting,確定迭代任務(wù),優(yōu)先級,并分配給每個成員

5、在Scrum Team完成計(jì)劃會議上選出的Sprint Backlog過程中,需要進(jìn)行 Daily Scrum Meeting,每個人匯報(bào)昨天完成了什么,承諾今天要完成什么,遇到不能解決的問題。回答完成后,更新 Sprint burn down(Sprint燃盡圖);

6、做到每日集成,也就是每天都要有一個可以成功編譯、并且可以演示的版本;

7、當(dāng)一個Story完成,也就是Sprint Backlog被完成也就表示一次Sprint完成,這時,我們要進(jìn)行?SrpintReviewMeeting(演示會議),也稱為評審會議,產(chǎn)品負(fù)責(zé)人和客戶都要參加(最好本公司老板也參加),每一個Scrum Team的成員都要向他們演示自己完成的軟件產(chǎn)品(這個會議非常重要,一定不能取消);

8、最后就是Sprint Retrospective?Meeting(回顧會議),也稱為總結(jié)會議,以輪流發(fā)言方式進(jìn)行,每個人都要發(fā)言,總結(jié)并討論改進(jìn)的地方,放入下一輪Sprint的產(chǎn)品需求中;



其他資料

利益相關(guān)者:敏捷開發(fā)保證了項(xiàng)目中所有利益相關(guān)者的利益,不論是客戶、項(xiàng)目管理、開發(fā)團(tuán)隊(duì)或測試小組。每個人對項(xiàng)目都有清晰的可見性,這是成功的關(guān)鍵點(diǎn)所在。敏捷開發(fā)原則上鼓勵用戶積極地參與,不論是產(chǎn)品開發(fā),或是團(tuán)體協(xié)同的方方面面。這對關(guān)鍵利益相關(guān)者提供了非常好的可見性,包括項(xiàng)目的進(jìn)度或是產(chǎn)品本身,最終這有利于保證產(chǎn)品預(yù)期的效果。

質(zhì)量:不像傳統(tǒng)的瀑布模型,等到開發(fā)完成才開始測試,可是在敏捷開發(fā)中,我們隨著需求的準(zhǔn)備便開始進(jìn)行測試。因此,測試集成貫穿整個開發(fā)周期,使得工作產(chǎn)品像開發(fā)一樣去定期檢查。這允許工作所有者有必要時做出適當(dāng)調(diào)整,以及及早的給產(chǎn)品團(tuán)隊(duì)檢查出任何質(zhì)量問題。

核心原則

◆主張簡單:簡單模型入手,慢慢迭代

◆擁抱變化:需求時刻在變,Project stakeholder(項(xiàng)目利益相關(guān)者)也可能會變化。項(xiàng)目環(huán)境不斷變化

◆可持續(xù)性:實(shí)現(xiàn)項(xiàng)目投資者的需求,其中就包括你的系統(tǒng)應(yīng)該要有足夠的魯棒性(robust ),能夠適應(yīng)日后的擴(kuò)展。可持續(xù)性可能指的是系統(tǒng)的下一個主要發(fā)布版,或是你正在構(gòu)建的系統(tǒng)的運(yùn)轉(zhuǎn)和支持

◆遞增的變化:

和建模相關(guān)的一個重要概念是你不用在一開始就準(zhǔn)備好一切。你不用在模型中包容所有的細(xì)節(jié),你只要足夠的細(xì)節(jié)就夠了,開發(fā)一個小的模型,或是概要模型,打下一個基礎(chǔ),然后慢慢的改進(jìn)模型。

◆令投資最大化

你的項(xiàng)目投資者為了開發(fā)出滿足自己需要的軟件,需要投入時間、金錢、設(shè)備等各種資源。投資者應(yīng)該可以選取最好的方式投資,也可以要求你的團(tuán)隊(duì)不浪費(fèi)資源。并且,他們還有最后的發(fā)言權(quán),決定要投入多少的資源。

◆快速反饋

從開始采取行動,到獲得行動的反饋,二者之間的時間至關(guān)緊要。和其他人一共開發(fā)模型,你的想法可以立刻獲得反饋,特別是你的工作采用了共享建模技術(shù)的時候。和你的客戶緊密工作,去了解他們的的需求,去分析這些需求,或是去開發(fā)滿足他們需求的用戶界面,這樣,你就提供了快速反饋的機(jī)會。

◆輕裝前進(jìn)

你建立一個工件,然后決定要保留它,隨著時間的流逝,這些工件都需要維護(hù)。如果你決定保留7個模型,不論何時,一旦有變化發(fā)生(新需求的提出,原需求的更新,團(tuán)隊(duì)接受了一種新方法,采納了一項(xiàng)新技術(shù)...),你就需要考慮變化對這7個模型產(chǎn)生的影響并采取相應(yīng)的措施。而如果你想要保留的僅是3個模型,很明顯,你實(shí)現(xiàn)同樣的改變要花費(fèi)的功夫就少多了,你的靈活性就增強(qiáng)了,因?yàn)槟闶窃谳p裝前進(jìn)。每次你要決定保留一個模型時,你就要權(quán)衡模型載有的信息對團(tuán)隊(duì)有多大的好處(所以才需要加強(qiáng)團(tuán)隊(duì)之間,團(tuán)隊(duì)和項(xiàng)目投資者之間的溝通)。


來源于網(wǎng)絡(luò)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,460評論 6 538
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,067評論 3 423
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,467評論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,468評論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 72,184評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,582評論 1 325
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,616評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,794評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,343評論 1 335
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 41,096評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,291評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,863評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,513評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,941評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,190評論 1 291
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,026評論 3 396
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,253評論 2 375

推薦閱讀更多精彩內(nèi)容

  • 現(xiàn)在敏捷開發(fā)是越來越火了,人人都在談敏捷,人人都在學(xué)習(xí)Scrum和XP... 為了不落后他人,于是我也開始學(xué)習(xí)Sc...
    綜合對接組閱讀 731評論 0 1
  • Scrum指南的目的 Scrum是用于開發(fā)和持續(xù)支持復(fù)雜產(chǎn)品的一個框架。本指南包含了Scrum的定義,其中包 括S...
    iceinto閱讀 2,396評論 0 10
  • 微風(fēng)在夏夜里寫詩 風(fēng)吹起的長發(fā) 撩撥著不老的心跳躍 隨風(fēng)起舞 月光在夏夜里寫詩 如漆的天空是她的幕布 她安靜如少女...
    茶潤人生閱讀 325評論 0 1
  • 尋日加入YY語音,安裝手機(jī)版和電腦版,今天早上5:31分開始聽,但因?yàn)榘胍鼓X袋想著明天的事情睡不著,聽了一個冥想的...
    瑜琪媽閱讀 229評論 0 0
  • 因?yàn)楣ぷ髟颍罱鼮g覽了很多互聯(lián)網(wǎng)公司的網(wǎng)站,突然發(fā)現(xiàn)很多網(wǎng)站的設(shè)計(jì)完全可以借鑒到PPT中來。 為什么要從網(wǎng)頁中獲...
    砸砸閱讀 1,718評論 0 1