敏捷开发(二)- 编写故事

      在本章我们将关注故事编写,为了更好的构造故事,我们关注六个特性,一个好的故事应该具有如下6个方面的特点

故事的6个特征

1、独立的

     避免故事之间的相互依赖,在对故事排列优先级时,或者使用故事做计划时,故事间的相互依赖会导致一些问题

2、可讨论的

     故事是可讨论的,他们不是签署好的合同或者软件中必须实现的需求,敏捷故事是功能的简短描述,细节将在客户团队和开发团队中讨论中产生,故事是提醒客户团队和开发团队以后要进行关于需求的对话,它并不是具体的需求本身,因而它不需要包含具体的细节。这些细节可以在后期例如:Scrum计划会议上面进行讨论

3、对用户或者客户是有价值的

      “每个故事必须对用户有价值”,这句话不是正确的,许多项目包含着对用户没有意义的故事,要记住用户(软件实际的使用人)和客户(软件的购买者)之间的区别。

       例如现在的很多公司做的 电信项目来说:客户就是电信提供商,但用户确实广大人们群众,像“5台服务器集群”这样的故事,对用户来说没有任何意义,群众只关心服务,但是对于客户来说,这个故事就非常有意义了。

       之所以介绍上面的故事是想说,故事一定是对用户或者客户有价值才行,不要出现只对开发人员有价值的故事

       例如:

        1、所有的数据库连接要从连接池中获取

2、 配置程序的log4j日志输出,并且配置好日志级别。

       像这些故事关注的是技术和实现细节,这些故事的背后想法是好的,但是故事的编写没有能够体现对客户或用户的价值。

 上面的故事可以换成如下的形式:

      1、这个软件,最多50位用户能使用5用户的数据库许可

      2、所有的错误应该以统一的方式展现给用户并做记录

4、可估计的

     故事是可以估算大小、即把故事转变成代码的工作量是可以估算的。

     如下3个方面可能导致故事无法正常估算

       1、开发人员缺少领域知识

       2、开发人员缺少技术知识

       3、故事太大了

5、小的

      故事的大小很关键,故事太大或者太小都无助于定制计划。如果故事太大 比如“一个用户可以计划一次度假”,计划一次度假包含着一系列的任务,women把这种大故事成为“史诗故事”,对与这种故事我们要拆分成更小的故事,

      合适故事的大小最终取决于团队、它的容量和使用的技术

      故事太大就要分割故事

      故事太小就要合并故事

6、可测试的

      故事必须是可测试的,成功通过测试证明开发人员正确的实现可故事。

      不可测试的故事发生在非功能性需求上面,这些需求和软件有关但是没有直接关系

      1、用户必须觉得软件很好用

      2、用户觉不需要花很长时间等待窗口出现

      这个2个故事都是不可测试的,无论什么时候,只要有可能,就要把测试自动化,要正确99%的故事都是可测试的。当产品增量开发时,很多东西变化的很快,昨天能工作的代码,今天就会出现问题,这时候就需要通过自动化测试来尽早的发现这些问题。

故事特征的总结

     立项情况下,故事之间独立的,有时候很难做到这一点,但是我们要尽力去实现。故事之间的交付顺序应该是无关的,可以任意拿一个故事来实现

     故事细节由用户和开发人员讨论得出

     故事应该很清晰的体现出来对用户活客户的价值,最好的做好事让客户编写故事

     故事可以注释一些细节,但是过多的细节会使故事难以理解,也可能给人一种这个故事很详细可不需要再和客户沟通了

     给故事假山注释最好的方式是编写测试用例

     如果格式太大,符合故事和复杂故事可以分成几个小故事

     如果故事太小,几个小故事可以合并成一个大故事

     故事应该是可测试的

开发人员职责

     负责帮助客户编写故事,这些故事要能提醒你们同客户交谈,而不是记录详细的需求定义,故事应该是对用户或客户有价值的,他们是独立的,可测试的、大小合适的

     如果被问及实现故事所用的技术或者基础架构信息,应该使用对用户或客户有价值的术语来描述。

客户团队职责

     负责编写故事,这些故事要能提醒你们同开发人员交谈,而不是记录详细的需求定义,他们对用户或者你们自己是有价值的,他们是独立的、可测试的、大小合适的

posted @ 2015-04-03 20:43  BarryW  阅读(1742)  评论(0编辑  收藏  举报