软件可行性分析与需求分析经典论述

来源:互联网 发布:java中导出excel表格 编辑:程序博客网 时间:2024/05/08 22:50

    可行性分析是要决定“做还是不做”。

    需求分析是要决定“做什么,不做什么”。

    即使可行性分析是客观的、科学的,但决策仍有可能是错误的。因为决策者是人,人会冲动,有赌博心态。如果可行性分析表明做某件事的成功率是10%,失败率是90%,倘若该事情的意义非常大,决策者也许会一拍脑袋:“豁出去,干!”于是这世界就多了一份极喜与极悲。

一、可行性分析的四大要素:经济、技术、社会环境和人

    目前国内很多软件公司做系统集成项目,如果谈谈系统集成项目的可行性分析将很有意思。可是那些系统集成项目大多是政府机构的,由于软件行业尚不规范并且客户方存在腐败现象,所以业内流传“没有做不了的系统集成项目”。软件公司的注意力几乎全集中在“如何拿到项目订单”以及“拿到订单后如何蒙混过关”上,使我丧失了卖弄“可行性分析”的机会。既然不能正面指点一个人如何做好事,那么就规劝他不要做坏事吧。

二、可行性分析案例——投资软件公司失败的教训。

    作者本来没有资格谈论投资,但事有凑巧:近一年来我关闭了一个亏损30万元的软件公司(我自己的);休克一个年亏损200万元的软件公司(朋友的);扼杀一个200万元的投资方案(陌生人的);踩灭一个处于萌芽状态的100万元的投资设想(熟人的)。鉴于现在比较富有的民营企业渴望投资软件行业的越来越多,值得谈谈这方面的可行性分析。我将讲述亲身经历后的感受,提一些建议。
     不论是为客户做软件项目还是为自己做软件产品,都要进行需求分析。需求分析最恼人之处是难以在项目刚启动时搞清楚需求,如果在项目做了一大半时需求发生了变化,那将使项目陷入困境。

三、需求分析为什么困难,4.4节讲述如何进行需求分析。

     本章的需求分析均不涉及编程,所以不考虑结构化、面向对象等分析方法。

四、可行性分析的要素

     做可行性分析不能以偏盖全,也不可以什么鸡毛蒜皮的细节都加以权衡。可行性分析必须为决策提供有价值的证据。

     联想集团领导人柳传志曾说:“没钱赚的事我们不干;有钱赚但投不起钱的事不干;有钱赚也投得起钱但没有可靠的人选,这样的事也不干。”柳传志为决策立了上述准则,同时也为可以行性分析指明了重点。

     一般地,软件领域的可行性分析主要考虑四个要素:经济、技术、社会环境和人。本节只是泛泛地解释这四个要素,旨在建立全局分析的观念。4.2节将结合案例围绕上述要素进行重点分析与评注。

(一)经济可行性分析主要包括:“成本——收益”分析和“短期—长远利益”分析。

1、成本——收益分析

      成本——收益分析最容易理解,如果成本高于收益则表明亏损了,如果成本大大高于收益那就亏大了。商人都不喜欢做吃亏的事情。有些商店成天贴着“最后一天跳楼大拍卖”的标语,意思是:我准备吃大亏让你占便宜,同志,你快上钩吧。如果是为客户做软件项目,那么收益就写在合同中。如果是做自己的软件产品,那么收益就是销售额。

      人们在预估产品销售额时常常过分乐观而犯下大错。那些对你的产品说恭维话的人并不见得就是要买货的人,俗话说“嫌货才是买货人”。当你没碰到一个挑刺的人而感觉这产品好得会让你发大财时,就要做好会破产的心理准备。

      如果做的是小本生意,那可得对成本进行细算。软件的成本不是指存放软件的那张光盘的成本,而是指开发成本。要考虑的成本有:
