今天,对我来说是个特殊的日子。因为我的失误导致一次软件事故发生了。当天的心情非常沮丧到了极点,忽然有了一种世界末日的感觉...
事情是这样的,本人在公司原有系统基础上开发了一个新的软件系统,正在部门试运行中。同事提了一个新的软件需求,进行一个批量操作可以提高工作效率,我感觉是一个不错的想法,就实现了,并直接放到了系统上,设计逻辑是,先根据某个选项查询到需要的数据集,然后执行这个操作。在使用中,同事没有进行按照选项筛选,而是查询了所有的数据,进行操作,导致一个重要的系统编号错乱。由此,导致系统网页停止了半天时间,整整搞了一上午,才把系统数据重新恢复正常。影响可以说是非常的不好。
我想,软件事故或大或小,每一位程序员也许都曾遇到过。不知道,别人是如何应对,我现在把我的想法分享,希望能得到前辈们的指点。
随着沮丧心情的逐渐平复,慢慢恢复了理智。我想到了很多。俗话说:吃一堑长一智。
事故原因有以下几方面(如果做到以下每个方面,应该都可以避免问题的发生);
(1)程序设计上,存在设计缺陷。
设计上,可以批量操作前应该确保数据集的正确性;操作的设计应该保证数据的安全,可核查,可回溯;
批量操作时给出了提示信息,并能产生足够的警示作用;
设计上不完备、不严谨,除了自身能力外;还体现了一个程序员自身的休养和态度问题,程序员应该在每一个细节设计的过程中不断积累经验,提高自己的休养水平,细节决定成败,要关注细节!!!!!
(2)开发过程中的流程有问题,没有进行详细的测试验证
表面上是工作的方法和习惯的问题,深层次还是工作态度问题,程序员将什么样的内容交给使用者,也就是将一个什么样的自己交给别人。
(3)沟通上有欠缺,没有将新功能操作方法准确、详细的全部通知操做人员。
(4)工作方法问题,领导总结是工作没有遵守相应的制度流程,工作方法有问题。
以上是主观方面的问题。
客观上保证一个软件的质量,需要建立一套正确的标准过程和制度,而不能凭借个人的水平高低来保证。
本次事故能快速的从失败中走出来,保持一个积极心态投入新的工作,也是我在此次中获得的宝贵考验。
以上见解非常浅显,请大神们能指点迷津。