《软件工程思想4》由会员分享,可在线阅读,更多相关《软件工程思想4(14页珍藏版)》请在金锄头文库上搜索。
1、第四章 可行性分析与需求分析可行性分析是要决定“做还是不做”。需求分析是要决定“做什么,不做什么”。即使可行性分析是客观的、科学的,但决策仍有可能是错误的。因为决策者是人,人会冲动,有赌博心态。如果可行性分析表明做某件事的成功率是10%,失败率是90%,倘若该事情的意义非常大,决策者也许会一拍脑袋:“豁出去,干!”于是这世界就多了一份极喜与极悲。4.1节讲述可行性分析的四大要素:经济、技术、社会环境和人。目前国内很多软件公司做系统集成项目,如果谈谈系统集成项目的可行性分析将很有意思。可是那些系统集成项目大多是政府机构的,由于软件行业尚不规范并且客户方存在腐败现象,所以业内流传“没有做不了的系统
2、集成项目”。软件公司的注意力几乎全集中在“如何拿到项目订单”以及“拿到订单后如何蒙混过关”上,使我丧失了卖弄“可行性分析”的机会。既然不能正面指点一个人如何做好事,那么就规劝他不要做坏事吧。4.2节讲述可行性分析案例投资软件公司失败的教训。作者本来没有资格谈论投资,但事有凑巧:近一年来我关闭了一个亏损30万元的软件公司(我自己的);休克一个年亏损200万元的软件公司(朋友的);扼杀一个200万元的投资方案(陌生人的);踩灭一个处于萌芽状态的100万元的投资设想(熟人的)。鉴于现在比较富有的民营企业渴望投资软件行业的越来越多,值得谈谈这方面的可行性分析。我将讲述亲身经历后的感受,提一些建议。不论
3、是为客户做软件项目还是为自己做软件产品,都要进行需求分析。需求分析最恼人之处是难以在项目刚启动时搞清楚需求,如果在项目做了一大半时需求发生了变化,那将使项目陷入困境。4.3节解释需求分析为什么困难,4.4节讲述如何进行需求分析。本章的需求分析均不涉及编程,所以不考虑结构化、面向对象等分析方法。4.1可行性分析的要素做可行性分析不能以偏盖全,也不可以什么鸡毛蒜皮的细节都加以权衡。可行性分析必须为决策提供有价值的证据。联想集团领导人柳传志曾说:“没钱赚的事我们不干;有钱赚但投不起钱的事不干;有钱赚也投得起钱但没有可靠的人选,这样的事也不干。”柳传志为决策立了上述准则,同时也为可以行性分析指明了重点
4、。一般地,软件领域的可行性分析主要考虑四个要素:经济、技术、社会环境和人。本节只是泛泛地解释这四个要素,旨在建立全局分析的观念。4.2节将结合案例围绕上述要素进行重点分析与评注。4.1.1 经济经济可行性分析主要包括:“成本收益”分析和“短期长远利益”分析。一、成本收益分析成本收益分析最容易理解,如果成本高于收益则表明亏损了,如果成本大大高于收益那就亏大了。商人都不喜欢做吃亏的事情。有些商店成天贴着“最后一天跳楼大拍卖”的标语,意思是:我准备吃大亏让你占便宜,同志,你快上钩吧。如果是为客户做软件项目,那么收益就写在合同中。如果是做自己的软件产品,那么收益就是销售额。人们在预估产品销售额时常常过
5、分乐观而犯下大错。那些对你的产品说恭维话的人并不见得就是要买货的人,俗话说“嫌货才是买货人”。当你没碰到一个挑刺的人而感觉这产品好得会让你发大财时,就要做好会破产的心理准备。如果做的是小本生意,那可得对成本进行细算。软件的成本不是指存放软件的那张光盘的成本,而是指开发成本。要考虑的成本有:(1)办公室房租。(2)办公用品,如桌、椅、书柜、照明电器、空调等。(3)计算机、打印机、网络等硬件设备。(4)电话、传真等通讯设备以及通讯费用。(5)资料费。(6)办公消耗,如水电费、打印复印费等。(7)软件开发人员与行政人员的工资。(8)购买系统软件的费用,如买操作系统、数据库、软件开发工具等。有些老板买
6、盗版的系统软件,却按市场价算成本,可从美国佬那里赚一笔。(9)做市场调查、可行性分析、需求分析的交际费用。(10)公司人员培训费用。(11)产品宣传费用。如果用Internet作宣传,则要考虑建设Web站点的费用。(12)如果客户是政府部门,还要充分考虑用于吃喝玩乐、行贿的费用。(13)如果公司的风水不好,会有很多莫名其妙的管理费。每戳一个红艳艳的公章都要化一把钞票。二、短期长远利益分析人们喜欢吃着碗里的、看着锅里的,还想着别人家里的。短期利益和长远利益兼得是人们梦寐以求的事。在商业上,这等好事可不会轻易降临。短期利益容易把握,风险较低。国内软件公司经常出现一窝蜂地去做信息管理系统、多媒体光盘
7、、系统集成项目或Internet服务。每当我们沉迷于短期利益不思进取时,应该好好回忆童年时代那些伟大的抱负,给自己一些激励。长远利益难以把握,风险较大。能为了长远利益不惜短期亏损的人,要么是雄心勃勃的将帅之才,要么是“纸上谈兵”、“眼高手底”的那一类庸人。国内目前有不少Internet企业,只投入不产出。为了成就将来的霸业,甘愿现在拼财力、比耐性。最后存活下来的几个公司将瓜分市场。那些为长远利益奋斗的人们,你们可得把长征的路途走完啊,千万别让事业中途夭折。4.1.2 技术技术可行性分析至少要考虑以下几方面因素:(1)在给定的时间内能否实现需求说明中的功能。如果在项目开发过程中遇到难以克服的技术
8、问题,麻烦就大了。轻则拖延进度,重则断送项目。(2)软件的质量如何?有些应用对实时性要求很高,如果软件运行慢如蜗牛,即便功能具备也毫无实用价值。有些高风险的应用对软件的正确性与精确性要求极高,如果软件出了差错而造成客户利益损失,那么软件开发方可要赔惨了。(3)软件的生产率如何?如果生产率低下,能赚到的钱就少,并且会逐渐丧失竞争力。在统计软件总的开发时间时,不能漏掉用于维护的时间。软件维护是非常拖后腿的事,它能把前期拿到的利润慢慢地消耗光。如果软件的质量不好,将会导致维护的代价很高,企图通过偷工减料而提高生产率,是得不偿失的事。技术可行性分析可以简单地表述为:做得了吗?做得好吗?做得快吗?4.1
9、.3 社会环境社会环境的可行性至少包括两种因素:市场与政策。市场又分为未成熟的市场、成熟的市场和将要消亡的市场。涉足未成熟的市场要冒很大的风险,要尽可能准确地估计潜在的市场有多大?自己能占多少份额?多长时间能实现?挤进成熟的市场,虽然风险不高,但油水也不多。如果供大于求,即软件开发公司多,项目少,那么在竞标时可能会出现恶性杀价的情形。国内第一批卖计算机的、做系统集成的公司发了财,别人眼红了也挤进来,这个行业的平均利润也就下降了。将要消亡的市场就别进去了。尽管很多程序员怀念DOS时代编程的那种淋漓尽致,可现在没人要DOS应用软件了。学校教学尚可用用DOS软件,商业软件公司则不可再去开发DOS软件
10、。政策对软件公司的生存与发展影响非常大。整个90年代,中国电信的收费相当高,仅此一招就把国内互联网企业打得奄奄一息。某些软件行业的利润很高,但可能存在地方保护政策,使竞争不公平。政策不当将阻碍软件公司的健康发展,可最怕的还是政府干预企业的正当行为。例如:现在家电行业竞争非常激烈,其中有一个著名企业的总裁十分了得,把对手打得节节败退。于是中央领导人就来视察该企业并作讲话:“你们的业绩辉煌,得到了中央的高度重视,但我们是社会主义国家,不是资本主义国家,你们总得给兄弟企业的同志们留口饭吃吧!”有一次我拜访了北京大学一位研究经济学的朋友。这个年青人,还是个党员,竞然这么说:“我最近在研究国内明星企业的
11、兴衰问题,我发现了一个规律,明星企业一旦被政府领导人视察过,它就忘了自己是谁,就会做些走向死亡的蠢事。”我实在不明白企业中为什么还要有“书记”职位。我以为“书记”乃是天下第一号可笑的官衔,“书记”本是“秘书”(secretary)的同义词,是个可有可无的行政人员的称呼,在中国竟然成了最大的官衔。每次看到新闻联播把国家主席错叫成总书记我都十分气愤:因为总书记的称喟只对几千万的党员适用,国家的新闻机构难道不面向十多亿普通老百姓?如果我将来的工作单位还靠“书记”来管事,我每天准忙着生气,那里还有精力去编程。4.1.4 人有句名言:“人分四类人物,人才,人手,人渣。”如果一个软件公司里上述四类人齐全了
12、,那么最好的分工是让“人物”当领导,“人才”做第一线的开发人员,“人手”做行政人员,“人渣”负责行贿。这里只谈公司的领导与开发人员“行还是不行”。“人物”毕竟是少数,“人才”可是济济的。举重若轻的那类“人才”可以做领导,举轻若重的那类人才适合做软件开发人员。假如一群持有学士、硕士和博士文凭的毕业生到软件公司应聘,该如何录用呢?我的建议如下:先选择本科毕业生,因为他们正当青春、干劲十足、不摆架子、不耻下问、要求不高、奉献甚多。其次选择硕士毕业生,如果该生没象范进中举时那么老,并且在读硕士时没有天天去造文章而丢弃了编程工作,那么让有经验的学士程序员带他们煅练几个月就可以用了。如果学士、硕士被其它公
13、司取光了,那只好捡几个博士充数。博士到了软件公司有什么用呢?我想不出有什么用,只知道他们挺值得可怜的:从硕士读到博士出头,这六七年时间,真本事没学多少,倒学会“眼高手低”甚至“弄虚作假”;毕业时蓦然回首,发觉青春已被虚度,心灵已呈老态,唯有长叹短嘘,强把自负作自信。我也将博士毕业,就要论为三手贷贱卖了。真羡慕那些比我年轻的学士、硕士们,他们可以远走高飞,唉!4.2 可行性分析案例投资软件公司失败的教训谈到软件产业,不能不提及比尔盖茨与Microsoft公司。因为比尔盖茨创建了Microsoft公司并成为世界首富的事实,使得无数从事软件工作的人们心存同样的梦想。有太多人急着想做中国的比尔盖茨 。
14、有个年青人发明了一种汉字输入法,便在媒体上放言欲覆盖比尔盖茨。中央电视台特冲动地把一个上了年纪的院士请来,让他谈谈自己与比尔盖茨的比较,害得这位院士一个劲地辨解自己不是中国的比尔盖茨。近几年来,一批Internet英雄企业如Yahoo、Netscape兴起。尤如打破了秦始皇一统的天下,重返春秋战国时代。让软件人员走出了Microsoft的阴影,看到了阳光灿烂的软件世界。于是各色各样小不点儿的软件公司在国内遍地开花。打破水缸的小孩子很多,但并不见得就会有司马光的业绩。由于“经济、技术、社会环境、人的因素存在差异,有些事情美国人能做成,我们模仿着做未必就能做得成功。虽然“星星之火、可以燎原”,但我
15、们的国力薄弱,实在容不得把有限的火种扔到不毛之地。所以要进行可行性分析,如果不可行,就不要急着去做。本节三个案例是作者亲身经历的,我力求讲清楚错在哪里,并总结经验教训。希望读者看后能提高警惕,免犯相同的错误。4.2.1可行性分析案例之一这个案例讲述我从开公司到关闭公司的一些经历和感受。我从本科三年级开始编写图形程序,一见钟情后便如痴如醉,不管一切地抛弃了本科与硕士的微电子专业。1997年春季,我到了向往已久的浙江大学CAD&CG国家重点实验室读博士学位。我幸福地幻想着大干一番自己喜爱的专业。开学的第一天,我兴冲冲地奔向实验室。进门不到5分钟,就因不懂规矩被看门的年青女子训了几次。为了不再冒犯规
16、矩,我就老老实实地抓起一份计算机报纸并且站着阅读。突然一个气得脸色铁青的男人(机房管理员之一)对我断喝:“你在干什么!你怎么可以不经允许就翻看别人的报纸!”我就象一个情窦初开的少年飘飘然地去拥抱梦中情人,不料迎来两个耳光,此下场比猫和老鼠中的猫还惨。不出几日,我就发现实验室里人们大多轻言寡语、小心翼翼、井水不犯河水。初到此实验室的北方同学极为迷惑地问我:“你们浙江人是不是都这个德性?我看你不太象嘛。”如果不允许一个男人在工作时仰天大笑,这样的地方不去也罢。我颇费周折地考入CAD&CG实验室,却尚未热身就全力而退,决心自立门户(至今我都没有用实验室的计算机编过一行程序)。那时我穷困潦倒,只有一床,一盆,一壶,一碗。我