为什么软件交付后还会有bug?深入解析软件开发中的常见问题与解决方案

2025-01-07
来源:网络整理

有一天,一位甲方问我:“开发出来的程序为什么会有bug?”虽然我心里暗暗觉得这是一个很现实的问题,但我还是能理解甲方的心情——“我付了钱,你开发的软件为什么不把它做得完美一点送给我?更郁闷的是,为什么我一定要以后出了问题还要另外付费修理吗?”

嗯~出于对我们提供的服务负责的态度,这个问题我还是需要向甲方解释清楚~

先解释一下“为什么软件交付后还是有Bug?”

从积极的一面来看,软件是由代码行组成的。程序员在编写这么多代码的过程中,难免会在逻辑或者输入上出现一些遗漏,而这些遗漏就是bug。

打个比方,程序员编写软件就像作家写书一样。即使经过了很多人的审阅,一本书出版后也难免会出现错别字、逻辑错误、情节不合理等情况。同样的道理,即使软件在上线前经过了层层测试,最终交付后也难免会存在一些没有注意到的细节。

事实上,错误总是会发生的,我们需要做的就是“努力”将其控制在最低限度。

再延伸一点,可以说你每天使用的每一个软件、APP都有Bug,只是你没有遇到Bug,或者是遇到了但你没有注意而已。微信、淘宝也不例外。

几句话,但实际上所有技术都有很大概率有效,而不是100%有效。

工厂标准化、流水线生产,你觉得生产出来的东西都应该一样吗?不,概率是一样的,但还是会有很多次品。因此,工厂在生产产品时,非常注重一个指标,叫做“良品率”。这个指标指的是“有效概率高”的概率高。

小程序是自己开发还是外包好_外包开发什么意思_外包软件开发

产品生产出来后,必须经过质量检验。经过质检,产品应该没问题吧?不是,质量检验是抽样质量检验。例如,检查10,000个产品中的100个,然后计算“良率”。如果“良率”达到标准,则所有产品都通过。也就是说,有9900件产品没有经过检验。不过按照估计应该是没有问题的。 (当然,被发现不合格的就会被扔掉。)因此,每万个消费者中就有一个可能会买到有缺陷的产品。

即使是通过质检的产品也可能存在整体设计问题。由于质量检验标准是基于以往的经验,可能没有考虑到最近出现的新情况。同时,即使是老情况,质检标准也不会面面俱到。质量检查只会检查少数。一个关键指标。这就是为什么我们时不时会在新闻中听到某车企召回了多少某种型号的汽车。

不能保证每个环节100%没有问题。换句话说,无论生产什么产品,都不能保证每件产品都符合标准。商家能做的就是在你购买后,给有缺陷的产品更换好产品。

说到这里,你是不是感觉生活突然没有安全感了呢?难道是我的房子质量不过关,突然倒塌了?走在路上的时候,会不会是路面质量不达标,突然出现一个大洞呢?很难遇到,但不得不说有可能,只是可能性很小。与这些致命问题相比,你遇到的比较不合格的产品通常是“我的桌面商家说高,其实只是高”,“我的软件承诺支持,IOS两个平台,结果,”魅族的手机手机使用时就会出现问题”等等,其中大部分是不合格、不合格的,都是可以“容忍”的小问题。

事实上,世界上没有100%的安全,不明物体从天而降并杀死无辜路人的故事数不胜数。因此,无论什么产品,制造商的责任都是将风险降低到最低限度,而不是消除风险,因为“消除风险”并不科学。

全世界都是如此,软件开发也不例外。因此,我也请所有甲方停止要求程序员编写“完美无缺”的软件。如果任何程序员承诺他的软件“完美无缺”,那么他要么是傲慢的人,要么是骗子。

“我们承认存在问题,但为什么要收费来解决这些问题呢?”

首先郑重声明,我公司完成的所有工程均免费保修三个月,前三个月维修不收取任何费用!

那么为什么三个月后还要收钱呢?

在这里,我抛出一个事实:即使你不更改软件的代码,也不能保证你的软件不会突然崩溃。原因是今天的软件是与其他软件或服务配合来完成功能的。软件之间并不是完全独立的。如果其他软件或服务发生变化,可能会导致您的软件“崩溃”。以最流行的微信小程序为例。如果实现一个自动获取用户昵称和头像的功能,那么可以预期这个功能将在未来几个月内失效,因为微信很快就会取消自动获取用户昵称和头像。头像功能变更,要求用户显式点击按钮获取昵称和头像。你的程序可能没有改变任何东西,但是将来,新用户的昵称和头像会突然变得不可用。

外包软件开发_外包开发什么意思_小程序是自己开发还是外包好

换句话说,如果你的软件坏了,那不是我们开发人员的错,而是该软件所依赖的其他软件的变化造成的。因为这是一个意外的变更,开发团队需要投入意外的人力成本,所以这部分变更需要收费。

另一种可能性是应用程序的规模增加,导致软件崩溃。同样的即时通讯功能,为100人做一个产品和为100万人做一个产品,实施成本可能相差几十倍。软件交付后,如果您的软件使用量出现爆炸性增长,很可能您的软件很快就需要修改和重做。你可能会问,产品设计一开始就不能支持100万人吗?当然可以,但是100万级别的架构你就要支付相应的项目费用,可能会非常昂贵。对于绝大多数各方来说,构建一个规模适当、成本低廉的体系才是最明智的选择。当项目的用户数量增加时,可以进行修改。毕竟这个时候你会更加坚信投入这么多钱是值得的。

在这种情况下,原来的外包合同中没有考虑适应新规模的成本,因此这些适应变化将需要额外的费用。

此外,由于有 3 个月的保质期,因此 3 个月后出现纯粹的遗留错误实际上非常罕见。这时候如果甲方要求技术团队修改bug,90%的情况都是因为甲方使用不当或者误操作导致的系统故障。此类故障本身并不是技术团队的错,而是需要花费大量时间来查找、重现和调试错误(有时需要一天时间才能找到问题,而只需一分钟即可纠正错误)。如果免费的话,甲方会问没完没了的问题,技术团队也承担不起。这就是为什么有一个要求,3个月后,bug修复需要单独收费。

摘要加广告

说了这么多,只是想让甲方了解一下程序员的处境。没有人是圣人,没有人会犯错误。程序员和bug之间的战争是无休止的。请给程序员多一点耐心,让世界变得温暖一点~

好了,话虽如此,我们还是推广一下我们自己的外包服务吧。我们的外包服务后台完全是希望能够帮助甲方实现他们的业务需求,为他们提供周到、专业的外包服务。

点击下方小程序,进入首页点击“估价下单”提交您的研发需求,我们的工作人员会联系您~

分享