什么是敏捷開發(fā)薪丁?
敏捷開發(fā)大多被定義為一種與軟件開發(fā)項(xiàng)目管理相關(guān)的方法論涂籽,同時(shí)也描述了作為一個(gè)團(tuán)隊(duì)工作的方式睹晒,通過降低風(fēng)險(xiǎn)和提供早期的好處來達(dá)到軟件產(chǎn)品所要求的質(zhì)量水平漂辐。
與傳統(tǒng)的軟件開發(fā)瀑布模型不同衡蚂,敏捷軟件開發(fā)是迭代式的窿克。這意味著在敏捷的軟件開發(fā)環(huán)境中骏庸,我們期待著快速的變化。
為什么傳統(tǒng)軟件開發(fā)技術(shù)有時(shí)會(huì)失敗让歼,敏捷開發(fā)變得越來越流行敞恋?
傳統(tǒng)的軟件開發(fā)方法由于業(yè)務(wù)流程和客戶需求的變化而失敗。如果要求永遠(yuǎn)不變谋右,傳統(tǒng)的開發(fā)方法就起作用 但問題是業(yè)務(wù)需求正在不斷變化硬猫。
靈活的方法使軟件開發(fā)團(tuán)隊(duì)能夠?qū)W⒂谲浖旧恚皇腔〞r(shí)間在軟件設(shè)計(jì)和文檔上改执。當(dāng)我們考慮系統(tǒng)需求在開發(fā)過程中通常會(huì)快速變化的情況時(shí)啸蜜,這種方法更為有效。
在敏捷開發(fā)環(huán)境中我們可以找到的另一個(gè)關(guān)鍵點(diǎn)是使用快速和更短的文檔辈挂,我們可以快速完成任務(wù)衬横。
但是,當(dāng)考慮敏捷軟件開發(fā)在軟件產(chǎn)品中取得成功時(shí)终蒂,我們需要有誠(chéng)實(shí)的合作開發(fā)者和聰明的客戶蜂林。
有一些敏捷的軟件開發(fā)方法需要討論。但是像Scrum這樣的敏捷軟件開發(fā)方法在當(dāng)今被廣泛使用拇泣。
其他敏捷方法包括
? 極限編程
? 水晶
? 自適應(yīng)軟件開發(fā)
? 功能驅(qū)動(dòng)開發(fā)
以下是與每個(gè)敏捷軟件開發(fā)方法相關(guān)的一套原則
客戶參與
客戶參與敏捷軟件開發(fā)環(huán)境是獲得軟件項(xiàng)目成功的主要原則
客戶應(yīng)該通過提供新的需求和想法噪叙,始終密切參與開發(fā)過程。開發(fā)人員可以使用客戶評(píng)論來評(píng)估迭代霉翔。
增量交貨
該軟件將逐步開發(fā)并交付給客戶睁蕾。客戶應(yīng)指定每個(gè)增量中應(yīng)包含的要求债朵。
人們不處理
在敏捷軟件開發(fā)方法中子眶,開發(fā)人員可以以自己的方式工作,而不用考慮軟件過程序芦。這主要側(cè)重于使用開發(fā)人員的技能臭杰,同時(shí)提高他們的技能,而不是遵循一個(gè)規(guī)則的過程谚中。
迎接改變
要求更改是可以接受的硅卢。另外,軟件的開發(fā)方式應(yīng)能適應(yīng)開發(fā)過程中和軟件交付后的需求變化
保持簡(jiǎn)單
整個(gè)開發(fā)團(tuán)隊(duì)和客戶應(yīng)該重點(diǎn)關(guān)注正在開發(fā)的軟件的簡(jiǎn)單性以及開發(fā)該軟件所遵循的過程藏杖。這意味著參與開發(fā)過程的每個(gè)人都應(yīng)該支持去除復(fù)雜性。
什么是Scrum脉顿?
Scrum是管理產(chǎn)品開發(fā)的敏捷框架之一蝌麸。在被廣泛使用的同時(shí),它也成為傳統(tǒng)軟件開發(fā)過程的替代方案
在scrum中有三個(gè)關(guān)鍵角色需要討論艾疟。
產(chǎn)品擁有者
產(chǎn)品所有者主要是利益相關(guān)者来吩,或者我們可以定義為對(duì)將要開發(fā)的軟件具有原始愿景的客戶敢辩。他通過確定哪些功能應(yīng)包含在產(chǎn)品中并對(duì)其進(jìn)行優(yōu)先級(jí)定義了產(chǎn)品積壓的內(nèi)容(基本上稱為用戶故事)。
Scrum大師
與傳統(tǒng)的團(tuán)隊(duì)領(lǐng)導(dǎo)或項(xiàng)目經(jīng)理不同,他是團(tuán)隊(duì)的領(lǐng)導(dǎo)者之一。他負(fù)責(zé)保護(hù)團(tuán)隊(duì)变隔,順利開展工作工猜,消除障礙。并負(fù)責(zé)召開會(huì)議符衔,確保一切順利。
Scrum團(tuán)隊(duì)
團(tuán)隊(duì)可能由開發(fā)人員,測(cè)試人員和其他人員參與到軟件開發(fā)過程中迫肖,作為一個(gè)團(tuán)隊(duì)工作,而沒有遵循我們?cè)趥鹘y(tǒng)軟件開發(fā)流程中可以找到的規(guī)則攒驰。Scrum團(tuán)隊(duì)還負(fù)責(zé)在每個(gè)沖刺階段交付每個(gè)增量來成功完成項(xiàng)目
有三種類型的文件在Scrum框架中使用
產(chǎn)品積壓
產(chǎn)品負(fù)責(zé)人負(fù)責(zé)創(chuàng)建產(chǎn)品返回日志蟆湖,其中包括被稱為用戶故事的重要功能列表。這就像是傳統(tǒng)需求規(guī)格的替代品
用戶故事
描述一組特征的方式應(yīng)該包含在正在開發(fā)的軟件中玻粪。用戶故事以這樣的方式呈現(xiàn)隅津,使得Scrum團(tuán)隊(duì)可以清楚地了解需求。
Sprint積壓
沖刺回日志由產(chǎn)品待辦事項(xiàng)中用戶故事的最高優(yōu)先級(jí)組成劲室,在沖刺會(huì)議期間伦仍,Scrum團(tuán)隊(duì)確定在特定沖刺中要完成的主要要求。
燒毀圖表
燒毀圖表顯示每個(gè)沖刺的進(jìn)度痹籍,并以圖形方式表示在剩余時(shí)間內(nèi)完成的平衡工作呢铆。
在scrum中有三種類型的會(huì)議
沖刺計(jì)劃
沖刺計(jì)劃是基本上開始沖刺的會(huì)議。產(chǎn)品所有者蹲缠,Scrum主人和團(tuán)隊(duì)會(huì)面討論用戶故事棺克。同時(shí)還確定了沖刺計(jì)劃會(huì)議期間每個(gè)用戶故事的重要性。
每日頭條
每日頭條是一個(gè)簡(jiǎn)短的會(huì)議线定,討論上次會(huì)議以來我們已經(jīng)完成的事情娜谊,發(fā)展的現(xiàn)狀,發(fā)展進(jìn)程放緩的障礙是什么斤讥。早上開這個(gè)會(huì)議比較合適纱皆,然后Scrum團(tuán)隊(duì)可以確定一天的工作時(shí)間表。
短跑審查
在每次沖刺之后芭商,本次沖刺檢查將由團(tuán)隊(duì)成員和產(chǎn)品負(fù)責(zé)人共同參與派草,共同討論已完成的工作以及如何改進(jìn)工作流程。而且在最后一個(gè)沖刺階段完成的產(chǎn)品功能的演示是由Scrum團(tuán)隊(duì)完成的
Sprint回顧展
sprint回顧的目的是回顧團(tuán)隊(duì)如何完成最后的沖刺铛楣,以及他們可以做些什么來改進(jìn)下一個(gè)沖刺的過程近迁。
Scrum工作流程
? Scrum工作流程始于產(chǎn)品所有者提供的產(chǎn)品積壓
? 之后,進(jìn)行沖刺計(jì)劃會(huì)議
? 在沖刺計(jì)劃期間簸州,產(chǎn)品所有者鉴竭,Scrum大師和Scrum團(tuán)隊(duì)將遍歷用戶故事歧譬,并確定下一個(gè)沖刺中用戶故事的優(yōu)先級(jí)。
? Sprint Backlog是sprint規(guī)劃的輸出
? 按照sprint backlog開發(fā)搏存,測(cè)試和審查應(yīng)用程序瑰步。整個(gè)過程被稱為沖刺
? 在沖刺,scrum會(huì)議期間璧眠。每天舉行
? 在沖刺結(jié)束時(shí)缩焦,我們有潛在的可發(fā)運(yùn)產(chǎn)品
? 在Scrum團(tuán)隊(duì)和產(chǎn)品所有者的參與下對(duì)產(chǎn)品進(jìn)行沖刺評(píng)估
? 產(chǎn)品和過程的回顧
? 從而沖刺回顧完成沖刺
? 下一個(gè)沖刺的開始
有關(guān)更詳細(xì)的參考資料,請(qǐng)閱讀Sommerville的“ Software Engineering Seventh Edition ” 一書