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