http://www.infoq.com/cn/presentations/qac-agile-requirement-analysis/ —— 钱安川
需求分析贯穿整个项目生命周期,需求分析和管理
一、需求分析的阶段 —— 重点是和客户交流、提问、确认想法——信息交换——达成一致
* quick start (会议)| 2-4周 | 识别需求、规模,识别客户业务目标、价值 |产生一些 must user story(粗粒度)
1. 目标:愿景和动机,快速产生需求列表,可视化的项目需求原型,(了解技术风险,验证可行性——TL),初步成本估算(财务模型),发布、迭代计划——计划是基于目前认知的,轻量的可视化文档,业务流程图(非常重要)
2. 交付物:技术架构图,平台,界面原型,功能分解图(must User story)
* 发布计划阶段:对高风险需求的可行性分析
* 迭代:需求细化,每个迭代会纳入新的需求
* 实施:反复验证需求,确认需求能够被实现
* 发布Release
动态的工作计划。是非线性的,迭代重新审视需求列表,优先级
人员配置:5(团队人数)+1(BA)/ 10+2
2. 如何表述需求:user story卡片,每个卡片是一个user story
3.
二、用户故事结构:
#102 —— us编号
注册用户 ——属于哪个功能模块的分类
一句话表达作为一个用户,我的用户资料被系统的记录下来,以便我能享受到个性化的待遇——US通常为该模式的一句话话
作为 XX(角色),我希望……(系统能够实现...),以便……(达成某业务目标)。
估算点数(大小)——一般为1 2 4 8 16
US 优先级
三、用户故事原则:
1. 站在用户角度,用用户语言描述
2. 3C原则,卡片本身代表了一个需求的存在,它是一段多角色对话(conversation)和交流的桥梁,confirmation确定性,验收条件(完成的标准)和范围是什么要定义清楚
3. 如何表达用户故事XYZ
x 用户
y 功能 ——实现的一种途径
z 价值 —— 真正业务目标
另一种方式ZXY,突出价值
4. 如何产生用户故事:常用方式叫角色流程方法,识别用户角色,和用户在一起讨论他们目前的流程是什么样的,未来的流程是什么样的,形成角色流程图,根据业务流程图切分User story
为了我能快速购买我想要的书,作为用户我希望能够通过书名和作者名去查找书籍
为了我能批量的购书,作为用户我希望把我感兴趣的书籍加入购物车
为了方便我做出购买决定,作为用户我希望我能查看我购物车里的书
5. 如何写一个好的用户故事,评价、鉴定、督促原则
I - independent 可以独立开发的 —— 现实中可能有依赖关系,在迭代计划时要考虑依赖关系
N - negotiation 对客户来说可协商,价值不会变,但选择最优的实现方式可协商
V - valuable 有业务价值的
E - evaluative 可评估的,大小可评估。若不可评估说明一定问题,技术不确定性,遗留系统,需要和技术人员讨论进行spark
S - 合适的粒度,大小合适,1/2/4个点的,短时间的,开发节奏
T - 可测试、验证的,US完成之后用户能够有可视化的业务价值(除了业务story,还有技术US,用户可能不可见如,并发量多少,支持多少用户,采用什么框架等)
6. 需求的分解 —— 需求分析是一个把信息通过分解,进行分类转化,形成知识的过程
形成知识结构后,再传递给开发人员
mingel——项目管理工具
7. 细化用户故事,细化、明确需求在迭代计划阶段——望远镜(quick start)到放大镜
新技术使用之前做spak,确定能够驾驭
8. 需求实施阶段——显微镜
每个细节,从业务角度判别需求已完整实现从而确认
四、 非功能需求卡片(可用性,归档,安全性,可审计,授权,本地化等)
需要与用户澄清这些story
五、验收用户故事的条件
属性: 各种业务场景如Happy path,异常事件流(在迭代之前考虑清楚,列出场景,而把技术实现的决策交给技术团队)、性能
六、管理需求——如何管理实体卡片
用户故事的生命周期指导开发
例子:interation story的生命周期(迭代时候用的)*must story 建议在release 和迭代计划时重新写
1. 迭代前——有一张卡片,标示我有这个需求→ 排优先级→ 开始分析(验收条件、非功能需求等)→ 纳入迭代计划 {or} 技术风险进行spak
2. 迭代中——等待开发,开始开发,开发完成
3. 迭代后——业务分析师在测试之前就进行验收(修复优先级最高sign off issue),再去测试,发现的问题再去排优先级再修复bug
看板管理(精益生产)——知识可视化,目的是增强管理的透明性,鼓励每个人发现问题、解决问题,而非等待别人来做
可视化管理如何做:用户角色头像在第一行更生动,用颜色区别优先级,用三列区分出开发状态
七、业务分析师在迭代过程中段怎么做
等待分析
1. 业务分析师细化业务需求
2. 与客户讨论、验证业务目标是否满足
3. 与开发团队讨论、实现的可行性
正在分析
1. 业务分析师随时解答开发人员疑问
2. 需要时再向客户澄清、确认
3. 开发完成后,业务分析师做第一手测试验收
正在测试
业务分析师与测试人员一起验收
向客户验收完成验收
验收完成
八、书籍推荐
能力要求:理解能力、逻辑思维能力,会议组织能力,挖掘用户需求,信息形成知识
咨询项目总结出的实践敏捷过程中的最大问题——思想意识,人的能力(技术,BA,管理)
如何写User Story
金字塔的与原理