管理 | 兩種敏捷開(kāi)發(fā)方法

敏捷開(kāi)發(fā)的兩種方法,你get了嗎?

一、什么是敏捷開(kāi)發(fā)?

  • 傳統(tǒng)開(kāi)發(fā)方式:如迭代式開(kāi)發(fā)、瀑布式開(kāi)發(fā)

    • 軟件的開(kāi)發(fā)過(guò)程是確定的、可測(cè)的
    • 在一開(kāi)始努力收集到需要的信息并指定好計(jì)劃
    • 忠實(shí)地執(zhí)行計(jì)劃就能夠成功
  • 敏捷開(kāi)發(fā)(Agile Development)

    • 無(wú)法從一開(kāi)始就收集到確保陳功所需要的所有信息
    • 隨著開(kāi)發(fā)的進(jìn)行,對(duì)正在做的東西的認(rèn)識(shí)越來(lái)越深刻,才能發(fā)現(xiàn)產(chǎn)品中的一切缺陷或需要調(diào)整的地方

二、敏捷開(kāi)發(fā)的核心是什么?

  • 敏捷開(kāi)發(fā)的原則是:

    • 快速驗(yàn)證
    • 價(jià)值驅(qū)動(dòng)
    • 團(tuán)隊(duì)自組織
  • 敏捷開(kāi)發(fā)的目的是:

    • 更早驗(yàn)證產(chǎn)品模式
    • 獲得投資回報(bào)
    • 降低投資風(fēng)險(xiǎn)
  • 敏捷開(kāi)發(fā)的核心是:

    • 以人為核心!
    • 人為核心!
    • 人為核心!

敏捷開(kāi)發(fā)是增量式的迭代開(kāi)發(fā),需要應(yīng)對(duì)多種可能的需求變化并快速感知響應(yīng)。
增量迭代開(kāi)發(fā)就是定期產(chǎn)出可工作的軟件并收集軟件反饋,然后做出相應(yīng)的調(diào)整戰(zhàn)略。
形成所謂的快速反饋循環(huán),以迅速應(yīng)對(duì)變化。

三、敏捷開(kāi)發(fā)的兩種方法

1)Scrum

Scrum表示橄欖球運(yùn)動(dòng)的“爭(zhēng)球”動(dòng)作;
大家像打橄欖球一樣迅速、富有戰(zhàn)斗激情、人人你爭(zhēng)我搶地完成它。

2)XP

極限編程(eXtreme Programming)是敏捷方法中最被推崇的一個(gè)

3)Scrum和XP的區(qū)別是什么?

區(qū)別之一: 迭代長(zhǎng)度的不同
  • XP的一個(gè)Sprint的迭代長(zhǎng)度大致為1~2周
  • Scrum的一個(gè)Sprint迭代長(zhǎng)度一般為 2~ 4周.
區(qū)別之二: 在迭代中, 是否允許修改需求
  • XP在一個(gè)迭代中,如果一個(gè)User Story(用戶(hù)素材, 也就是一個(gè)需求)還沒(méi)有實(shí)現(xiàn), 則可以考慮用另外的需求將其替換,替換的原則是需求實(shí)現(xiàn)的時(shí)間量是相等的。
  • Scrum是不允許這樣做的,一旦迭代開(kāi)工會(huì)完畢, 任何需求都不允許添加進(jìn)來(lái),并有Scrum Master嚴(yán)格把關(guān),不允許開(kāi)發(fā)團(tuán)隊(duì)受到干擾
區(qū)別之三: 在迭代中,User Story是否嚴(yán)格按照優(yōu)先級(jí)別來(lái)實(shí)現(xiàn)

XP是務(wù)必要遵守優(yōu)先級(jí)別的。 但Scrum在這點(diǎn)做得很靈活, 可以不按照優(yōu)先級(jí)別來(lái)做,Scrum這樣處理的理由是:如果優(yōu)先問(wèn)題的解決者,由于其它事情耽擱,不能認(rèn)領(lǐng)任務(wù),那么整個(gè)進(jìn)度就耽誤了。 另外一個(gè)原因是,如果按優(yōu)先級(jí)排序的User Story #6和#10,雖然#6優(yōu)先級(jí)高,但是如果#6的實(shí)現(xiàn)要依賴(lài)于#10,則不得不優(yōu)先做#10.

