角度 | 传统需求分析 | 敏捷需求分析 |
需求分析时机 | 更多地集中在项目早期 | 近乎均匀地贯穿于项目的整个生命周期 |
需求划分单位 | 基于功能分解,划分模块或子系统,一个模块或子系统的颗粒度通常较大 | 基于能否独立业务价值,切割成一个个用户故事,一个故事有时会跨越传统的模块或子系统边界;用户故事是小粒度的,可测试的,可见的,并且是有价值 |
需求细化过程 | 一步到位,可供开发人员设计开发 | 逐步细化,仅就下一个迭代需要实现的部分进行详细分析 |
需求文档要求 | 正式文档,往往有明确的格式要求。既作为设计开发人员必须严格遵守的规约,也作为向客户提交的必备产出物之一。难维护,难验证(跟踪),很多产出物最终难以被阅读。 | 非正式文档。仅仅是辅助开发团队与客户沟通,不作为规约,也不作为必备产出物。更多强调通过自动化功能测试用例来跟踪系统需求。(对于组织过程资产管理要求,可以在此基础上形成可阅读可理解的轻型文档)。 |
需求文档同步 | 项目中后期一般都处于不同步状态 | 即时的同步 |
需求传递过程 | 单向的陈述与记录,文档传导(线性的传递,误导放大,缓慢) | 聚议,共同参与,业务场景与用户故事,及时的非正式沟通 |
应对需求变更 | 有严格的控制流程,视变更为风险 | 视变更为必然或预期中的事情 |
表2:敏捷需求分析的特征对比