在傳統(tǒng)的waterfall開發(fā)模式中,一般公司都有專門的需求分析團(tuán)隊(duì),作為研發(fā)和客戶之間的橋梁。需求分析團(tuán)隊(duì)會(huì)有需求規(guī)格說明書和需求用例說明書兩個(gè)標(biāo)準(zhǔn)文檔,其中需求用例說明書詳細(xì)的描述了事件流、頁面流、前置條件、后置條件、約束、非功能需求。特點(diǎn)是:花費(fèi)的時(shí)間較長,需求變更導(dǎo)致的影響大(修改測試用例、代碼等)
敏捷開發(fā)獲得需求的步驟為:
1. 客戶會(huì)提出一些story,重點(diǎn)是站在商務(wù)的角度提出功能。story的要點(diǎn)分為Who,What和Why。其中Why就是這個(gè)功能的商業(yè)原因
2. 客戶和Team一起討論example或者是Scenario,這個(gè)是test-driven的基礎(chǔ)
3. 討論細(xì)節(jié),包括驗(yàn)證標(biāo)準(zhǔn)...
敏捷開發(fā)和waterfall開發(fā)在需求層面最大的區(qū)別在于:
1. 更徹底以business value為出發(fā)點(diǎn)
2. 需求顆粒更小
3. 以working system和用戶溝通,更加有效
4. 用戶可以隨時(shí)調(diào)整需求(當(dāng)然以iteration為周期),需求變更對系統(tǒng)的影響小
5. 對自動(dòng)化要求高,無論是編碼還是測試,要求timely的反饋
對于很多外包公司的項(xiàng)目,waterfall或者RUP還是用的比較多。外包公司希望需求明確,因?yàn)樾枨笞兏梢宰鳛楹笃诘臉I(yè)務(wù),給公司帶來持續(xù)的收入。