软件代码的质量问题解决方法(By AMT 张艳 编译)

2004-2-1 10:58:19【作者】 畅享网 【进入论坛】
广告

软件代码的质量问题解决方法

By AMT 张艳 编译

 RFC认为:软件开发商的开发合约没能在企业的业务运转以及关键任务应用方面满足软件质量方面的要求。IT管理人员与协作律师应该一道为代码的质量而精诚协作。除此之外,在没有正当理由的时候,IT管理人员还应该向开发商提出加强客户购买软件方面的要求。而且,在签定最终的合约之前,IT管理人员应该把好话、丑话以及其他的涉及减轻企业要承担的风险等保护性条款都事先说明。下面我们就从几个方面来具体分析这个问题。

 1、业务方面的势在必行:

  • 在应用软件包的代码方面,现如今的企业所面临的主要问题的原因有2点:一是这些软件包的开发商在测试自己的产品时都不够充分,因而导致消费者变成了实质性的软件测试版的测试者。第二个原因就是软件包本身常常是被设计、编码为满足某一单个用户的(或者是某个客户的子客户),因此软件不具备通用性,无法满足每一个客户的要求。为了使自己因对通用软件的测试不完全而造成的不良后果,IT管理人员应该就合同中的各个条款与有关人员进行商榷,从而降低自己在这方面承担的风险。
  • 当今的硬件、中间件和软件开发商都正开始了解到要成为自己客户值得信赖的合作伙伴,他们将需要与客户分摊风险与收益。目前,开发商们还没有被要求一定要保证自己的代码的质量和集成性。但是,在将来,如果软件代码的错误要为客户业务操作的失败负直接责任的话,他们就应该有责任和义务注意这方面的问题了。IT管理人员应该请求上一级的开发单位的管理人员(例如副总裁)对已在内部进行过质量检测即将发布的代码提供可靠的保证。具体包括要保证代码是稳定的,并且不包括已经发现的会造成应用软件不可访问、访问受到严格限制、甚至是故障这样的错误。当然,要保证的内容还不止这些。
  •  对合同的审视一定要认真细致,最好能象检查油漆已经干了的墙面一样细致。语言在实际上是不可理解,而且对其隐含的意思的理解就更难了。这主要是由于搀杂了要在保证用合适的编码语言来保证软件质量从而对客户负责的因素。IT管理人员应该确保他们自己、协作伙伴以及其他的质量方都等细查合同中的各个条款和条件,这样以来就能迫使软件开发商能按合理的要求下进行软件的修改。

2、 以上是我们对行业实际情况的分析,下面我们就提供一些能降低风险、弥补软件代码中已暴露出现的错误的指南性意见:

  • 软件合同中的测试条款和客户条款都要认真对待。

在一些企业急于寻求软件测试版的测试者的时候,最好不要由那些不希望通过测试这么做来保护自己及其组织的IT管理人员来完成这方面的工作。而应该根据协议或是合同的具体条款来将客户可能要承担的风险尽量降到最低。在涉及IT管理人员、协作方律师的有关合同条款方面,应该认真审视,考虑通过协商来重新配合软件开发商的开发合同。

  • 注意分析商业上的可行性。

IT管理人员应该提高对各种条款的警惕性。这主要是因为这些条款常常反映出开发商是通过修补过去的软件来满足你的需求还是决定分派人员去解决有关客户无法解决的问题重新开发软件。在不能确定要花多长时间才能修补好一个软件方面的漏洞的时候,修补的努力程度可能因开发商的不同而有所不同。因此,IT管理人员必须确保开发商能在时间和资源方面符合原先既定的安排。更进一步,如果开发商已经能保证作到这些了,IT管理人员还必须保证加进来的额外的员工或是外部工作人员的工作时间,这样以来就要求开发商不仅能遵守事先的约定,而且可以单方面承担成本方面的所有问题。但是,反过来说,如果问题是由于客户的拖延、错误或是忽视造成的,那么开发商就没有任何责任了,所以合同的双方就成本以及补偿等问题要在责、权、利方面达成一致。

  • 软件要能满足所有的规格说明。

