契丹--曾经的大辽梦

没有过不去的坎,只有回不去的段
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

项目那点儿事(五) ---胜负在此一举[需求分析]之斗智斗勇

Posted on 2009-02-03 21:04  羽之  阅读(3248)  评论(12编辑  收藏  举报

      按说需求调研好了,应该由乙方整理后提交《需求规格说明书》。那甲方这时候干什么呢?我找了很多资料,没有发现对这时甲方的工作要求。换言之就是甲方这时没事干。甲方没事干对我来说是件非常可怕的事,比我那闲置的五万丘八还可怕。丘八闲置只是浪费一点钱,不会出事,客户闲下来是要闹事的。

    “温饱思X欲”,这可是圣人言啊。当然了客户不可能对我那个啥的(IT项目好像也没有这种潜规则),但是他无聊时,就会想很多,他想得多了,就会给你找活干。你看看你们公司给你安排工作的人都是不做实际事的,天天就是想着让你干啥活,今天出个考核表,明天搞个测评,后天让你写程序员日记。自己人都这样,何况是当爷爷的客户呢。找你干活没商量。

     所以我的做法就是我工作时,客户也不能闲着。所以我会安排很多事给他们做,比如流程图的确认工作、所有报表EXCEL化并写清每列的计算方法、功能列表的确认。总之我会把整个《需求规格说明书》拆成几个部分来确认,像报表这个部分基本就是让客户做的。

     不过一开始客户不太高兴呢,毕竟傻子都知道花报表这个是挺大的工作量,反正我说了如果我做了报表你们再看再修改那时间肯定不够用了,而且报表大部分是给领导看的,如果不合领导心意肯定不好,再说你做的报表,让领导知道,会对你大加表扬的。客户权衡利弊后,决得还是自己做划算一些。从此这个项目中的报表都是客户做的,大概120多张吧。

     现在客户有事忙了。我要开始做《需求规格说明书》了。

     所说《需求规格说明书》,就是包含项目目标、背景、功能列表、用例的文档。现在我们要做的就是从客户一大堆的流程和描述中,分别找出功能来。

     有个简单的办法,把客户描述中的名词都标出来,每个名词就是一个对象,而名词所做的动作就是方法。将具有同类的对象设计为一个功能。看功能列表和用例数都出来了。

     好了要写用例了,说到用例我要罗索一点了。

    春秋时有个叫孙子的人,当然了本名不叫孙子,叫孙武,后来的人尊敬他就叫他孙子了(原来古代是这样尊敬人的,汗啊)。在他的一本书里说“知已知彼,百战不殆(dai 同带,不是台啊,我认识位仁兄就读错了)”。所说知己,就是说,了解自己的实力。我们做项目自己这边的斤两还是清楚的。那知彼就难了,要了解对方的体重了,怎么了解啊,在项目里当然不能用体重秤了,好在这个世界上聪明人很多,有几位大侠就发明了一种工具,专门来了解客户的需求,这几位大侠是......(都是老外,也不用多了解,反正会用工具就行了,如果有想了解的同志,可以去找UML发展史看一下。)。这种工具就是UML,准确的讲,是UML当中的用例部分。

    用例是一个工具,估计大多数人都用过,可是你知道这个工具除了能描述需求外还能完善需求吗?我最喜欢的就是用例能完善需求的功能。

    用例怎么做,我就不说了,回去找一本《UML模型与设计》看一下就知道。完善需求是我在做项目体会到的。
  
    我们将用例完整的填写到用例说明的时候,会发现有时这个说明写不下去了,写不下去的原因是因为你根本不知道这里该如何处理。比如某个用例的扩展流程“当无法找到当前记录时,系统应......”这时你发现系统要怎么做是不知道的,因为需求里没有写明,这时就要和客户沟通了。当你把所有的用例都填写完成后,基本上产品的样式就出来了。

    我见过有人只写主流程,而不写扩展流程的,我的经验告诉我,如果不写扩展流程你会死得很惨。就像我们出门旅行,你只带了必用品,没有带“谢丽婷”,到时你的旅行就行可能变成公厕观光游,还是付费的。

    所以必须写完扩展流程。不过工作量和风险是成正比的,因为扩展流程往往是主流程的三到五倍。

    用例图画一个主体的就行了,千万别给每个用例画图,因为那样会变成一个小人用长矛插一个鸡蛋,很难看的,同时也没啥大用处。有空多写点用例说明吧。

    好像这样做要写很多用例了,这次我做项目就写了200多页用例,如果这个用例只是给客户看看的实在是太浪费了。别急后面我会讲这个用例怎么用到开发中。

    好了用例写好了,《需求规格说明书》完成了,现在要做一件很重要的事---签字。

    找到客户,客户说这么多要看一下才能签字。
    好,给你们看吧。这一看就是一星期。

    其实给客户签字的东西写得越多就越有利。你想一本200页的文档,你会逐项逐字的看吗?最终客户同意签字了。

    为什么说签字重要呢,写《需求规格说明书》就是草拟圣旨,圣旨不盖玉玺是没用的,签字就是盖章了。很多人感觉到给客户签字后,客户的需求依然想变就变,细毫不为以前的签字而脸红,项目管理的书上说签字就是确认,是不应改变的,书上还说签字是对客户的约束,但现实根本和书上说的不一样啊。其实大可不必为这种事大惊小怪。因为客户从来没看过项目管理的书啊。

    其实这个问题要从圣经说起。上帝造人后,亚当和夏娃的子孙,决定通过自己的能力建造一座塔,一座通到天堂的塔,圣经里称为巴别塔。上帝这老小子挺缺德的,他不想大家都上天堂,于是给不同的人类赋于了不同语言,好家伙。大家不能沟通了,那造塔计划也就失败了。这是历史上记载最早的失败项目,失败原因是沟通不畅。之后语言们各自发展直到现在。现在我们看到最大的文化差异就是象型文字的代表汉语与拼音文字的代表英语两者产生的。
    签字文化发展于英语也就是中国人眼里的西方世界,原因很简单,英文仅有26个字母,每个书写不同的主要点在字母与字母间的连接,而老外签名一般都是一笔就写好了。这样造成老外的签名模仿难度极大,被肉眼分辩的成功率较高。
    再看看中国人签名,中国的汉字是方块字,字与字之间一般不连,而汉字发展了5000多年,还优雅的发展出大量的书法门派,中国人把写字提升到艺术层次。导致临摹胜行(小时候我还写过《庞中华字帖》呢)。经过这么多年,中国人多少都有临摹的基因,所以用心学个人的笔迹不是很困难,但是发现两者不同却要笔迹专家的水平(小时候在考卷上模仿家长签字,老师都很难发现)。久而久之,中国人对签字变得不再用心了,签字认证也就不被世面接受。

    在这种环境下,你一定要求客户签字认证,是很困难的。当然了项目管理的书没有说错,毕竟那是老外的东西。所以要控制客户的疯狂变更,还要想别的办法?后面我将详细说一下,我是怎么控制客户变更的。

    在我的勇气(敢给客户安排工作)和智慧(写了厚厚的需求说明)下,需求总算确定下来了。

PS:本文有对上帝不尊重的地方,在此向上帝和基督徒们致歉