这是敏捷开发用户故事系列的第三篇。(之一,之二,之三,之四,之五,之六,之七,之八,之九)

用户建模的目的,是为了更好地分析用户行为和用户价值,并因此获得商机。

用户建模四部曲

有一次培训中,分组建模的时候,一位学员就自言自语地说了一句话:“真的啊……我好像不知道谁会使用我的产品……”这其实是一种常见的现象。

比如前文所说的敏捷开发管理软件,如果想把一个用户故事描述为“作为一个用户,可以登录“我的空间”,以查看我我在的所有项目的进展以及自己的任务”,就会遇到这个麻烦。所谓领导,肯定想浅层次低能看到多少项目,就看到多少项目,而且最好能汇总一下显示;作为普通程序员,则肯定不止是想知道自己在哪些项目中有任务,而是想知道自己有哪几个任务是急需完成的(领导肯定也有着急的事情比如要审批,但肯定不如把控大局更重要);作为项目经理,又介于其间。

分析到这一步,就已经做了用户建模的第1步:列出尽可能多的用户

第2步则是:识别关键用户

按刚才的划分,还是很难确定谁是关键用户,因为“项目进展”的关键用户是领导和项目经理,而“我的任务”的关键用户则是普通程序员更常用。

这说明这个故事太大了,应该予以分拆,直到能识别出关键用户为止。后面还会提到另外一种更科学的判断故事颗粒度过大是否应该分拆的方法,这里先用这个方法。

第3步则是:面向关键用户,描述故事

假设我们先研究普通程序员的“我的任务”的功能,那么问题就简单一些了。故事可以描述为:“作为一个程序员,可以登录“我的空间”,以查看自己的开发任务中有哪些需要处理。”

为何要写上“那些需要处理”这句话?因为一般没有人会无缘无故面对自己的任务列表发呆的,他肯定来了就有它的目的。比如我们描述了这个“哪些需要处理”的价值观,眼前就能浮现出这些任务肯定不是一视同仁地列在那里,至于要突出“延期的任务”还是“亟待解决的任务”还是“领导关注的任务”,都是具体需求了,不难实现。

可惜经常不是这么简单的三种角色,而是上来一堆程序员、脚本设计师、测试人员、黑盒测试人员等等,不可能给他们每人写一个故事,这时候要做的是第2.5步:合并次要用户

在上面的例子里边,我们发现刚才列举的几种人可能在使用其他功能上有所不同,但在“我的空间”里边,还是基本相同的,所以把它们合并为一个“开发人员”,并把故事描述为:“作为一个开发人员,可以登录“我的空间”,以查看自己的任务中有哪些需要处理。”

总结

重新排序总结一下用户建模四部曲:

第1步:列出尽可能多的用户

第2步:识别关键用户

第3步:合并次要用户

第4步:面向关键用户,描述故事

灵活应变

本来写到这里就万事大吉了,国外书上也是这么说的,之前有几次课也是这么讲的,大家也听得挺开心的。

但自己在项目中实践了一段时间后,发现自己经常有一些“过度合并”的倾向。比如在那个敏捷开发管理系统中,角色设置是非常自由的,“添加用户”这个操作,任何授权的用户都可以做,而不一定是“系统管理员”,所以开始就写成“作为被授权的用户,可以添加用户,以便……”。但这种“授权的用户”越来越多了,就感觉其实逐渐坠入最开始的一股脑“作为一个用户”的情况,又都改成“作为一个系统管理员,……”。宁可放弃实际功能,而模拟用户可能的使用场景。

一会说要分清用户,一会又说太多了要合并,一会又说合并过头了不行,到底应该怎样?

这里借用《金刚经》里边的一句话,来稳定心法:“菩萨为利益一切众生故,不着于法。”就是菩萨的出发点是众生的利益,因此怎样做好他们就会怎样做,而不会纠缠于方法(比如韦陀菩萨经常杀生)。在如何用户建模这件事情上,出发点是“更清晰更有价值地描述故事”,而不是符合什么建模方法,因此实际使用时,应固守心法,而灵活掌握技法

本系列乃至本博客其他所有文章所描述的方法,都是即是非法,又是非非法,要本着对开发团队是否有价值,如何更有价值的心法来加以采纳或调整。

点击下载免费的敏捷开发教材:《火星人敏捷开发手册》

转载于:https://www.cnblogs.com/JPAORM/archive/2011/09/16/2510441.html