(1)办公室房租。
(2)办公用品,如桌、椅、书柜、照明电器、空调等。
(3)计算机、打印机、网络等硬件设备。
(4)电话、传真等通讯设备以及通讯费用。
(5)资料费。
(6)办公消耗,如水电费、打印复印费等。
(7)软件开发人员与行政人员的工资。
(8)购买系统软件的费用,如买操作系统、数据库、软件开发工具等。有些老板买盗版的系统软件,却按市场价算成本,可从美国佬那里赚一笔。
(9)做市场调查、可行性分析、需求分析的交际费用。
(10)公司人员培训费用。
(11)产品宣传费用。如果用Internet作宣传,则要考虑建设Web站点的费用。
(12)如果客户是政府部门,还要充分考虑用于吃喝玩乐、行贿的费用。
(13)如果公司的风水不好,会有很多莫名其妙的管理费。每戳一个红艳艳的公章都要化一把钞票。

2、短期——长远利益分析

      人们喜欢吃着碗里的、看着锅里的,还想着别人家里的。短期利益和长远利益兼得是人们梦寐以求的事。在商业上,这等好事可不会轻易降临。

      短期利益容易把握,风险较低。国内软件公司经常出现一窝蜂地去做信息管理系统、多媒体光盘、系统集成项目或Internet服务。每当我们沉迷于短期利益不思进取时,应该好好回忆童年时代那些伟大的抱负,给自己一些激励。

      长远利益难以把握,风险较大。能为了长远利益不惜短期亏损的人,要么是雄心勃勃的将帅之才,要么是“纸上谈兵”、“眼高手底”的那一类庸人。国内目前有不少Internet企业,只投入不产出。为了成就将来的霸业,甘愿现在拼财力、比耐性。最后存活下来的几个公司将瓜分市场。
那些为长远利益奋斗的人们,你们可得把长征的路途走完啊,千万别让事业中途夭折。

技术

技术可行性分析至少要考虑以下几方面因素:
(1)在给定的时间内能否实现需求说明中的功能。如果在项目开发过程中遇到难以克服的技术问题,麻烦就大了。轻则拖延进度,重则断送项目。
(2)软件的质量如何?有些应用对实时性要求很高,如果软件运行慢如蜗牛,即便功能具备也毫无实用价值。有些高风险的应用对软件的正确性与精确性要求极高,如果软件出了差错而造成客户利益损失,那么软件开发方可要赔惨了。
(3)软件的生产率如何?如果生产率低下,能赚到的钱就少,并且会逐渐丧失竞争力。在统计软件总的开发时间时,不能漏掉用于维护的时间。软件维护是非常拖后腿的事,它能把前期拿到的利润慢慢地消耗光。如果软件的质量不好,将会导致维护的代价很高,企图通过偷工减料而提高生产率,是得不偿失的事。
技术可行性分析可以简单地表述为:做得了吗?做得好吗?做得快吗?