區(qū)別之四

軟件的實(shí)施過(guò)程中,是否采用嚴(yán)格的工程方法,保證進(jìn)度或者質(zhì)量

四、如何實(shí)現(xiàn)敏捷開(kāi)發(fā)?

Scrum開(kāi)發(fā)流程中的三大角色

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

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

二)流程管理員(Scrum Master)

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

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

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

什么是Sprint?
Sprint是短距離賽跑的意思,在開(kāi)發(fā)里面指的是一次迭代。
而一次迭代的周期是1個(gè)月時(shí)間(即4個(gè)星期),
也就是我們要把一次迭代的開(kāi)發(fā)內(nèi)容以最快的速度完成它,
這個(gè)過(guò)程我們稱(chēng)它為Sprint。

  1. 我們首先需要確定一個(gè)Product Backlog(按優(yōu)先順序排列的一個(gè)產(chǎn)品需求列表),這個(gè)是由Product Owner 負(fù)責(zé)的;
  2. Scrum Team根據(jù)Product Backlog列表,做工作量的預(yù)估和安排;
  3. 有了Product Backlog列表,我們需要通過(guò) Sprint Planning Meeting(Sprint計(jì)劃會(huì)議) 來(lái)從中挑選出一個(gè)Story作為本次迭代完成的目標(biāo),這個(gè)目標(biāo)的時(shí)間周期是1~4個(gè)星期,然后把這個(gè)Story進(jìn)行細(xì)化,形成一個(gè)Sprint Backlog;
  4. Sprint Backlog是由Scrum Team去完成的,每個(gè)成員根據(jù)Sprint Backlog再細(xì)化成更小的任務(wù)(細(xì)到每個(gè)任務(wù)的工作量在2天內(nèi)能完成);
  5. 在Scrum Team完成計(jì)劃會(huì)議上選出的Sprint Backlog過(guò)程中,需要進(jìn)行 Daily Scrum Meeting(每日站立會(huì)議),每次會(huì)議控制在15分鐘左右,每個(gè)人都必須發(fā)言,并且要向所有成員當(dāng)面匯報(bào)你昨天完成了什么,并且向所有成員承諾你今天要完成什么,同時(shí)遇到不能解決的問(wèn)題也可以提出,每個(gè)人回答完成后,要走到黑板前更新自己的 Sprint burn down(Sprint燃盡圖);
  6. 做到每日集成,也就是每天都要有一個(gè)可以成功編譯. 并且可以演示的版本;很多人可能還沒(méi)有用過(guò)自動(dòng)化的每日集成,其實(shí)TFS就有這個(gè)功能,它可以支持每次有成員進(jìn)行簽入操作的時(shí)候,在服務(wù)器上自動(dòng)獲取最新版本,然后在服務(wù)器中編譯,如果通過(guò)則馬上再執(zhí)行單元測(cè)試代碼,如果也全部通過(guò),則將該版本發(fā)布,這時(shí)一次正式的簽入操作才保存到TFS中,中間有任何失敗,都會(huì)用郵件通知項(xiàng)目管理人員;
  7. 當(dāng)一個(gè)Story完成,也就是Sprint Backlog被完成,也就表示一次Sprint完成,這時(shí),我們要進(jìn)行 Srpint Review Meeting(演示會(huì)議),也稱(chēng)為評(píng)審會(huì)議,產(chǎn)品負(fù)責(zé)人和客戶(hù)都要參加(最好本公司老板也參加),每一個(gè)Scrum Team的成員都要向他們演示自己完成的軟件產(chǎn)品(這個(gè)會(huì)議非常重要,一定不能取消);
  8. 最后就是** Sprint Retrospective Meeting(回顧會(huì)議)**,也稱(chēng)為總結(jié)會(huì)議,以輪流發(fā)言方式進(jìn)行,每個(gè)人都要發(fā)言,總結(jié)并討論改進(jìn)的地方,放入下一輪Sprint的產(chǎn)品需求中;