敏捷开发用户故事系列之三:用户建模相关推荐

  1. 敏捷开发产品管理系列之三:产品用户群规划

    本文是敏捷开发产品管理系列的第三篇.(序言及设立迭代目标,产品版本规划,产品用户群规划,新产品研发,预估会议,Product Servant,Product Owner团队,产品线管理) 上周在培训做 ...

  2. 敏捷开发日常跟进系列之三:故事板,看板

    这是敏捷开发日常跟进系列的第三篇. (栏目目录) 故事板和看板其实不是一个东西,前者是最初的敏捷开发里边的东西,受到了后者的启发产生的:而后者是制造业的东西,具体内容请参考末尾的百度百科.但是在敏捷开 ...

  3. 敏捷开发团队管理系列之三:程序与测试团队II

    这是敏捷开发团队管理系列的第三篇.(之一,之二,之三,之四) 测试团队的价值 这样看来,敏捷开发的质量保证问题,都被发开团队解决了,测试团队的价值何在? 这个可以从第一个项目组后来的发展来分析. 在整 ...

  4. 敏捷开发用户故事系列之一:何为用户故事

    这是敏捷开发用户故事系列的第一篇.(之一,之二,之三,之四,之五,之六,之七,之八,之九) 全系列将涉及何为用户故事,面向客户价值编写故事,用户建模,产品待开发项的分类,故事颗粒度,故事的组织结构,等 ...

  5. 敏捷开发用户故事系列之二:如何面向客户价值编写故事

    这是敏捷开发用户故事系列的第二篇.(之一,之二,之三,之四,之五,之六,之七,之八,之九) 敏捷开发中的用户故事采用的语法模式看似简单,却蕴含着深刻的思想. "作为一个--,可以--,以(以 ...

  6. 敏捷开发用户故事系列之五:用户故事的分类

    这是敏捷开发用户故事系列的第五篇.(之一,之二,之三,之四,之五,之六,之七,之八,之九) 引子 在之一.之二.之三中,我们曾经提到了"作为一个--可以--以便--"的用户故事描述 ...

  7. 敏捷开发用户故事系列之四:优先级排序

    这是敏捷开发用户故事系列的第四篇.(之一,之二,之三,之四,之五,之六,之七,之八,之九) 优先级排序听起来是一个很简单的工作,一个字段无外乎"重要/一般--",调整一下然后按排序 ...

  8. 敏捷开发用户故事系列之九:开发与跟进

    这是用户故事系列的第九篇.(之一,之二,之三,之四,之五,之六,之七,之八,之九) 产品负责人常常被描述成在计划会前准备好用户故事,在计划会上讲解并帮助开发团队估算后就万事大吉,只等月底接收" ...

  9. 敏捷开发用户故事系列之八:验收标准

    这是用户故事系列的第八篇.(之一,之二,之三,之四,之五,之六,之七,之八,之九) 要想不在评审会上得到"惊喜",Product Owner最好提前约定好用户故事的验收标准,而且每 ...

最新文章

  1. 人脸识别是怎么识别的?为什么需要大数据?(原理篇)
  2. intellij idea 配置远程访问本地的tomcat项目
  3. 东方金信:让大数据为民服务
  4. 顺序表应用4:元素位置互换之逆置算法
  5. 2008 noip 传纸条
  6. C++和Objective-C混编(官方文档翻译)
  7. java nio doug_深入的聊聊 Java NIO
  8. 华为Mate 40系列还有新升级:有望首发66W超级快充
  9. 20190818:(leetcode习题)反转字符串整数反转
  10. 专为Oracle数据库恢复而生 - PRM
  11. 1925异常 xshell_Xmanager Power Suite 6
  12. border边框属性的介绍
  13. CRM上线之路 走上了CRM实施顾问-第101天上班 -第21周
  14. supermap javascript 点聚合
  15. 21个小故事,21个启示
  16. 像素游戏画法_点画法遇到像素化
  17. (附源码)计算机毕业设计Java二次元文化网站
  18. 视频文件头解析--MP4-综述
  19. 了解多线程并通过Python程序实现多线程解决资源竞争、死锁等问题【非常详细】
  20. 跨专业计算机研究生如何毕业论文,计算机研究生小论文框架 计算机研究生小论文框架怎么写...

热门文章

  1. S03_CH03_AXI_DMA_OV7725摄像头采集系统
  2. 利用Simple-RTMP-Server(SRS)来进行直播
  3. 《你必须知道的.NET》第五章读书笔记
  4. 数据结构与算法读书笔记2----C# 选择排序
  5. 【MyBatis笔记】05-传统开发模式DAO
  6. 比特币所有权及隐私问题 | 转账的加密流程
  7. linux shell中的case语句用法 以及 case default设置
  8. “工业4.0”下的可视化工厂建设方案 1
  9. 嵌入式软件开发工程师的养成之路——从 推挽输出 开始
  10. 电脑故障扫描修复软件_非常时期不出门,自己在家修电脑,三例常见电脑故障排除方法。...