社会环境

      社会环境的可行性至少包括两种因素:市场与政策。

      市场又分为未成熟的市场、成熟的市场和将要消亡的市场。

      涉足未成熟的市场要冒很大的风险,要尽可能准确地估计潜在的市场有多大?自己能占多少份额?多长时间能实现?

      挤进成熟的市场,虽然风险不高,但油水也不多。如果供大于求,即软件开发公司多,项目少,那么在竞标时可能会出现恶性杀价的情形。国内第一批卖计算机的、做系统集成的公司发了财,别人眼红了也挤进来,这个行业的平均利润也就下降了。

      将要消亡的市场就别进去了。尽管很多程序员怀念DOS时代编程的那种淋漓尽致,可现在没人要DOS应用软件了。学校教学尚可用用DOS软件,商业软件公司则不可再去开发DOS软件。

      政策对软件公司的生存与发展影响非常大。整个90年代,中国电信的收费相当高,仅此一招就把国内互联网企业打得奄奄一息。某些软件行业的利润很高,但可能存在地方保护政策,使竞争不公平。政策不当将阻碍软件公司的健康发展,可最怕的还是政府干预企业的正当行为。例如:

      现在家电行业竞争非常激烈,其中有一个著名企业的总裁十分了得,把对手打得节节败退。于是中央领导人就来视察该企业并作讲话:“你们的业绩辉煌,得到了中央的高度重视,……但我们是社会主义国家,不是资本主义国家,你们总得给兄弟企业的同志们留口饭吃吧!”

      有一次我拜访了北京大学一位研究经济学的朋友。这个年青人,还是个党员,竞然这么说:“我最近在研究国内明星企业的兴衰问题,我发现了一个规律,明星企业一旦被政府领导人视察过,它就忘了自己是谁,就会做些走向死亡的蠢事。”

     我实在不明白企业中为什么还要有“书记”职位。我以为“书记”乃是天下第一号可笑的官衔,“书记”本是“秘书”(secretary)的同义词,是个可有可无的行政人员的称呼,在中国竟然成了最大的官衔。每次看到新闻联播把国家主席错叫成总书记我都十分气愤:因为总书记的称喟只对几千万的党员适用,国家的新闻机构难道不面向十多亿普通老百姓?如果我将来的工作单位还靠“书记”来管事,我每天准忙着生气,那里还有精力去编程。

     有句名言:“人分四类——人物,人才,人手,人渣。”

     如果一个软件公司里上述四类人齐全了,那么最好的分工是让“人物”当领导,“人才”做第一线的开发人员,“人手”做行政人员,“人渣”负责行贿。

     这里只谈公司的领导与开发人员“行还是不行”。“人物”毕竟是少数,“人才”可是济济的。举重若轻的那类“人才”可以做领导,举轻若重的那类人才适合做软件开发人员。假如一群持有学士、硕士和博士文凭的毕业生到软件公司应聘,该如何录用呢?我的建议如下:

     先选择本科毕业生,因为他们正当青春、干劲十足、不摆架子、不耻下问、要求不高、奉献甚多。

     其次选择硕士毕业生,如果该生没象范进中举时那么老,并且在读硕士时没有天天去造文章而丢弃了编程工作,那么让有经验的学士程序员带他们煅练几个月就可以用了。

    如果学士、硕士被其它公司取光了,那只好捡几个博士充数。博士到了软件公司有什么用呢?我想不出有什么用,只知道他们挺值得可怜的:从硕士读到博士出头,这六七年时间,真本事没学多少,倒学会“眼高手低”甚至“弄虚作假”;毕业时蓦然回首,发觉青春已被虚度,心灵已呈老态,唯有长叹短嘘,强把自负作自信。我也将博士毕业,就要论为三手贷贱卖了。真羡慕那些比我年轻的学士、硕士们,他们可以远走高飞,唉!

(二)可行性分析案例——投资软件公司失败的教训

     谈到软件产业,不能不提及比尔·盖茨与Microsoft公司。因为比尔·盖茨创建了Microsoft公司并成为世界首富的事实,使得无数从事软件工作的人们心存同样的梦想。有太多人急着想做中国的比尔盖茨 。有个年青人发明了一种汉字输入法,便在媒体上放言欲覆盖比尔·盖茨。中央电视台特冲动地把一个上了年纪的院士请来,让他谈谈自己与比尔·盖茨的比较,害得这位院士一个劲地辨解自己不是中国的比尔·盖茨。

     近几年来,一批Internet英雄企业如Yahoo、Netscape兴起。尤如打破了秦始皇一统的天下,重返春秋战国时代。让软件人员走出了Microsoft的阴影,看到了阳光灿烂的软件世界。于是各色各样小不点儿的软件公司在国内遍地开花。

     打破水缸的小孩子很多,但并不见得就会有司马光的业绩。由于“经济、技术、社会环境、人的因素存在差异,有些事情美国人能做成,我们模仿着做未必就能做得成功。虽然“星星之火、可以燎原”,但我们的国力薄弱,实在容不得把有限的火种扔到不毛之地。所以要进行可行性分析,如果不可行,就不要急着去做。本节三个案例是作者亲身经历的,我力求讲清楚错在哪里,并总结经验教训。希望读者看后能提高警惕,免犯相同的错误。

