热搜:
编辑导读:用户故事是在软件项目开发的过程中,被作为描述需求和分析流程的一种表达形式。它的形式偏向于小说,比传统的描述需求方式更生动,也更易理解。那么,如何写一个用户故事呢?本文作者将以一个设备巡检&维保功能作为实例,来展示用户故事的撰写。

一、什么是用户故事?

现在很流行一种说法,叫做用户故事,那么什么是用户故事呢?

用户故事在软件项目开发的过程中是被作为描述需求和分析流程的一种表达形式。

用户故事=用户+故事=人+故+事=人+原因+结果+场景+价值+问题,那就是一个人因为什么原因要做什么事,期间牵扯到了什么问题,以及在什么样的场景下进行的,提炼出来三要素就是who、why、what,这和小说有点儿类似。

从需求角度描述就是一个用来确认用户和用户需求的简短描述。

这里别的不多说,本人就以一个设备巡检&维保功能作为实例,来整体展现一下用户故事的具体情况。

二、实例展示

为了规范用户故事的表达,便于沟通,用户故事通常的表达格式为:作为一个<用户角色>, 我想要<完成活动>, 以便于<实现价值>。

一个完整的用户故事包含三个要素:

  1. 角色(who):谁(用户)要使用这个软件;
  2. 活动(what):用户要完成什么活动;
  3. 价值(value):用户为什么要这么做,这么做能带来什么价值,以及在做的过程中会带来那些没有考虑到的问题,并给出问题的解决方案;

2.1 设备巡检概念

根据用户角色进行权限的区分和分配之后,主要围绕发现问题,解决问题,销项问题为主要核心点,用简单的流程方式来涵盖消息的推送、设备的自动巡检、维保,并让用户能够真实的体验到移动式的巡检过程管理,从而衔接上下层人员之间的互动,提高管理和执行效率,将设备巡检的过程、状态、结果与时间、空间相结合,用可视化的数据呈现出来,并联动三维模型,使得虚实互联更加的立体和真实。

2.2 人物:谁要使用这个功能?

小明:巡检人员;

小张:负责人员;

刘总:业主用户;

小王:供应厂商;

2.3 概要:故事围绕的中心思想是什么?

平常的一天,系统大屏上发生了一次告警,告警信息第一时间推送给相关的巡检人员小明和负责人员小张,两人在接收到推送信息之后开始了巡检的工作来应对这次告警带来的一系列的问题。

2.4 故事:相关用户需要完成什么样的功能?

2.4.1 事发

平凡的一天,艳阳高照,四月的天让人舒服的实在是不像话。

小明今天出家门有些晚,刚挤上去公司的地铁,手机上的微信公众号便接收到了一个消息,他在车上也闲来无事,便打开了手机。

“出事儿了?”

小明见推送信息而来的公众号是公司的,微微嘟囔了一声。

进入微信公众号,小明很快找到了最新推送的信息,见是一个有红色字体显眼的告警信息,他的心跳骤然加速。

要知道,对他这个巡检人员来说最怕看到这样的信息,有这样的消息出现就说明他今天的工作就要繁忙了起来。

小明连忙点击了这个告警信息,进入到了其关联的设备所在的三维模型界面内,他先是看了一下有关于这个设备的告警内容。

“水温40摄氏度,比预警值高了将近10摄氏度,这么高!”

小明此时有些紧张起来,道。

由于小明的声音有些大,使得身侧的其他乘客都纷纷朝他这边侧目而来。

小明意识到了自己的失态,看了看四周,冲着朝他看来的乘客微微一笑来化解尴尬的场面。

“是什么导致温度这么高的呢?哪一个设备发生了故障?或者传感器本身出现了问题?”

小明内心心思百转,开始根据所看到的信息来分析问题根源。

慢慢平复了内心的情绪,在有了思路之后,小明开始在手机上操作三维模型,以发生告警的传感器为中心对四周相关的设备进行查看,见距离这个传感器最近的是一个叫做sb-水泵1的设备,他经过一番判断之后,觉得对待问题不能马马虎虎,决定需要对这个设备进行一次巡检才能够知道根本的问题,于是在三维模型的底部找到“需要巡检”的操作按钮,将这个告警信息转变为巡检的状态。

