打算在部门内部推行XP,也看了一些资料,根据我们部门的实际情况,打算从需求方面采用user story开始。但是在实践了两次之后,有些问题浮现了出来,因此,特地到此宝地求教一二。
User story,从我的角度来理解,他的好处,显而易见,可以将用户的需求尽快、尽早、尽量详细的向开发团队、以及利益相关者来开放,可以发现需求中不合理的地方,并且可以挖掘出需求中一些真正对客户有价值的东西;也许客户刚开始认为重要的需求,由于某些新的,更加关键或者更加有business value的东西出现,而变得不重要了。此外,对user story的讨论,会对设计者产生潜移默化的影响,user story的INVEST特性中的I(independent)特性,自然的要求系统的各个模块和层次之间,尽量减少耦合。其余的几个特性,虽然说起来很简单,但是怎么做到,真的是挺难的。
以我最近的实践,我们部门内部打算以xp的方式开发一个图书管理系统(BMS)。我要描述的后面三个user story涉及如下的角色:
☆初级读者:只能使用系统的一些基本功能,并且所能查阅到和借阅的书籍也受限制
☆资深读者:可以使用系统的一些深入功能,查阅到的书籍范围比初级读者多
☆系统管理员:系统的全部功能都对他开放,系统中的数据处理权限对他全部开放
user story:
1、初级读者对现有全部图书的情况进行查询。
接受条件:
○ 按照下列查询字段:书籍名称、所属类别、作者、出版社、ISBN;
○ 对查询结果的要求:可以按照书籍名称、所属类别、作者、出版社、价格进行排序;
○ 可以看到书籍当前的借阅状态(是否被借出,归还日期等)
○ 查到的书肯定都是可见的(系统中的书籍,有可能是不可见的,)
○ 不能看到资深级别的书
2、资深读者对现有全部图书的情况进行查询。
接受条件: ○ 按照下列查询字段:书籍名称、所属类别、作者、出版社、ISBN、读者级别、借阅人、借阅状态
○ 对查询结果的要求:可以按照书籍名称、所属类别、作者、出版社、借阅人、借阅读者级别、价格进行排序;
○ 可以看到书籍当前的借阅状态(是否被借出,归还日期等),并且可以看到借阅人是谁
○ 查到的书肯定都是可见
3、系统管理员对现有全部图书的情况进行查询。
接受条件: ○ 按照下列查询字段:书籍名称、所属类别、作者、出版社、ISBN、读者级别、借阅人、借阅状态、是否可见(包括全部的情况)
○ 对查询结果的要求:可以按照书籍名称、所属类别、作者、出版社、借阅人、借阅读者级别、价格、是否可见进行排序;
○ 可以看到书籍当前的借阅状态(是否被借出,是否处于续借状态,归还日期等),并且可以看到借阅人是谁
○ 可以看到系统中的全部书籍(也可以看到对读者不可见的书)
就上述三个user story来讲,主干功能是相同的,但是有些细节:书籍的状态,借阅人的状态,能看到的书籍名录,书籍的明细字段等,这些细节不甚相同。当我写出这三个user story的时候,我对自己产生了怀疑,这些是合格的用户故事么?他们之间并不是互相完全独立的啊。是不是能够考虑拆分?如果考虑的话,又该如何拆分呢?这些疑问,哪位实践过user story的兄弟能给指导一下啊?
分享到:
相关推荐
在实践中,我们可以通过用户角色模型、用户访谈、调查问卷、观察和讨论会等方式来获取 User Stories,编写可测试的 User Story,并根据 User Story 来划分优先级,制定计划,估算成本。同时,我们也可以通过 User ...
《User Story Mapping》是一本非常适合敏捷团队成员阅读的专业书籍,无论是对于刚接触敏捷方法论的新手还是已经在实践中遇到挑战的经验丰富的专业人士来说,都能够从中获得有价值的洞见和启示。通过学习本书,读者...
用户故事(User Story)是一种敏捷开发方法中的需求描述方式,主要用于捕获最终用户的需求,并作为软件开发的基础。它以简短而明确的语言描述了用户期望的功能,使开发团队能够更好地理解用户的需求。 在本篇文档中,...
为什么使用User Story? 什么是User Story? 好的User Story有哪些特点? User Story的生命周期是什么样的? 切分User Story的小技巧
Epics通常用来表示大型、复杂的功能或需求,它们可以被分解成多个更小、更具体的User Stories,这些User Stories代表了实际用户的可交付价值。vanessa-bdd-editor允许用户以BDD的格式来组织和管理这些元素,提高了...
后台管理模块 User Story.xlsx
用户故事(User Story)是敏捷软件开发中用来表达用户需求的一种简洁的方式,它通常被用来在敏捷开发框架中制定软件需求规格说明书(Software Requirement Specification,简称SRS)。用户故事关注点在于用户和系统...
UserStory_MICROSAR_Classic_LegislativeDiagnosticsViaOBD
【VectorCast_user_code】使用教程 VectorCast是一款广泛应用于软件测试,尤其是单元测试(UT)...在实际项目中,不断学习和实践User Code的用法,将有助于更好地利用VectorCast工具,从而实现高效、全面的软件测试。
在进行硬件设计和开发工作时,针对特定芯片和其应用的硬件设计指导手册是不可或缺的参考资料。对于HI3516C这一款产品而言,《HI3516 Hardware Design User Guide》是一份详细描述其硬件设计要点、推荐和方法的官方...
在C#编程中,UserControl是一种自定义控件,它允许开发者组合多个基本控件以创建复杂的用户界面组件。在Windows Forms应用程序中,我们经常需要在UserControl与主窗体之间进行数据或事件的交互,这通常涉及到消息...
当我们在网络环境中处理权限问题或排查安全事件时,有时会遇到只有SID的情况。这时,sid2user就非常有用,它能帮助我们把SID转换成易于理解的用户名,从而确定该账户的归属和权限。 相反,user2sid工具则是用来将...
3. **设计时支持**: UserControl提供了设计时的可视化编辑,可以在设计时调整控件的外观和行为,这对于开发者来说是非常直观和方便的。 4. **属性和事件**: 为了使UserControl对外部可见并可操作,可以声明公共属性...
user stories,mainly for agile development
本篇文章将详细探讨如何解决在扩展Django自带`User`表时遇到的问题。 首先,为了扩展`User`模型,我们需要自定义一个新的模型来继承Django的`AbstractUser`模型。`AbstractUser`是`User`模型的一个抽象版本,允许...
用户建模方法的使用,不是很全^_^;但关键部分很明确,是很好的用户为中心的设计的指导材料