可行性分析案例

     1999年3月,一位与我同年同月同日同时辰出生的朋友请我帮忙,对一份长达8页的投资方案:
    《万向为什么不投资互联?》——“中国供应商信息网”引资方案(以下简称“引资方案”)进行可行性分析。

     万向集团是浙江省民营企业的老大,有的是钱,找它投资真的是找对了。我当时忙着对自己进行查漏补缺,正在复习本科的计算机基础课程。不耐烦地看完那份“引资方案”,觉得比我去年写的Soft3D设计方案荒唐十倍以上,于是毫不迟疑地否决。
     朋友问:“为什么?”
     我答曰:“因为内行的人都会否决。”
     朋友嘲笑:“这是废话,如果投资者都是内行的话,就不用请人分析了。你要写出让农民企业家看得懂的可行性分析报告,才叫有水平。”
     我说:“好,好,就看在同年同月同日同时辰的份上,帮你一把。”

     于是我就为拥有几十亿资产的一群农民伯伯写了一份6页纸的可行性分析报告。

     此“引资方案”是个很典型的不可行方案,我将摘录一部分内容作为案例进行分析。

     我不认识写“引资方案”的人,虽然批评很多,但是我对他(她)本人毫无恶意。由于我的可行性分析报告是写给不具备计算机基础知识的人看的,文中采用较为形象的日常事例来比喻、解释信息产业的一些现象。这些比喻在一定程度上是合理的,但可能是不严谨的。

     该“引资方案”有四段主要内容,每段的主题思想简述如下。
     第一段,介绍了Internet企业的红火,得出一些结论,这是“建议投资互联网”的关键论据之一。

     主要文字如下:

     “国际互联网英雄企业雅虎(Yahoo)、网景(Netscape)……这些互联网企业有一个特点,就是赢利都还不多甚至微利运转。它们的年收入尚以万来计算,而股市却达到几十亿乃至百亿。……几乎所有互联网企业只要一上市,它的股价就可以青云直上,无人能用任何股市定理来推算它们将涨到什么程度。”

     第二段,概括了在国内投资Internet企业的几大好处,这是建议万向集团投资Internet企业的关键论据。主要文字如下:
    “……借互联网这个金蛋与广大投资者的看好,股票必能大幅上升。借美国网股的升幅样板,广大中国股民可能在短期内即可推动股票实现翻番。……”
    “……相信不久的将来,互联网企业的黄金赢利期即可到来。事实上,由于进入互联网经营网站的直接成本很低,目前国内的绝大部分网站皆为小打小闹,几乎没有几个网站有雄厚的资金注入建设。……”
      “……通过建设一个大网站所带来的全国乃至全世界的广告影响是无可估量的。…很容易造势,效果远远优于同等金额的电视、报纸广告。……”
     第三段,该方案的作者说自己已经建立了一个公司,经营一个叫“中国供应商信息网”的站点。目前他有一些构思,希望万向集团投资200万元/年,按他的方案,可以很快使万向集团股票狂升,机会千载难逢。主要文字如下:
     “我们经营的网站有2年多历史了。…年经营成本9万元,我只找了一个助手。…全年收入近10万元,虽说不亏,但我无法满足现状。…希望吸取资金200万。…预计年收入1200万至2000万。”
      “……增加网站每日求购信息的整编工作,做到任何其它一个网站有的我们都有。”
      “……增加中国及世界经济新闻版块,由每周更新到每日更新。”
      “……建立网上信用卡收帐系统,一旦需要,可立即投入使用。”

      第四段,他说自己是萧山人,万向集团也源于萧山。

      一、对“引资方案”第一段的分析与评论

      Internet英雄企业是典型的知识经济产物。雅虎、网景公司的营业利润与其股市相比是极微的。从外表上看:一个固定资产可以被忽略的,几乎没有营业利润的Internet企业,可以有极高的股市价值,并且市值不停上涨。为什么能够这样?这是有极苛刻的前提条件的。但是“引资方案”一开始就立论:

       几乎所有互联网企业只要一上市,它的股价就可以青云直上,无人能用任何股市定理来推算它们将涨到什么程度。

       这显然是胡吹,我认为即使外行也不会相信。尽管我也不够资历去评论雅虎、网景公司,但愿意尽力不离谱地通俗地解释雅虎、网景现象。

       让我们把Internet想象成无边无际的网,把每个网的交织点叫做网站,在每个网站中至少可以放一台计算机。Internet的基本功能是让网上的所有计算机能够相互通讯。由于现在的一台计算机能做十年前不敢想的事,真的无法估量上亿台计算机相联的Internet有多么强大的本领。Internet极其相关产业成了美国的支柱产业。

      为了在一台计算机上可以看到其它计算机的信息,必须安装一种叫浏览器的软件。浏览器的重要性如同发动机对于车辆。一个美国年轻人最先发明了浏览器。同时,计算机工业界的一位伟大人物,SGI公司(世界最大计算机公司之一)的创始人远见卓识,投资数千万美元开发这种刚诞生的浏览器。他们成立了网景公司,一位是站在前面的年轻英雄,一位是站在后面的老英雄。网景公司刚上市的时候,浏览器还没有销售(更谈不上利润),但是浏览器实在太有价值了(能让微软公司都害怕被击跨),所以网景公司上市第一天就升值十几亿美元。而网景公司销售产品得到的利润只是用来运转公司的,远比不上其该有的价值(股市价值)。可并不是随便一个Internet企业都象网景公司那么辉煌。

      举杭州西湖的例子吧。西湖的一些景点收门票,卖纪念品,一年不多的经营收入,只够用来打扫卫生、修修补补、种树植草。但西湖有白居易、苏东坡巨大的贡献,千年累积的“人文、历史、地理”价值何止千百亿。假设杭州西湖上市,起价1亿元人民币,真不知道有多少人来争抢,股值当然会狂升千百倍。而我家乡的一个鱼塘也叫“西湖”,主人从来不幻想他的“西湖”值多少个亿,但他知道卖不出鱼就会贫穷,一天不争几元钱就会挨饿。

      接下去说雅虎公司吧。

      由于有了浏览器,用Internet交流信息就十分方便,推进了Internet的发展。还有另一个问题,用户在用互联网之前,总得先知道要找的信息在什么地方(打电话也要先知道对方的号码),不可能对上亿台计算机挨个浏览吧。这时就需要一种叫做搜索引擎的软件系统,它专门用于存放与检索互联网信息。假如一个用户想查找一种叫“万向节”的汽车零件,只需要输入“万向节”三个字,搜索引擎就会在很快查找出全球有关“万向节”的网站地址。搜索引擎的重要性,就象一个封建皇朝的藏宝图与挖掘机。美国的几个年轻人(头头是个华裔)发明了搜索引擎,他们成立了雅虎公司,该公司得到日本软件巨头SoftBank公司的投资。也是由于雅虎公司的搜索引擎实在太有价值了,所以股值很快达到其投资的百倍。现在去做搜索引擎想发大财已经太晚了。人家都用导弹打飞机了,我们还做梦用弓箭射飞机。

       雅虎、网景现象小结:只有在具备极大的市场需求、极优秀的知识产品、业界杰出人物的条件下,才可能使一个公司的股值远远高于其“原始投资 + 经营利润”。如果去投资一个没有价值、不产生利润的公司,那只会拖跨投资方,这是投资常识。

      二、对“引资方案”第二段的分析与评论

