1. 程式人生 > >Daily of programming

Daily of programming

《程式設計師》20092月刊,第70頁有一篇如題的文章,比較清晰的闡明瞭敏捷與傳統方法在分析時機、劃分單位、細化過程、文件要求和應對變更五個方面的差異。摘抄要點如下:

傳統需求分析

敏捷需求分析

需求分析時機

更多地集中在專案早期

近乎均勻地貫穿於專案的整個生命週期

需求劃分單位

基於功能分解,劃分模組或子系統,一個模組或子系統的顆粒度通常較大

基於能否獨立業務價值,切割成一個個使用者故事,一個故事有時會跨越傳統的模組或子系統邊界;故事的顆粒度較小

需求細化過程

一步到位,可供開發人員設計開發

逐步細化,僅就下一個迭代需要實現的部分進行詳細分析

需求文件要求

正式文件,往往有明確的格式要求。既作為設計開發人員必須嚴格遵守的規約,也作為向客戶提交的必備產出物之一。難維護,難驗證(跟蹤)

非正式文件。僅僅是輔助開發團隊與客戶溝通,不作為規約,也不作為必備產出物。更多強調通過自動化功能測試用例來跟蹤系統需求

應對需求變更

有嚴格的控制流程,視變更為風險

視變更為必然或預期中的事情

敏捷方法中需求文件的作用和傳統方法不同:

需求文件不是需要嚴格評審的專案產出物 不用擔心需求文件過時或已經與系統不符 文件沒有固定的格式,視溝通的需要而定 鼓勵非文件方式的溝通

選擇敏捷或傳統過程與方法的考慮因素

需求易變

需求穩定

客戶或業務人員隨時可找到並與之溝通

客戶或業務人員較難接觸到

客戶更在意產品投入市場或系統投入運營所需的時間

客戶更在意產品或系統是否覆蓋了制定的需求或功能範圍

團隊(包括交付團隊和客戶團隊)成員分佈在同一地域

團隊成員分佈在不同地域

交付團隊擁有更多的開發過程自動化技能及工作環境,諸如自動化測試、持續整合等

交付團隊擁有較少的開發過程自動化技能及工作環境