IT管理人员不应该接受来自软件开发商的“软件能满足所有的特殊规格说明”的所谓承诺,因为这是靠不住的。RFG认为,这样的承诺太过宽泛,因此,IT管理人员应该获得具体的服务级别协议SLA(service level agreement )的或是来自开发商所承诺的具体承诺。这样的承诺或是服务级别协议应该能确保如果出现了任何代码质量上的问题,开发商有责任自己花钱进行修补,并要保证在客户要求的指定时间内完成。

而且,IT管理人员应该在一开始就代码的质量问题进行磋商,以便在开始阶段就让合同发挥监督作用。例如,在开发商和客户已经协商过并达成一直的时间期限内,软件应该没有严格意义上的一级、二级问题,而三级问题或是软件中的bug可能占的代码行的比例也不能超过一定界限,我们可以采用6 Sigma的方法来掌控,比如说,软件中每百万条代码中出现的bug数不能超过3.4个。今天来看,期望软件公司能达到6 Sigma标准的要求还不够合情合理,客户和开发商应该就实际的错误率进行协商。如果合同中的这类条款已经超出要求,那么就要在考虑合同的开始阶段得到考虑。而作为客户,应该能够取消这类条款中的不合理的部分,并设法讨回全部或部分自己已经投出的钱。更进一步说,IT管理人员还应该以合同为依据,尽量减少或避免对造成业务中断的软件代码质量问题所带来的损失。

  •  进行切实有效的软件交付使用。

IT管理人员应该确保软件合同或是协议中存在的冲突能遵循如下标准来解决,即要进行切实有效的让开发商能够按客户需求的方式来供软件的交付使用。具体来说包括合同中提到的硬件、各种材料、软件媒体和供应物。当然不仅仅包括这些,还有其他的方面。

软件的交付使用应该是新方式和高质量的,只有这样才能切合实际地使软件顺利交付使用。例如:磁带或磁盘应该能够被相应的磁带或磁盘驱动器读的出来。

软件的交付使用应该是免费的,如果客户无法提供代码编写时出现的错误,那么设计本身就存在缺陷了。

软件的交付使用应该是安全并且适合原先的预期流程。

软件的交付使用应该是在完成最近一次所有错误修补之后达成共识后进行的。

软件的交付使用应该是没有任何病毒的,也应该是不会出现篡改代码、数据或是歪曲代码、锁住代码等其他任何可能破坏公司正常活动和处理流程问题的。

就硬件而言,一些应用软件开发商会根据硬件和外设的要求而限制自己所开发的软件的规模,但是在合同中将写明有关软件规模的有关保证。因此,作为IT管理人员就应该确保为将来软件的进一步完善与壮大而保留必要的备份和冗余空间,同时,他们还应该要求开发商能够保证软件在一定程度上的准确性。例如:20%~600%的变数就是一个可以接受的变更比率。如果硬件的规模低于软件的要求或是开发商无法通知客户他们的软件所必需的硬件设备、中间件和软件,那么如果达不到客户的满意程度,责任就在开发商身上了。

除了上述要素之外,IT管理人员还必须确保所有任何有关软件交付使用的协议或是合同中的描述、规划、指示、需求和说明是可以兑现的。如果IT管理人员确信合同或是协议中有问题,他们应该有权对任何交付使用过程中或者是协议中任何无效部分的取消作出相应行动的。而作为开发商,如果从客户的角度出发,在软件的交付使用过程中他们的职责就是必须要做到以下2点:

 对于软件交付使用过程中出现的缺陷或是任何问题都要能够迅速采取包括重新实施服务这样的改正措施,并要能承担这些过程的所有费用。