(1)……借互联网这个金蛋与广大投资者的看好,股票必能大幅上升。借美国网股的升幅样板,广大中国股民可能在短期内即可推动股票实现翻番。
评论:用童话故事“皇帝的新装”来比喻很恰当:他是那个裁缝,投资方是那个笨蛋皇帝,股民就相当于傻乎乎的臣民。如果有那么容易的事情,身为经济学家的总理早就做了,中国的信息产业也不会太落后。

(2)……相信不久的将来,互联网企业的黄金赢利期即可到来。事实上,由于进入互联网经营网站的直接成本很低,目前国内的绝大部分网站皆为小打小闹,几乎没有几个网站有雄厚的资金注入建设。…

      评论:他说进入互联网经营网站的直接成本很低 ,那简直是黑白颠倒,哪有成本低才小打小闹的!表明他对中国ISP(Internet服务供应商)发展史全无知。在整个90年代,有成百上千的ISP死掉,主要原因是经营成本(付给电信局的钱)太高而用户太少。为什么还有一些ISP在小打小闹?那是因为该死掉的全死啦,剩一口气的与刚出生的正在一块儿垂死挣扎。现在还能在互联网上指手划脚的都是与中国电信部门有密切关系的ISP。为什么几乎没有几个网站有雄厚的资金注入建设 ?因为怕啦。

      请看看近几年的“中国计算机报”、“计算机世界”,中国ISP发展史简直就是软件业界勇士与中国电信抗争的血泪史。国内最了不起的ISP是北京“赢海威时空”,在中国教育科研网建立之前,它就建立了中国人自己的“小型Internet”,连《读者》也报道过那些感人事迹。投资超过千万(投资方是银行)。但由于亏损太大,在1998年,“赢海威时空”总裁张树新女士,一位富有才华的ISP创业者,被董事会强行解职,原有创业者跟着全被辞退。此事震动软件业界。还有谁的钱比银行多?有谁比中国电信更能控制互联网?