五、Scrum開(kāi)發(fā)流程中的一些場(chǎng)景圖

每日的站立會(huì)議
任務(wù)看版

任務(wù)看版包含 未完成、正在做、已完成 的工作狀態(tài)

假設(shè)你今天把一個(gè)未完成的工作已經(jīng)完成,
那么你要把小卡片從未完成區(qū)域貼到已完成區(qū)域。

每個(gè)人的工作進(jìn)度和完成情況都是公開(kāi)的,
如果有一個(gè)人的工作任務(wù)在某一個(gè)位置放了好幾天,
大家都能發(fā)現(xiàn)他的工作進(jìn)度出現(xiàn)了什么問(wèn)題
(成員人數(shù)最好是5~7個(gè),這樣每人可以使用一種專(zhuān)用顏色的標(biāo)簽紙,一眼就可以從任務(wù)版看出誰(shuí)的工作進(jìn)度快,誰(shuí)的工作進(jìn)度慢)

計(jì)劃紙牌

計(jì)劃紙牌怎么用的呢?
比如A程序員開(kāi)發(fā)一個(gè)功能,需要5個(gè)小時(shí),
B程序員認(rèn)為只需要半小時(shí),那他們各自取相應(yīng)的牌,藏在手中,
最后攤牌,如果時(shí)間差距很大,
那么A和B就可以討論A為什么要5個(gè)小時(shí)...

希望詳細(xì)了解學(xué)習(xí)的同學(xué)可以購(gòu)買(mǎi)這本書(shū)《硝煙中的Scrum和XP》作者Henrik Kniberg講 述了他在一年的時(shí)間里,帶領(lǐng)40人的團(tuán)隊(duì)實(shí)施Scrum的過(guò)程。他們?cè)囘^(guò)了多種團(tuán)隊(duì)尺寸(3~12人)、sprint長(zhǎng)度(2~6星期),定義“完成”的 不同方式,不同的backlog格式,各種測(cè)試策略,在多個(gè)Scrum團(tuán)隊(duì)之間進(jìn)行同步的多種方式。他們還嘗試過(guò)XP實(shí)踐——持續(xù)集成、結(jié)對(duì)編程、測(cè)試驅(qū) 動(dòng)開(kāi)發(fā)等等,還試過(guò)了把XP跟Scrum組合。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1、在項(xiàng)目的Sprint回顧會(huì)后,團(tuán)隊(duì)成員指出那是抱怨會(huì),不是非常有效。Scrum主管應(yīng)該怎么做?A 建議團(tuán)隊(duì)尊重...
    隔壁老李頭閱讀 12,445評(píng)論 1 16
  • 返回目錄 下一章·Scrum 中的基本角色和職責(zé) 我們發(fā)現(xiàn),許多項(xiàng)目成員對(duì)敏捷開(kāi)發(fā)中的一些基本名詞概念模糊,造成了...
    o黃裳元吉o閱讀 12,711評(píng)論 1 14
  • /大可 在這變幻莫測(cè)的宇宙,空間無(wú)法丈量,天體不計(jì)其數(shù),只有恰當(dāng)?shù)木嚯x,恰當(dāng)?shù)年P(guān)系,恰當(dāng)?shù)臈l件,無(wú)窮無(wú)盡的時(shí)間和極...
    大可這樣看世界閱讀 1,064評(píng)論 0 2
  • 今天是七月第三周的星期五,不知大家在哪里?這周是否過(guò)得不錯(cuò)?馬上迎來(lái)雙休的人們是否有什么好的日程安排呢? 炎熱的夏...
    暴走君薩閱讀 201評(píng)論 0 0
  • 眾所周知,精神分裂癥是一種病,但我認(rèn)為,他們的世界其實(shí)是另一個(gè)平行宇宙,只是恰巧與你相隔了十萬(wàn)光年。坦白地說(shuō),我也...
    雁北堂閱讀 503評(píng)論 0 0

友情鏈接更多精彩內(nèi)容