敏捷軟件開(kāi)發(fā)(Agile Software Development)初起于九十年代中期。最早是為了與傳統的瀑布軟件開(kāi)發(fā)模式(waterfall model)相比較,所以當時(shí)的方法叫做輕量級方法(Lightweight methods)。二十世紀初,17 位該方法的倡導者建立了敏捷聯(lián)盟(Agile Alliance),并將該軟件開(kāi)發(fā)方法命名為敏捷軟件開(kāi)發(fā)過(guò)程。
敏捷聯(lián)盟在成立之初總結了四條基本的價(jià)值原則:
基于這四點(diǎn)原則,敏捷軟件開(kāi)發(fā)有著(zhù)自己獨特的流程(參見(jiàn)圖 1)。
整個(gè)過(guò)程中夾雜了很多在敏捷開(kāi)發(fā)前己經(jīng)出現的軟件開(kāi)發(fā)方法,包括極限編程(Extreme Programming,1996)、Scrum(1986)、特征驅動(dòng)開(kāi)發(fā)(Feature Driven Development),測試驅動(dòng)開(kāi)發(fā)(Test Driven Development)等。這些方法在敏捷軟件開(kāi)發(fā)流程的各個(gè)階段都有充分的體現和應用。
例如,Scrum 主要著(zhù)重于項目管理,團隊中的項目經(jīng)理(Scrum master)需要在每個(gè)客戶(hù)需求到來(lái)的時(shí)候制定 Sprint 的周期,定義每個(gè) Sprint 的目標、分派任務(wù)、進(jìn)行監督、最后總結得失并開(kāi)始計劃新的 Sprint。
相反,特征驅動(dòng)開(kāi)發(fā)和測試驅動(dòng)開(kāi)發(fā)主要被應用于 Sprint 周期中。如果項目進(jìn)行于開(kāi)發(fā)新功能時(shí)期,這個(gè)階段主要推行特征驅動(dòng)開(kāi)發(fā)。所有測試和開(kāi)發(fā)人員都將自己的工作重心放在新的功能上面,從開(kāi)發(fā)和測試兩個(gè)方面來(lái)完成各自的任務(wù)。如果項目進(jìn)行于測試新功能時(shí)期,這個(gè)階段需要將工作的重點(diǎn)挪到測試上來(lái)。所有的測試和開(kāi)發(fā)人員都密切關(guān)注著(zhù)目前版本的缺陷狀況。測試人員需要在每天的站立會(huì )議(Daily Standup Meeting)上報告前一個(gè)工作日發(fā)現的新缺陷情況,項目經(jīng)理根據項目進(jìn)度和缺陷嚴重性來(lái)決定是否修復這些問(wèn)題。需要及時(shí)修復的缺陷是目前 Sprint 中的一個(gè)新任務(wù),將由項目經(jīng)理添加到 Sprint Backlog 上并通知開(kāi)發(fā)人員去修復漏洞。
原文轉自:https://www.ibm.com/developerworks/cn/rational/r-cn-agiletestexplain/