用户故事与敏捷开发 读书笔记 01
软件需求是一个沟通问题,一旦任何一方在沟通中把持绝对地位,项目就会遭受损失。我们需要一种协同工作的方式,让双方都不占绝对主导地位,共同面对感情用事和办公室政治化的资源分配问题。
什么是用户故事?
每个用户故事代表了一个独立的功能,即用户在一个单一环境中可能做的事情。用户故事描述了对用户有价值的功能,由以下3方面组成:
- card:一份书面的故事描述,用来做计划和提升。
- conversation:有关故事的对话,用于具体化故事细节。
- confirmation:验收测试,用于表达故事细节,可用于确定故事何时完成。
一个优秀的故事应该具备以下特点:
独立的:应该尽量避免相互依赖,否则不利于排期。
可讨论的:故事是可以讨论的,他不是签署好的合同或者软件必须实现的需求。
对用户有价值的:保证每个故事对用户有价值的最好方法是让客户来编写故事。
可估计的:让开发人员能估算故事的大小,至少能猜一下。
小的:涉及复杂故事的拆分和简单故事的合并。
可测试的:只要有可能,就要把测试自动化。当产品是增量开发的,很多东西变化很快,这时就需要自动化测试来帮助你尽早的发现这些问题。