谦卑的程序员






         静水流深

December 17, 2008

案例:我们怎样做需求分析 - 用户故事 - 想象

Filed under: 需求分析 — Eric Tou @ 7:59 pm
Tags: , , ,

  最近参与一个项目,客户送来的“设计”图,在某个“商品入库”的界面大致有一个如下的区域:

  • [登录用户] ________  YYYY/MM/DD
  • [更新用户] ________  YYYY/MM/DD
  • [审核用户] ________  YYYY/MM/DD

  大致的意思是谁输入了这条信息,谁更新了而谁又审核了,至于一个应该叫做“审核”的小按钮倒是没有见到。

  因为之前的功能清单里并没有提到审核,于是便发了QA去问,QA内容大致是这样:
  Q:入库不需要审核?  A:入库需要审核。
  
可是我还是不明白,“怎样”审核呢?于是我有了更详尽一些的解释:
  A:对XX的商品入库不需要审核,对XX的商品入库都需要审核。
  可是我还是不明白,到底“怎样”审核呢?由怎样的人(角色)来审核,审核一些什么内容,记录什么信息,是否有简单的流程比如通过/不通过什么的,要是不通过怎么办?Come on, man! 好在还有稍有价值的只言片语。
  A:审核后才影响库存。

  为什么我对“审核”如此紧张呢,因为根据一个“有经验的专业人士”的“专业的经验”,“审核”二字可以从一个仅仅需要记录审核人和审核日期的小函数扩展成为一个不大不小的工作流,信息、节点、参与者、权限。从欺负一只小花猫到上山打老虎,反差还不是一点点啊。
  也许是我反应过激了,不过防微杜渐么,需求蔓延这种问题,还是无情地扼杀在襁褓之中为好。

  除了更有技巧地问问题之外,怎么做才能更好的挖掘并确认客户的需求呢,更为专业的专业人士有时候会使用一种叫做UML的东西,画一种叫做User Case的图(主体是由一个圆圈和几根线条组成的阿呆),制作一种叫做User Story的卡片(故事的开头可以是“在一个漆黑的夜晚…”)。
  当然作为一个需求分析的小白,在还没有掌握如此体面的技术的前提下,所需要的只是一些“想象”。这想象并不需要入Lennon唱得那样:“Imagine that’s no heaven …”,而只需要小学语文课的基本技巧即可:“时间、人物、地点、事情的起因、经过、结果。”

  接下来让我给大家描述一下在我的想象之中的几个场景:

  场景1:凌晨时分,一辆卡车驶近了[XX研究所]的门口,在几声喇叭的轰响中,值班的看门老头骂骂咧咧地起身打开了院门,并朝着院内的一幢楼大喊了一声:“小李,来货了。”卡车缓缓倒进了院子,车上下来了两个壮实的中年人开始卸货,不一会楼上下来了一个睡眼朦胧的年轻人在一旁清点。过了半响,货物清点完毕,一位中年人拿出一张单据,对年轻人说:“李办事员,这单子你给签了吧。”“这…”年轻人面露难色:“数量是不错,可这审核,得张处长签字啊,他这两天可休息。”中年人一听有些急了:“前三天就说好要来,怎么就休息了呢,您说这大老远的,我们来一趟多不容易,厂子里还有事急着让回去呢,李办事员您年轻有为,深受领导器重,您签还不是一样。”这年轻人一听多少有些飘飘然,不过还是对着看门的老王头喊了一声:“老王头,你可看见了,我这也是与人方便”…

  场景2:一个月黑风高的夜晚,一个马队悄无声息地进了商家堡。在堡门口,一个身上挂彩的蒙面汉子跃众而出,来到一个白衣人面前,说道:“属下参见堂主,这次路上点子扎手,龙门帮倾权力而出,好在有镇远镖局这个幌子分散了他们的注意力,绕是如此还是折损了十几名兄弟,所幸幸不辱命,将东西送到。”那白衣人看不出几许年纪,精光内敛,双目微陷,一望便知是精修内家的高手,听到这话,淡淡地回到:“弟兄们辛苦了,将东西送到城中分舵后便好好休息吧。兹事体大,这东西的安排,帮中已经派出了左护法,想来几日内便到,到时再做处置。待事情一了,帮中自然重重有赏”…

  场景3:洛克洛克星,宇宙海盗和雇佣军的天堂。一艘飞马级地球战舰缓缓驶进了宇宙港,舱门打开,走出正是闻名遐迩的Stargate SG-1小队。同时,战舰的周围围上了一群皮卡丘星人。这皮卡丘星人虽然看起来人畜无害,但其实是臭名昭著的宇宙海盗。SG-1此行的目的是用皮卡丘星人指定的卡比之星换取击败复制者的秘密。双方各派出一人来到人群的中央进行交易,SG-1方面当然是奥尼尔中校,而皮卡丘族则派出了一只黄金皮卡丘。只见双方交换了物品,黄金皮卡丘忽然一阵大喊:“皮卡、皮卡…(东西是假的)”。通过语言翻译机听到的中校心中暗道不好,但还是镇静地说“审核不通过退货就是了,买卖不成仁义在么。”只见黄金皮卡丘又是一阵大喊::“皮卡、皮卡…(想退货没这么容易,我们没有审核不通过流程)”。于此同时,周围的几百只皮卡丘星人同时转过身去,同时对着SG-1翘起了PP,尾巴上电流的流动火星四溅,正是皮卡丘星人的成名绝技:百万伏电击。…

  看见没,其实想象并没有那么难。接下来也许就是在某个阳光灿烂的下午,在会议室和客户谈谈你的梦境,也许大家会惊喜地发现,存在于想象中的事件也真实地存在于现实之中,又或者客户会给你说说他想象中的故事。

  软件的流程往往就是现实流程的某种程度的体现,用开发的软件去规范客户流程这样的高阶目标我们暂时就不奢望了,但相对忠实地再现想来还是可以企及的。

June 23, 2008

选择工具的态度

Filed under: 2.超越技术? — Eric Tou @ 6:33 pm
Tags:

    Recently i am finding a UML modeling tool, actually a replacement of Rational Rose.
    In China, we can easily get commercial softwares freely, but it doesn’t mean i have to use it. And we should know it’s not the only choice in the world.
    Rational Rose is cool, especially when you wrote on your resume “experiences of Rational Rose”. But it’s not free, and it’s big. What if i just want to draw a class diagram, i guess it’s most of people use Rational Rose to do. Why don’t us choose a smaller one and get things done? Because the employer won’t hire a person don’t USE Rational Rose? You CREATE the UML Diagrams or just USE Rational Rose?
    And, You Design or just Create Diagrams? You Develop or just Design? This kind of stupid things happened repeatedly. finally i get tired of it. If there is a rule specified a tool, you abide by the rule. if no, just choose the most suitable one to GET THINGS DONE

    It’s not only about your choice of tools, it also show how you do your job, in a way it does work or in a way it looks good.

WPMU Theme pack by WPMU-DEV.