坐地铁一般是半个小时,小明原先从来没觉得长,今天却觉得出奇的长。

当地铁到站之后,小明连忙跳了出来,然后一路狂奔除了地铁站。

地铁站距离公司不远,走路差不多需要五分钟的时间,小明将其缩短到了两分钟,来到公司之后,打开电脑,进入装配式机房可视化运维系统,然后再一次确认这次告警信息。

作为负责人员的小张此时拿着一杯奶茶气喘吁吁的来到了公司,他刚才正在星巴克店内悠闲的吃着早点的,本以为今天和原先一样,也是无事可做,就在这时,手机上的公司微信公众号接收到了一个信息,他本以为还是推送正常的消息,有些漫不经心的打开,当见到信息卡片的那一串儿红色字体之后,他身子一震,连忙点击了进去,看到的和小明同样的信息,就在他评判这次告警信息的重要程度的时候,这边就收到了此告警信息设定成巡检任务的提醒,先是松了口气,然后收拾一下拿着还未喝完的奶茶离开了星巴克,经过一路快走和小跑的操作,小张这才比小明后五分钟到了公司。

“小明,这个告警信息需要巡检的状态我已经看到,你抓紧去巡检一下,然后将巡检工单呈现出来。”

小张的工位距离小明的没有多远,他还没有坐下,冲着小明摇晃着自己的手机道。

“好的张总,到时候记得销项呦!”

小明冲着小张微微一笑,然后道。

“你那边巡检完成之后我这边就能实时看到,到时候我看情况吧!”

小张坐了下来,打开了自己的电脑,同样进入了装配式机房可视化运维系统,点击最新告警面板,笑道。

“好的!那我去巡检了!”

小明站起身来,拿好工具,离开了自己的工位,然后往机房走去。

“注意安全!”

小张好心的提醒了一句。

小明没有停下,只是摆了摆手,然后离开了办公室。

2.4.2 巡检

小明进入了机房内。

由于对机房内的布局了如指掌,再加上小明从装配式机房可视化运维系统上已经确定了发生告警的设备所在位置,所以他拿着工具轻车熟路的来到了发生地。

先是用眼睛扫视了四周,用手摸了摸一些设备表面,然后拿出工具开始对相关设备进行仔细的巡检。

时间就在小明的忙碌中悄悄的流逝,由于机房内比较沉闷,他的额头上出了一些细汗。

经过1个小时的巡检,小明这才停下来,他擦了擦汗,然后收起了巡检工具,拿出笔记本和笔。

用笔在笔记本上写下来了对那些设备巡检下来的记录之后,他先用手机对笔记本拍了一张照,然后对巡检的那些设备也进行了一一拍照。

“水泵和水管没什么问题呀?可是这水温传感器的监测温度怎么还是40摄氏度?这个水温传感器有问题!”

一系列工作忙完之后,小明松了口气,疑惑的道。

说完,小明打开了公司微信公众号,然后找到了此告警信息,分别录入了巡检时间(2021.04.09 09:00-2021.04.09 10:00)、巡检工时(1个小时)、巡检人员(小明)、巡检描述、巡检设备型号和名称(sb-水泵1、sg-水管1、sw-水温监控器1),并对三个设备的巡检结果分别设定为正常、正常、故障,然后上传了刚才所拍摄的有关于这次巡检的照片。

巡检工单信息录入完毕,小明经过了第二次印证,觉得没问题,然后就点了办理按钮。

点击巡检工单内办理按钮之后,有工单办理成功的弹窗提示。

这时,巡检工单内的巡检状态自动从“待巡检”转变成“已巡检”状态。

2.4.3 复核

办公室这边,小张刚喝完手里的奶茶,然后对装配式机房可视化运维系统进行了查看,待办信息和手机端各自收到了同样的信息,他打开待办信息,见是小明提交的巡检工单,在查看了一系列数据之后,找到了告警的根源。

