场景-故事型

  --------------------------------------------------------------------------------

  敏捷中非常推崇的方法,但多数敏捷方法只提到了故事,而较少谈及场景。

  即使不使用敏捷,也可以使用这种方法。

  简介:

  故事只有一句话,但却很好地表达了几个重要内容,比如(银行软件)“三次密码错误锁定”这个功能会写成“作为用户,我希望在取款时尝试密码第三次错误后锁定账号,以防止有人恶意尝试我的帐号密码。”角色-操作-目标 是故事中重要的三个要素。很多传统的需求描述方法文字冗长,却未能覆盖这三个要点。

  场景呢,则是某种应用环境,围绕场景可以发生若干故事。比如“取款”是一种场景,包括了密码正确正常取款/密码可以重试两次/三次密码锁定等若干故事。

  以下产品与之匹配:有一定的创意,很希望通过创意生成故事,进而增进产品的功能。

  几个明显地是应该选择这种需求结构的判定条件:

  1. 产品的吸引力不在于功能多少(否则应该用上面的文件-操作型),而是实现到何种程度(故事中的“目标”)

  2. 针对一种场景,可以想象很多故事以增进产品价值(简直是无穷的,因此需要排列优先级)

  使用这种需求结构应该注意的地方:

  1. 故事必须是一个能/也必须整体交付的功能,这是故事的一个天然颗粒度把握方法。

  常见问题:

  1. 故事写得不好。问题很多,买本书看看:用户故事与敏捷方法 http://www.china-pub.com/196596。很可惜,里边没有怎么提到用户故事如何组织。

  更详细的内部结构:

  1. 很多场景各自还包含若干个层次

  成功要诀:

  1. 一定要面向用户价值描述用户故事,否则经常无法达到预期效果。比如一款杀毒软件,每次安装其他软件时,需要多次修改注册表和硬盘,因此弹出的拦截界面很多;尽管可以选择“相同操作不再提醒”,但仍然弹出。因为用户理解的“相同操作”(同一个软件的安装过程中)和程序员理解的“相同操作”(同一个注册表项的修改)不同。

  用例型

  UML的方法。

  没好好学过UML,所以也不太清楚。

  只记得非常重要的一句话:只描述那些对客户有价值的用例,登录/修改密码/XXX都别写(潘家宇说的)。

  从这一点上看,UML的组织方法是面向开发团队的。

  想想也是,别看都是图形化的,UML可真不是写给客户看的,包括UC图。而且UC图下面马上接上的是Sequence等技术图,如果一个UC下面没有或者不必要画那些技术图,这个UC也可以消失了。