(3)通过建设一个大网站所带来的全国乃至全世界的广告影响是无可估量的。…很容易造势,效果远远优于同等金额的电视、报纸广告。

      评论:这是梦话。有一篇评论说中国老百姓通过Internet获取信息所付出的代价是美国人的1000倍以上。看一个简单的算术就能明白:中国老百姓的工资不及美国人的十分之一,中国网站的有用信息远不及美国的十分之一,中国Internet传输速率不及美国的十分之一,电话费用又比美国的高。仅此几项乘积,代价已是美国人的1000倍以上。

     这个数字说明,很多事情在美国能成功,在中国就难以成功。在Internet这个问题上,存在1000倍的难度,足以扼杀普通公司。

     我和同事都是软件专业的博士生,Internet对我们而言就象眼睛与耳朵一样重要。可是连我们也没有条件使用Internet,成了专业的瞎子与聋子,普通老百姓更不用说了。如果没有群众用户,ISP广告给谁看?过不了一年,ISP就得饿死,怎么去产生全球影响?怎么去迎接不久将来的滚滚财源?

     三、对“引资方案”第三段的分析与评论

         (1)我们经营的网站有2年多历史了。…年经营成本9万元,我只找了一个助手。…全年收入近10万元,虽说不亏,但我无法满足现状。…希望吸取资金200万。…预计年收入1200万至2000万。
评论:可以看出,他的经营能力为10万/年,是个单干户。怎么能一下子就可以经营“年投资200万,并且预计年收入达千万的企业?”刚学会走路,就夸口能跑得跟子弹一样快,神仙?

         (2)增加网站每日求购信息的整编工作,做到任何其它一个网站有的我们都有。
评论:这句话雅虎公司都不敢夸口。

         (3)增加中国及世界经济新闻版块,由每周更新到每日更新。