“原来是sw-水温监控器1故障,这可要通知供应厂商来维修了,不然影响监控数据的真实性。”

小张微微皱了皱眉头,自言自语的道。

就在这时,小张的手机响了。

小张见打来的手机号备忘录是刘总,连忙接了电话。

“喂!刘总你好!”

小张很有礼貌的笑道。

“小张,怎么搞的?今天发生的告警信息现在怎么一直存在!”

业主用户刘总电话那边有些不高兴的道。

“是这样的刘总……”

小张心里面一阵紧张,开始将出现的问题给刘总进行了详细的解释。

“那也不能让告警信息一直存在呀?这样很容易造成困扰!先把sw-水温监控器1给禁用了吧,等厂商维修完成之后再重新启用!”

刘总那边的语气稍微缓和一下,不紧不慢的道。

“是刘总!”

小张连忙应道。

刘总那边挂断了电话。

小张嘘了口气,趁手机在手里,便进入了那个巡检工单,在他的权限影响之下,巡检工单内多了三个功能,一个是禁用设备、一个是通知厂商、一个是确定功能。

小张选择了禁用sw-水温监控器1之后,然后点击了通知厂商的功能,最后点击确定按钮,工单信息得到了更新。

这时装配式机房可视化运维系统上的告警信息下架。

已经离开机房的小明这边也收到了巡检工单更新的信息,他停下来浏览了一遍,然后走向了办公室。

2.4.4 维修

正在上班和同事聊着闲事儿的供应厂商小王这时手机端接收到了一个信息,他结束了交谈,然后打开手机查看,先是进入到了消息推送界面,点击最新的消息进去之后,看到与小明和小张所看到的同样的三维模型界面,只不过他这边显示的信息比较有限,只展示了sw-水温监控器1故障和相关的巡检描述内容,以及三维模型上高亮标记出来的sw-水温监控器1。

小王用手摸了摸有些胡茬的下巴,随后录入能去维修的时间段,然后点击“收到”按钮,在巡检工单下面以留言的形式展示,这时信息被反推了回去。

小明和小张各收到一个消息提醒,点击查看,看到小王的留言内容。

2.4.5 销项

第二天,小王如期来到小明所在的公司,在找到小张之后,和小明来到了机房,开始对机房内的sw-水温监控器1进行维修,很快便解决了问题。

小王打开巡检工单内将sw-水温监控器1下出现的板块内填写了维修描述,确认了维修时间和维修工时,以及维修人员,并上传了维修期间的相关照片和证明文件,最后点击确定按钮。

接下来小明进行维修的确认,并对sw-水温监控器1进行了巡检,没有什么问题,在工单内将sw-水温监控器1的状态修改为正常。

小张这边接收到了巡检工单的更新提醒,经过仔细的确认之后觉得没什么问题,便重新启用了sw-水温监控器1,然后点击销项按钮,结束这次设备巡检循环,关闭了巡检工单,这则告警信息在告警列表中的处理状态由“未处理”变成了“已处理”,最后归档。

巡检工单被销项之后,小明得到了一条消息提醒,见巡检工单上被印上了已销项字样,也看到了三维模型中被高亮标记成红色的sw-水温监控器1变成了绿色,然后从其浮窗内查看到最新监控的水温恢复到正常(预警值之下)之后,终于松了口气,这件事儿总算结束了。

2.4.6 监管

业主用户刘总在得知告警信息已经被处理之后,想要得知员工是怎么解决这个问题的经过,或者想要实时跟踪这次巡检的过程用来进行监管,打开这则告警信息对应的巡检功能,可以在弹窗内查看到一个时间轴。

  • 时间轴从告警发生的时间为起点;
  • 第二个节点是小明将告警信息设定为巡检任务的时间;
  • 第三个节点是小明将巡检任务提交成巡检工单的时间;
  • 第四个节点是小张禁用sw-水温监控器1的时间;
  • 第五个节点是小张通知业主厂商小王的时间;
  • 第六个节点是小王回复小张和小明的时间;
  • 第七个节点是小王完成维修的时间;
  • 第八个节点是小明更新巡检工单的时间;
  • 第九个节点是小张重新启用sw-水温监控器1的时间;
  • 第十个节点是小张将巡检工单进行销项的时间;
  • 第十一个节点是告警信息变成已处理的时间。