在软件的交付使用过程中,对已经取消或是被决绝的服务要偿还客户已经付给的全部的款项。在这种情况下,开发商还要承担所有因此而造成的有关软件的测试、处理、重新打包、存储、传输和解包等方面的费用。所以合同必须要能反映出有关开发上必须偿还给客户的此类费用的有关内容。 

另外,在上述内容中提到的担保条款的基础上,还要从合同拟订的一开始就写明有关开发商要承担的费用的担保内容,这样有利于对软件错误采取任何及时、必要的纠正措施。这样的担保内容可能要包括如何确保提供给客户事先期望并在协议中双方已达成一致任何服务(如软件的安装或执行)得以实施。为此,IT管理人员应该为开发商优先提供已经写好并批准的要采取的更正措施的有关内容,而开发商也应该尽最大努力来对问题进行补救。如果担保中提及的错误是开发商造成的,那么开发商就有责任对因此给客户带来的任何损失给予失补偿。

由软件开发商造成的问题,并且又是由客户在合同中事先写明责权关系的,那么有关负责该类事宜的IT管理人员就必须采取以下行动:他/她应该确保他们已经提供给客户有关的注意事项和弥补错误可以使用的合理时间期限。如果开发商无法对应对错误或者是既无法迅速改正错误,也不能分步骤逐渐改正错误,那么IT管理人员就不得不介入其中采取自己的相应的改正措施。例如:出现了某个紧急情况(如公司无法操控业务),而开发商又不能及时做出应对时,IT管理人员就要从内部采取不久或者从外部寻求帮助支援了。

在这种情况下,开发上有责任为客户支付包括错误改正、购买替代材料、服务、工具等在内的所有的开销。但是,IT管理人员应该确保合同中所反映出的客户必须采纳的任何纠错行为不能超出开发商的担保范围,并且不能导致由此又产生其他的任何责权或补救事宜。这一点是很重要的,因为一些开发商的协议或合同中规定:如果客户修改了软件或者是源代码,那么他们的有关担保就无效了。但是,如果是处于因业务中断而开发商对此又无能为力、造成客户除了修改软件或是源代码别无选择这种情况时,开发商还是要在软件有效的时间范围内承担担保义务的。除了上述建议要作为行为指南来对待之外,还要引起注意的一点是:这些还不是所有的要点,它们也不意味着具有法律效率。因此,企业的IT管理人员在与别人合作,签署有关软件开发的协议或是合同之前,还应该咨询有关的法律专家以及一些其他的有见识的人事,而企业的法律部门也要能依据法律来审视、调整协议或是合同中的有关内容。

 总结

 总之,RFG认为,许多软件开发合同对软件的质量需求和代码错误补救措施提出了一步步的很明智的详细要求。作为合同实施的企业的IT管理人员和软件开发商,尤其是那些期望着能在一段时期内留住现在的软件开发商的企业,一定要保持好与这些开发商之间的关系。企业的IT管理人员更是要在签定合同时,冲锋陷阵在最前沿,就软件的质量问题与开发商进行细致的商谈。

 

如果您希望与本文章的作者或其所在机构,进一步交流,请联系:畅享网 姜小姐
jill.jiang@amteam.org | 021-51096826-112 | 在线联系
老孙的IT运维管理之道[原创]用户的BSM用户的IT业务管..

从企业实际的IT运营角度来看,BSM是推动IT与业务融合,实现、改善WCNG司IT管理和治理的最佳实践之一。

吕建伟 专栏和CIO问答软件项目实施管理

现实中很少能按照正规流程来的,所以只能把流程中的各个环节拆开,个个击破,以后就可以见招拆招了。

ITIL实施:CIO时刻准备着

千军易得,一将难求,要推进ITIL实施,CIO扮演的角色不容忽视。吹响集结号,CIO出击的时刻已经来到。

节能与优化IT 企业CIO过冬良策

当前金融危机的影响还在继续漫延,很多企业都在苦寻过冬的良策,在这种情况下,节能与优化技术与产品无疑成为CIO们关注的首要对象,本次选题就是针对节能与优化IT来为CIO们提供过冬的良……