评论:他能做到的,中央电视台、新华社的网站应该早做到了。

         (4)建立网上信用卡收帐系统,一旦需要,可立即投入使用。
评论:这种事情,必须是公安部门、税务部门、银行、系统集成商等一起商量好了后才可以做的。

     四、对“引资方案”第四段的分析与评论

     他说自己是萧山人,万向集团也源于萧山,因此他首先选择万向集团。

      评论:他建议万向集团投资互联网,可不是为了万向集团,也不是为了萧山的老百姓,这一点连我们做学生的都明白。商业投资不应该带有太多的感情色彩,即便是万向集团的人提出的方案,如果不可行,也要否决。

      根据以上的分析,我全盘否定了该“投资方案”,并建议万向集团不要投资ISP。可惜当初没人否定我开公司时的方案。

(三) 需求分析为什么困难

    有几种原因使需求分析变得困难:(1)客户说不清楚需求;(2)需求自身经常变动;(3)分析人员或客户理解有误。

客户说不清楚需求
     有些客户对需求只有朦胧的感觉,当然说不清楚具体的需求。例如全国各地的很多政府机构在搞网络建设,这些单位的领导和办公人员大多不清楚计算机网络有什么用,反而要软件系统分析人员替他们设想需求。这类工程的需求是如此的主观,以致产生很多贪污腐败现象。
    有些客户心里非常清楚想要什么,但却说不明白。读者可能很不以为然。就举日常生活的事例吧,比如说买鞋子。我们非常了解自已的脚,但没法说清楚脚的大小和形状。只能拿鞋子去试,试穿时感觉到舒服才会买鞋(居然也有神通广大的售货员,看一眼客户的手,就知道应该穿什么样的鞋)。
    如果客户本身就懂软件开发,能把需求说得清清楚楚,这样的需求分析将会非常轻松、愉快。如果客户全不懂软件,但信任软件开发方,这事也好办。分析人员可以引导客户,先阐述常规的需求,再由客户否定不需要的,最终确定客户真正的需求。最怕的就是“不懂装懂”或者“半懂充内行”的客户,他们会提出不切实际的需求。如果这些客户甚至觉得自己是上帝的爸爸,那么沟通和协商都会很困难。

需求自身经常变动
     唐僧曾说:“妖要是有了仁慈之心,就不再是妖,是人妖。”(《大话西游之大圣娶亲》)
连妖都会变心,别说人了。所以喜新厌旧乃人之常情,世界也因此变得多姿多彩。
软件的需求会变化吗?
    答:据历史记载,没有一个软件的需求改动少于三次。唯一只改动需求两次的客户是个死人。这个可怜的家伙还是在运送第三次需求的路上被车子撞死的。[Cline 1995]
让我们先接受“需求会变动”这个事实吧,免得在需求变动时惊慌失措。明白“需求会变动”这个道理后,在进行需求分析时就要留点神:
(1)尽可能地分析清楚哪些是稳定的需求,哪些是易变的需求。以便在进行系统设计时,将软件的核心建筑在稳定的需求上,否则将会吃尽苦头。
(2)在合同中一定要说清楚“做什么”和“不做什么”。如果合同含含糊糊,日后扯皮的事情就多。要防止象韩复渠那样,在别人请他喝酒吃饭时他什么都点头(人家就更加献殷勤),吃完了他就宣布刚才答应的事都不算数,便扬长而去。