每一个时间节点对应发生的事件内容(比如第九个节点对应的事件则是负责人员小张启用sw-水温监控器1)。

业主用户刘总从头到尾不仅能够看到整个巡检的经过,结合三维模型还可以在主要的时间段内查看到巡检任务的推进情况以及清晰的解决问题的思路,可谓一目了然。

刘总对于这次的巡检很满意。

2.4.7 后续

就在小明感觉轻松的时候,他的手机端微信公众号和电脑上装配式机房可视化运维系统再次有告警信息产生,打了一个激灵。

“今天怎么会有这么多的告警信息?怎么回事儿?”

小明稍微抱怨了一下,打开电脑点击最新的告警信息。

“这是三天之前的!怎么会漏掉呢?”

小明看清了最新告警信息的发生时间,小声道。

说完,小明仔细的回响三天之前的情况,这才想起来,原来那天他的工作非常的繁忙,所以百忙之中竟然忘记了这条告警信息。

由于系统设定了告警信息在一定时间内(比如三天)没有进行处理的话,那么就会重新再次提醒一次。

“小明,三天前我一直在外面开会,所以也没有关注这个,今天不提醒还真是把它忘了,我已经将这则告警设定成了巡检,接下来咱们开始解决一下这个问题吧!”

不远处的小张看向小明这边,笑道。

“张总,我先在系统上确认一下!”

小明一边盯着电脑,一边答道。

“好的,我等你消息!”

小张也开始盯着电脑,回应道。

小明现在看到了告警信息更新,如今已经被设定成了巡检任务。

……

2.5 讨论:为什么需要这个功能,这个功能能带来什么样的价值?

休息期间,小明和小张针对于使用装配式机房可视化运维系统的感受进行了讨论。

“小明,你觉得这样的系统怎么样?”

小张用右手是指推了推有些滑落下来的眼睛,问道。

“很不错,既能够实时获取信息,又能够通过三维模型准确的查看到发生事件的设备,还能够以移动的方式及时的判断和评估情况并做出下一步的推进。”

小明总算能够平心静气的喝一口茶了,他输了口气道。

“与你原先所用的巡检系统相比呢?”

小张见小明话只说一半儿,便接着问道。

“至少不用一板一眼的创建巡检计划和任务,只需要接收到告警信息就可以,只要发生告警的设备多多少少肯定是有问题的,这样我们巡检人员只需要找到问题的源头,然后直接解决掉,不用在机房内对所有的设备进行巡检,更不用只有巡检才会发现设备除了问题,那样的话效率实在是太低。”

小明再次喝了一口茶,答道。

“我也有同感,原先传统的巡检系统作为负责人的我不仅需要创建巡检计划和任务,还需要录入需要巡检设备的一大堆的字段数据来给巡检人员一个参考点,其实我都不知道需要巡检的设备是不是有问题,只有巡检人员巡检之后才知道结果,这样的话不利于及时发现和解决机房中出现的问题,并且增大了巡检人员的工作量,也增加了我的工作量,等到巡检人员巡检完成任务之后,我还需要一个一个的去确认,没有问题还好直接销项就行,即使这样工作量也非常的大,有问题就更加的麻烦,需要找厂商进行维修,维修之后还需要巡检人员进行确认,最后在进行销项,整个流程下来效率非常的低和没有目标,不能够直接的去解决问题。”

小张沉吟了一会儿,组织了一下语言,道。

“这个系统有三维模型和现实机房能够很好的互联,我去机房不需要刻意的去找发生问题的设备,只需要在三维模型中找到,然后确认相关的信息,直接去机房中就能够直接找到问题设备,省了很多的时间和麻烦,并且维修好的设备状态及时能够同步到三维模型上呈现出来,两者的互动真的很及时和真实。”

