《用户故事与敏捷方法》读书笔记——第一章

2019-03-05  本文已影响0人  yuhan_sining

第一部分 起步

第一章 概览

什么是用户故事

用户故事描述了对用户、系统或软件购买者有价值的功能。

用户故事代表对用户有价值的功能。
例如,一个用户故事雏形是“写在卡片上的用户故事雏形”,那么对应的示例故事可能包括如下几个:

  1. 用户可以搜索职业。
  2. 用户可以发布新职位。
  3. 用户可以限制浏览其简历的人。
  4. 这个软件将用C++语言来编写。
  5. 程序将通过连接池连接到数据库。

故事1、2、3就是比较理想的用户故事,因为他们对用户是有价值的。
而故事4、5就不是理想的用户故事,因为用户不关心系统是用什么语言编写的,也不关心应用程序如何连接数据库之类的技术细节。这2个故事都是开发人员才需要关心的技术问题。

客户为什么要编写故事?
1、首先,每个故事必须用商业语言来写,不是用技术术语,这样一来,客户团队可以排列故事的优先级,放入迭代和发布。
2、其次,作为主要的产品构想者,客户端团队所处的位置最适合描述产品行为。

规划发布和迭代

发布规划指的是确定项目时间表和预期功能集合之间达到平衡。

假设开发团队每轮迭代的速率是13个故事点:

故事 故事点数
故事A 3
故事B 5
故事C 5
故事D 3
故事E 1
故事F 8
故事G 5
故事H 5
故事I 5
故事J 2

用户故事的发布计划:

迭代 故事 故事点数
迭代 A、B、C 13
迭代 D、E、F 12
迭代 G、H、J 12
迭代 I 5

分割故事,做更好的发布计划:把故事I分成故事Y(3个点)和故事Z(2个点)

迭代 故事 故事点数
迭代 A、B、C 13
迭代 D、E、F 12
迭代 G、H、Y 13
迭代 J、Z 4

什么是验收测试?

验收测试用来验证实现的用户故事是否符合客户团队的期望。

测试应该尽早的在迭代中编写,早期编写测试是非常有用的,因为这样一来,客户团队的假设和预期会更早与开发人员沟通。

假设写下故事“用户可以用信用卡为购物车中的物品付款”。然后再故事卡背面写下测试描述:

这些测试捕获了这样的预期:系统将可以处理Visa卡、万事达卡和美国运输卡,不允许用其他卡购买。尽早把这些测试交给开发人员,客户团队不仅澄清了他们的预期,他们可能也同时提醒了程序员可能会忘记的情形。

为什么要变?

每个用户故事代表一个独立的功能,即用户在一个单一环境中可能做的事情。
迭代过程是一个逐步求精的过程。
推迟细节很重要,因为这样一来,我们在不确定是否真正需要某个新特性时,可以不花过多时间来考虑它。使用故事,我们不必假装可以事先知道并写下所有东西。以客户团队和开发人员的讨论为基础,不断地精炼我们的需求。

小结

上一篇 下一篇

猜你喜欢

热点阅读