分析人员或客户理解有误
    有个外星人间谍潜伏到地球刺探情报,它给上司写了一份报告:“主宰地球的是车。它们喝汽油,靠四个轮子滚动前进。嗓门极大,在夜里双眼能射出强光。……有趣的是,车里住着一种叫作‘人’的寄生虫,这些寄生虫完全控制了车。”
    软件系统分析人员不可能都是全才。客户表达的需求,不同的分析人员可能有不同的理解。如果分析人员理解错了,可能会导致开发人员白干活,吃力不讨好。我读中学时候最怕写作文逃题,如果逃题了,不管作文写得多长,总是零分。所以分析人员写好需求说明书后,要请客户方的各个代表验证。如果问题很复杂,双方都不太明白,就有必要请开发人员快速构造软件的原型,双方再次论证需求说明书是否正确。
    由于客户大多不懂软件,他们可能觉得软件是万能的,会提出一些无法实现的需求。有时客户还会把软件系统分析人员的建议或答复给想歪了。
    有一个软件人员滔滔不绝地向客户讲解在“信息高速公路上做广告”的种种好处,客户听得津津有味。最后,心动的客户对软件人员说:“好得很,就让我们马上行动起来吧。请您决定广告牌的尺寸和放在哪条高速公路上,我立即派人去做。”
    为什么软件系统分析员的工资要比普通程序员高?就是因为需求分析困难嘛。

(四)如何进行需求分析
    上一节诉说了需求分析的困难,本节要知难而进。
     进行需求分析不象情人之间的浪漫做法——“让我摸摸你的头发,感觉它是什么颜色。”我们要围绕两个核心问题开展需求分析:(1)应该了解什么?(2)通过什么方式去了解?

应该了解什么
    那怕是天下最无能的市长或书记,都知道在作报告时要先从宏观上讲一、二、三、四、五,再从细节上讲A、B、C、D、E。需求分析不象侦探推理那样从蛛丝马迹着手。应该先了解宏观的问题,再了解细节的问题,如图4.1所示。


问题域 对应于软件子系统


问题 对应于子系统的软构件

行为(功能) 对应于软构件的接口

一个软件系统(记为 S)的涉及面可能很广,可以按不同的问题域(记为D)分类,每个问题域对应于一个软件子系统。
S = { D1,D2,D3,… Dn }
问题域Di 由若干个问题(记为P)组成,每个问题对应于子系统中的一个软构件。
Di = { P1,P2,P3,… Pm }
问题Pj有若干个行为(或功能,记为F),每个行为对应于软构件中的接口。
Pj = { F1,F2,F3,… Fk }
按图4.1结构写成的需求说明书,对于那些只想了解宏观需求的领导,和需要了解细节的技术员都合适。在写需求说明书时还应该注意两个问题:
(1)最好为每个需求注释“为什么”,这样可让程序员了解需求的本质,以便选用最合适的技术来实现此需求。
(2)需求说明不可有二义性,更不能前后相矛盾。如果有二义性或前后相矛盾,则要重新分析此需求。

通过什么方式去了解
了解需求的方式有好几种:
(1)直接与客户交谈。如果分析人员生有足球评论员的那张“大嘴”,就非常容易侃出需求。
(2)有些需求客户讲不清楚,分析人员又猜不透,这时就要请教行家。有些高手真的很厉害,你还没有开始问,他就能讲出前因后果。让你感到“听君一席言,胜读十年书。”
(3)有很多需求可能客户与分析人员想都没有想过,或者想得太幼稚。要经常分析优秀的和蹩脚的同类软件,看到了优点就尽量吸取,看到了缺点就引以为戒。前人既然付了学费,后人就不要拒绝坐享其成。

(五)小 结

    为了阐述可行性分析的四个要素:经济、技术、社会环境和人,本章讲了几个令人垂头丧气的案例。如果您学会了客观、科学的可行性分析,在作决策时就要果断,要学习热恋中的这个年青人——“倒底行还是不行?行就结婚,不行就离婚。”
    本章并没有鼓吹需求分析的难度,不是在吓唬人。如果需求分析搞错了,麻烦大哩。几十年前,我们最最伟大的领袖毛主席说了一声“人多力量大”,导致现在中国人口蹦到13亿。他老人家辉煌地走了,后人却付出了沉重的代价。
     所以我们要认真地做好可行性分析和需求分析。

原创粉丝点击