软件也有硬标准──如何鉴别软件(项目)的优劣 Airport 2001年 10期 3月15日,消费者权益日,这是很多商家非常关注的日子。在IT界,可能大多数人都习惯于关注硬件方面的内容,而我们的软件业是否有必要给消费者一个回音呢?其实,在软件行业里面,作为客户碰到的问题可能会更多,经常碰到用户对软件生产商(包括个人)所完成的软件因为没有达到指定的要求,或则由于培训服务不好,造成软件实施不到位这些情况。对于用户来说,应该能够有一点常识来鉴别一个软件的好坏或者一个软件生产商的服务能力。    在软件方面,如何去保障消费者的权益还是一个有待于不断完善的问题。经常会碰到朋友来诉苦说软件做得太差,一点都不符合标准,恨不得自己动手做。这样的例子在我们日常生活中经常碰到。笔者自己就是做软件干IT的,碰到这样的事情感觉特别痛心,有的时候好好一琢磨,觉得软件行业中要维护消费者权益和传统的产品有还是有本质的区别。   #1 软件也要看服务    软件的未来是服务。软件行业的暴利时代应该已经结束,过去微软靠一套Windows就可以财源滚滚的时代已经一去不返。在互联网技术发展的今天,软件行业将来的重头戏也不会单纯从软件本身出发。现在,很多国际知名的大公司都提出了一个新的概念:“从服务中赚取利润”,特别是由于Linux的出现,推动更多的大公司向这个方向发展。国内外有很多依靠Linux技术而成立的软件公司,Linux本身是免费的,但是厂家提供的服务和一些应用程序会收取一定的费用。从消费者的角度出发,费用应该直接和服务的质量成正比。这也可以让消费者心安理得的花钱买服务,而不像以前一套软件多少多少钱,软件本身的定价就有待推敲。    “i软件”的产生决定了服务是销售产品的主要前提,因特网的诞生和发展,为软件的发展提供了新的平台和新的运行方式,软件完全可以将因特网作为一种手段和属性,使软件获得新的生命,这种新的属性的概念就是Internet Inside。业内已经有人提出,将来的软件是“i软件”的天下。而“i软件”的一个最大的特点就是服务,因特网的出现,使服务成为商品(包括软件和网站)的重要特色,“i软件”的主动性使用户可以更加方便和及时地得到来自厂商和社会的各种服务。    从经济学的角度去考虑软件的将来,服务的增强是必然的趋势。过去的软件可以这样说,只要占领了市场,就可以经过不断的拷贝来获得利润,它的边际成本几近于零。而整个生产体系是受报酬递增率支配的,现在的软件产业由于竞争的激烈,一个软件如果要想保持其报酬与时间的正比性,就必须提供不断的服务来让其产品依然在市场上具有竞争力,否则就有被淘汰的可能。另外一种模式是纯粹的增值服务:软件本身并不要钱,而是通过一定的服务来获得报酬。用户使用软件,就自然要得到一定的服务来满足其需要。这种竞争模式最大的优点是低成本高回报,利润的获得相对比较稳定,而且与成本是呈正比关系,成本越大,获得的利润越高   #1 项目软件看清楚    上述是软件产业将来的趋势,而如今对于一个普通消费者(企业用户)来说,应该有能力鉴别合适的软件,而不至于买进价不廉物不美的软件。目前国内市场存在的软件无非两种形式,一种是项目类型的,一种是产品类型的。    项目类型一般是为某一家公司特制的产品,这样的产品可再利用性不大,相应的价格比较高,对于消费者而言,这方面的软件碰到的问题和纠纷就特别多。我有位传统企业的朋友,单位想弄个企业管理软件,那可是好事,企业信息化管理,有利于企业决策管理。于是找了一家软件公司(据说在当地也算是大的),两三个月完成了该项目。拿回来以后,该软件公司的人说大家不明白的地方可以看帮助文档,还不明白可以打电话咨询(态度挺好)。本来想这下好了,信息化管理嘛,以后工作会更加轻松。接下来问题就出现了,倒不是说这个软件Bug多,而是当大家在使用的时候发现不明白的地方很多,看帮助文档也不能解决问题,在长期打电话的情况下弄得大家都嫌麻烦。最后,干脆就不用了,这个软件也就差不多名存实亡。    因此,对于需要特定项目的客户来说,资金和人员应该会比较齐全,所以就需要在寻找软件开发商的时候一定要考察一下该软件开发商的实力。一般来说,软件开发商都会提供一个解决方案书,而具体包含的内容起码应该有的是:    1.软件的具体进度计划;    2.软件所能达到的功能说明;    3.软件工程规范;    4.软件完成以后的安装、培训等;    5.版本的再升级等。    另外,目前很多软件公司都开始实行CMM(软件能力成熟度模型),由于国内软件工程方面本来就相对比较薄弱,而实施CMM对于对于软件本身有着很好的定义,管理、测量、控制和检验有效性。基于这一点出发,客户考察一个软件公司的能力时,是否实行CMM也是一个可评测标准。   #1 产品软件咋评估    产品类型的软件一般都是普通用户能够经常接触的,比如流行市面上的杀毒软件、游戏软件,由于其主要的形式是重复拷贝模式,所以相对项目类型的软件价格低廉,同时由于这样的软件可控制性比较强,一般软件公司都是经过重复测试,所以相对的Bug也比较少。普通消费者评价的标准当然除了软件本身的质量以外,后续的服务也是一个越来越重要的指标。目前市面上买的比较多的软件也无非如下几种:杀毒软件、教育软件、管理软件、游戏软件、财务软件……    对于购买产品类的软件,可以分两种形式来评价。一种是必须要后续服务的,这一类软件的增值服务费用都在一开始购买的时候已经包含在产品的价格里面了。其中大家所熟悉的典型产品有杀毒软件,这种软件除了它本身软件的质量以外,最重要的是看它对病毒库的升级更新程度,也就是所谓的后续服务,一个优秀的杀毒软件还应该包括有防火墙、网络应用等。另一种就是没有针对性的后续服务,目前大多数应用软件都是这种类型。由于这种类型的产品并不适合如今的市场,不少软件生产商也都意识到这一点,对于购买自己产品的用户可以优惠购买后续版本的软件或同类产品。所以,用户在选用这类产品的时候,除了在使用功能上一定要适合自己以外(可以横向比较同类产品),制作该软件公司的规模、后续版本的升级能否保障等,都是在购买软件时候的一个依据。    作为软件开发人员,我们真的需要市场仔细审视一下自己,看看自己的饭碗是否有些倾斜。要端平这个饭碗,就应该考虑考虑如何更好地在软件行业立足了。    末了,还是刚才的那句话:软件的未来是服务。这句话说来比较容易,实际做起来还有些难度,一个软件从前期的策划到开发到测试到投入市场到培训。其实这一系列每个环节都很重要,很多人都觉得软件实施以后的善后服务才是评价一个软件的指标,其实即使后期的服务殖民地好,由于前面的错误,后期是无法弥补的。    毕竟,软件行业不同于其他,使用者看到只是实际运行的效果,至于软件编码时候的算法、冗余性等方面,普通的消费者很难知道!要想在这方面真正做好,一个好的软件工程指导是必不可少的,SEI(软件工程研究所)很早就对软件成熟度进行研究,通过精心推敲成熟度框架,形成了一种对软件组织开发软件产品提供有效指导的模型(CMM),具体CMM的结构我想没有必要在这里细谈,实施一套好的软件开发标准应该是每个软件开发公司都正在努力探索的一个目标。