疯狂的订餐系统-软件需求分析挑战之旅
- 文员每天都要向餐厅索取最新菜单,然后拿着菜单找每个人确认今天吃什么。
- 大家都确认后,文员以电话或者传真的方式,向餐厅订餐。
- 餐厅送来午饭,文员通知大家,然后大家来取餐。
这样的做法维持了一段时间,但是问题逐渐就来了。 员工A抱怨:我明明点了酸菜鱼,干嘛给我送来红烧鱼。 员工B抱怨:我刚才去开会了,没有点餐,怎么就这样把我的餐给漏了 员工C抱怨:我对中午饭要求不高,每天吃麻辣牛肉就可以了,不需要天天来问我吃啥,打断我的工作。 …… 大家都开始来责怪文员了。 文员受了一肚子的委屈,她解释如下: 有些人写的字不太清楚,有时会搞错; 公司这么多人,有人上厕所有人去开会,我哪能保证每次都不漏人。 我按员工C说法做了,没有再问他了,但有一天取餐的时候,他说上火,不吃麻辣牛肉,要我换!都定了,怎么换啊险起见,我以后天天都问他了。 呜呜…… 公司领导觉得问题责任不在于文员,而是这样的订餐方式太落后了,导致诸多问题!好歹是一个IT公司嘛,订餐也需要信息化!于是领导萌生了要做一个订餐系统的想法。 于是咱们的好戏就开始了…… 1.2 需求分析的大道理 你非常光荣地接受了这个任务,领导任命你为订餐系统的项目经理,你会如何展开需求分析工作呢 可能你会这样想:那还不容易,这么简单的系统,直接编码就行了,还写什么需求! 伙计,不要冲动,看到这里请你先停止阅读,找张纸和笔,用你自以为合适的方式列出这个系统的需求。 请写完后才继续往下看噢! 不听话了写完就往下看 咱们先说说需求分析的一些大道理: 首先我们需要明确项目的背景,我们要回答这些问题:也就是为什么会有这个项目户为什么想做这样的一个项目果没有这个项目会怎样 了解背景的基础上,我们需要进一步了解以下内容:
1)本项目解决了客户的什么问题
2)本项目涉及到什么人、什么单位
3)本项目的目标是什么
4)本项目的范围是怎样的
5)本项目的成功标准是什么
以上这些内容,我们称之为客户的“需要”。
接下来,就可以定详细的需求规格说明书了,一般我们会对功能性需求和非功能性需求都列出详细的要求,我们这里把这些要求定义为“需求规格”。
- 背景啊背景,我该如何写你呢/li>
我们公司的需求规格说明书中,第一章节就是“背景”,但往往大部分项目写出来的背景写了等于没写。有些写了诸如此类的内容:某年某月某日与某某公司签订了某某合同,成立了改项目组,项目人员有谁谁谁,客户联络人是谁谁谁。有些项目更懒,直接复制前期需求文档的背景,以致项目已经做到第三期了,第三期的背景仍然是抄第一期的。不知道如何分析背景,背景不知道写啥,这是项目的普遍现象。
- 目标在哪里/li>
对于“项目的目标”,项目组普遍的问题有: 1.根本不知道“目标”这回事。 2.目标写出来了,但被扣上“大而虚”的帽子。 3.没有用目标来指导下一步工作,后面遇到具体问题时,没有用目标来思考。 4.目标写出来就不变了,没有持续去思考是否需要调整。
- 需求规格优先
很多需求分析人员喜欢将系统要做的事情,以用例或者功能点的方式记录下来,但往往没有记录为什么需要这样一个用例或者是功能点,没有去思考这个用例或者功能点背后隐藏的客户需要是什么。更甚者进入具体的界面设计,在需求文档中写清楚界面上放什么按钮什么菜单等,一开始就将需求“僵化”,这样会让后面的工作陷入“万劫不复”之地。 本小结开始的时候,要求你先写下本系统的需求,再继续往下看。不知道你写的需求中是否有背景、需要这些内容呢写的需求是不是几乎全部是“需求规格”呢 下面,我们将来挑战“订餐系统”的背景、需求和需求规格。
- 深入思考修改要求背后的需要是什么。
- 如果要满足该要求,在软件和管理办法上需要做什么改变,代价有多大。
- 如果不满足这个要求,影响会很大吗/li>
中午饭是工作餐,主要目标是方便快捷,员工哪怕吃不到最想吃的,也可以选择吃第二、第三想吃的,中午餐的预算也不可能很大,没有必要将午餐搞得很复杂很丰富,故这个要求可以不满足。 如果我们再动动脑筋,还是有简单易行的办法来解决这个问题的:员工可选择在公司统一订餐,也可以选择自己解决,无论哪种方式都享受公司的午餐补贴,如果在公司统一订餐,则只能选择一家餐厅。这样员工如果图方便,又觉得统一订餐的那个餐厅合适,就可以选择使用订餐系统来订餐;如果觉得想吃点别的,甚至是自己带饭,那就自己解决呗,反正午餐补贴是照样享受的。 6)能不能直接连到餐馆的 页上去看菜式 为什么有这样新奇的要求呢餐标准才8元,这样的餐厅会有 页吗 有时候用户会突发奇想,提出一些新奇怪异的要求,这时候要思考他的动机是啥了。由于客观条件限制,或者技术上做不到的,要予以拒绝。 为什么会有人想去看餐馆的 页呢可能是某些员工想了解一下餐馆的信息,好方便他和家人平时去撮一顿,如果是这样的原因,那只需要告诉他一些餐厅的 址就可以了。 7)能不能做口味分析和营养分析 口味分析的意思就是希望系统能根据平时你的订餐情况,自动推荐你下次点什么菜。营养分析则是根据你订餐偏好,分析你的餐饮是否合理。这两个功能实在是太高级了,如果真的要做,那么系统需要增加数据挖掘的功能,这可是高技术含量的噢! 那到底要不要满足这个要求个要求其实已经超出了本系统的需要了,可以认为是对之前需要的升华,目前就算不满足也不会影响客户当前的使用,但如果要实现的话会导致项目成本上涨,对于这样的情况,可建议客户考虑项目的“二期”。 系统上线了,客户给你的挑战就会陆续而来,上述几个问题是实际工作中常见的几类问题:
- 对于符合需要的易用性方面的要求,应尽量满足。
- 有些问题可通过改善管理办法来解决。
- 有些问题需要同时在软件和管理办法上做工作来改善。
- 客户一时冲动的要求,可另辟蹊径解决。
- 客观条件做不到的、技术上做不到的,应予以拒绝。
- 超出范围的要求,可引导客户做第二期。
1.5 领导“突发奇想” 你好容易满足了大家提出来的各类要求,这回到领导“突发奇想”了! 事情是这样的,领导发现尽管有了订餐系统,但有时候某些员工因为请假或者外出工作,不能及时在 住上订餐,中午回到公司时没有饭吃。领导就萌生一个想法,不在公司的员工能通过手机短讯来订餐就好了! 于是领导对你下达了要求,让你带领订餐系统项目组完成这个新功能。 请你先思考这些问题: 1)领导这个要求的需要是什么 2)如果要做这个功能,人机是应该如何交互 3)要实现这个功能,要增加什么设备件要怎样修改 你开始挥汗如雨地干起来了,这个要求可不简单啊! 1)要购买发短信的设备,要研究这些设备的开发接口。 2)手机屏幕这么小,而且只能通过短信来交互,如何选菜单、定餐、取消订餐等细节都需要想清楚。 手机订餐功能终于做出来了,但这个系统还时灵时不灵,问题是出在软件、硬件,还是中国移动都搞不清楚,领导大发雷霆,这样的小事情,怎么搞成这样 后来有人提出来,不在公司的员工,打电话回公司告诉前台吃什么,不久搞定了 顿时全世界一片哇然,你一屁股栽倒到地上! 领导要解决的问题其实只是要方便不在公司的员工能及时订餐,而领导提出来的通过手机来订餐是领导自己提出来的一个解决方案而已。我们的客户往往就会直接将他们想像中的解决方案提出来,从而让你忽略掉他的真正意图,当按照客户的解决方案去做的时候,往往不能命中真正的需要,费时费力又不讨好。当提出具体修改要求的人是领导级人物时,项目组更加是手足无措,唯领导命令是从。 作为项目组,任务时候都必须比客户更加清醒,不要埋怨客户的变来变去,绝大部分客户是理性和聪明的,只是我们不够厉害,不能分析出客户真正之需要。客户其实不是出钱让你按照他的要求去做,而是让你处于他的角度,提出高性价比的解决方案,满足他的真正需要。 1.6 榨干人脑汁的需求分析 需求分析最核心的问题就是搞清楚客户到底想要什么!客户通常只会有朦胧的大概的想法,他们提出来的需求,往往只是表面的、不全面的,甚至是匪夷所思、互相矛盾的,我们需要透视它的本质。如果我们能说出客户内心深处真正想要的,而客户又不能直接表达出来的东西,我们才能真正做到“为客户带来价值”! 有很多方法能帮助我们搞清楚客户真正之需要,如问卷调查、访谈、用例图、用户故事等,还有前文介绍的“需求分析大道理”,事实上这些都不是提高需求分析能力的根本方法。需求分析的大道理、方法论这些最多让你开阔了研究,但基本上难以帮助你解决项目中需求分析的实际问题。上文的订餐系统,看上去简单,但也足够让你抓狂!没有深厚的功底,是难以做好需求分析工作的。 要具备怎样的技能才能成为需求分析高手呢
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!