小明连忙点了点头,笑道。

“是的,三维仿真、虚实互联、多终端联动、以及问题自动自行自助的推送,这些不仅提高了我们的工作效率,而且使得数据更加的透明和多元,在明确的目标下让我们工作更加的有条理性。”

小张根据刚才的讨论进行了一个小总结。

“我查看的时候,不仅可以全程跟踪你们的动态,而且可以全局的去了解你们谁做了那些工作,都完成了那些事儿,你们所完成的事情带来了那些价值,尤其是以时间轴的形式呈现整个巡检任务,然后结合三维模型,目的很明确。”

这时正好路过的业主用户刘总听到了小明和小张的谈论,也加入了进来,满意的道。

“这样也有利于我们维修人员及时的了解具体的情况,和通过三维模型知道发生问题设备的详情,在维修完成之后,及时更新维修状态。”

正要离开公司的业主厂商小王也被三人谈论的话题吸引了过来,插嘴道。

就这样,四人在经历了这次设备巡检之后都说出了自己的想法。

三、牵连到的问题

3.1 问题一

同一个监控器(比如其5分钟监控一次)如果在不同的时间段内监测的指标一样且都超过预警值,那么5分钟都需要告警一次吗?

答:当将sw-水温监控器1设为故障的时候,然而根据sw-水温监控器1是五分钟监控一次的特点,这一天怕是一直在进行告警,这样会令人很讨厌,可以对告警信息做压制的规则处理,即同一个监控器如果在不同的时间段内监测的指标一样且都超过预警值,不让其都进行告警信息的推送,只让其和第一次告警信息融合成一条告警信息,并且在信息页加入各个时间对应的温度列表即可。这样也就给了巡检人员一个评估是否需要进行巡检的数据集合。

3.2 问题二

监控器监控出来的指标如果超过预警值的话,产生的告警信息需要分等级吗?

答:比如,同样水温监控器的预警值都是30摄氏度,两个水温监控器监控的值分别为33摄氏度和40摄氏度,其所带来的结果是不一样的,对它们分等级的话,需要不同等级的告警对应不同权限的人员,这里可以将告警的严重程度看成风险,根据风险等级程度来对巡检任务进行升级的管控。

3.3 问题三

需要给监管人员(比如负责人员和业主用户)加入催办的功能吗?

答:如果告警信息被设定为巡检任务之后,那么就具有巡检工单的时效性,由于某种原因,巡检人员没有对这个巡检工单进行及时的处理,那么需要自动(在已定的时间内触发这个功能。)或者给于负责人员一个“催办”的功能,负责人员在自动提醒还没有发生的时候点击“催办”功能,则可以提前给巡检人员进行消息的提醒。

3.4 问题四

需要给业主用户加入抽查的功能吗?

答:如果业主用户对巡检工单进行查看,那么可以给他设定一个“抽查”的按钮,通过这个功能实现与巡检人员、负责人员甚至是维修人员的互动,并可以对巡检工单完成的满意程度进行发表个人意见,增强监管力度。

3.5 问题五

如果实行了问题1中所说的告警信息压制操作的话,那么巡检人员漏掉此信息之后,需要增加几天之后(三天?)重新提醒的功能吗?

答:如果巡检人员由于一些原因漏掉三天前的告警信息,因为根据问题1中的描述,告警信息已经做了压制处理,不可能每隔几分钟报一次警,所以在负责人员还没有催办的条件下,需要给告警信息设定一个重复提醒功能。

3.6 问题六

维修人员填报维修信息的时候,需要录入维修过程中消耗的材料或者材料对应的单价吗(以此为基础计算出维修费用)?

答:维修人员在维修设备的时候不仅消耗的人工(工时),也消耗了一些相关的材料,这些都需要费用的支出,如果可以,维修人员填报维修状况的情况下可以给其上报此次维修消耗的费用,用来作为维修的一个证明。