[随笔]记一次工作失误
成长源于失败。这句俗语听来有些残酷,可确实事实,也是现实。
人们不是常说:“人生有着无数的坎,它可能出现在我们生命的无时无刻。迈过去了,就是进步,是成长,也是收获;而若是迈不过去,那么,它就会变成一道枷锁,禁锢着我们,限制着我们所做的任何事,甚至使我们一蹶不振”。
当然,这篇文章的主题是【谈一谈工作失误】,上面这段话有点跑题,我之所以言是做个铺垫。
我也是听闻,但受益匪浅。同时,我也在学着不断成长、不断进步。
经历
2020年6月16日,是我入职第一份java开发实习生岗位的第3个月零1天,在这3个月里,我负责一个财务报表系统(这里不便透露项目名称)的协助开发工作。
在我入职时,这个项目已经交付了一期,开始二期开发。
我具体的工作内容:
- 创建和修改表单实体;
- 协助开发财务报表报销流程的二期工作,包括:开发报销人报销项的选择弹出框、添加第二审批人、协助修改报销计算方法等等;
- 开发财务审批部门相关功能,如:创建部门、删除部门、重构排序结构;
- 协助修复bug;
- 搭建第三环境:正式-测试环境,即用测试环境的代码操作正式环境的数据。具体的,就是在项目部署环境(linux)重新搭建一个Tomcat服务器,复制一份测试环境的代码和正式环境的数据,部署一个新服务器。因为,由于测试环境与正式环境数据源的不同,有些bug正式环境存在,而测试环境不存在,自然无法测试bug;
- 等等...等等。
工作失误
我的工作失误就发生在搭建第三环境时。
搭建第三环境需要复制正式环境的数据,正式环境可是客户正在使用的,里面的数据也都是客户的实时数据,直白的说都是钱。可以说,操作正式环境数据属于高危操作,我一个实习生自然无权随意操作。
但搭建第三环境毕竟是要复制正式环境数据的,所以数据管理员(也负责带我)需要给我授一次权。可能说,只是复制数据,又不是删减,不会有什么风险。当然了,正式环境数据泄露也有风险,不过,前辈还是给我授了权。
问题就出现在拷贝数据时。
正常操作,是将正式环境的数据,拷贝到第三数据源中。为了降低风险,前辈要求我先拿测试环境数据源做试验,多次没问题之后再去操作正式环境数据源。我照做了,前2次没有问题,第3次出问题了。本来是将测试环境的数据拷贝到第三数据源中,可由于前2次顺利,再加上我没留神,我竟将测试环境的数据拷贝到了正式环境数据源中。这下完犊子了。
大家肯定疑惑:你那位前辈仅给了你复制正式环境数据的权限,你怎有权向正式环境数据源导入数据?
还真是“风云际会”。
基于我平日工作表现,以及前2次试验都没问题,使得前辈在给我授权时就有所放松(没那么严谨),再加上给我授权时很忙。因此,不仅给了我读正式环境数据源的权限,多执行了一条命令给了我写正式环境数据源的权限。
这下如何是好?
真的说是万幸!!前辈给我导入数据的命令时,留了心。因为如果直接执行导入命令,是完全替换的,也包括主键。前辈留了心,他给我的命令中多了一个参数,这个参数用于设置为“不覆盖”。
也就是说,芮然我将测试环境的数据导入到正式环境数据源中,但并不会影响正式环境的数据,也就对正式环境没有影响。因为这个项目的所有数据表都采用雪花算法生成主键,因此不会出现主键占用问题。(几乎所有企业级项目的主键生成策略都采用类似这种方法)
没有影响,表示几乎没有造成损失。但毕竟那些数据都是测试环境数据,对正式环境而言是没有意义的,反倒是冗余,影响系统使用。
因此,当晚前辈和另外几个同事就对正式环境数据源进行数据恢复。(这也是前辈留了一手,在我操作正式环境数据前做了数据备份)
至此,危机化解。
一、在面对失误而带来的指责和沮丧时,你是如何做的?
我的失误,不仅让几位前辈加班加点,影响系统使用,还差点对客户和公司造成重大损失,我感到十分歉疚和惭愧。
我的幸运,遇到了一个好领导和一群好同事。在我失误后,领导第一时间不是批评和指责我,而是立即安排几位前辈做数据检查,判断有没有对正式环境数据造成影响。然后开会,商讨解决方案。
商讨的结果。由于并没有影响到正式环境数据,并且白天客户都在使用正式环境,不便进行数据修复。因此,领导安排几位前辈先做好数据核对,晚上加个班再做数据恢复。
第二天上午,正常上班,和往常一样。领导没因此训斥我,同事们也没有挤兑我。前辈和几个要好的同事还安慰我:“没事,工作有失误正常。不过还好没有造成损失,以后工作多细心、多学习就好了”。
经过一个上午的监听,确保正式环境的正常运行没有问题后,在下班时,领导教诲了我一番,让我充分认识到了自身的不足。因此,我当即向领导和全部门同事鞠躬道歉,表示前辈的失误因我而起。并且表示,如果后续对客户和公司造成损失,我愿尽力补偿,再离职谢罪。
二、发生了失误之后,你是如何找到问题的?如何避免只看到表面现象而忽略了根本问题?
从表面上看,这次失误是我工作不够细心导致,实则是我技术不够、功底不够扎实、技术面不够全面。
我觉得,要想避免舍本逐末。最重要的是,先要学会冷静,不要遇到问题就慌乱、胡乱解决;其次,事后反思问题缘由,从个人出发,先检查自身是否有问题,而不是找他人的问题,甚至推卸责任。
三、在工作中我们应该怎么做才能降低失误率,分享一下你的工作技巧和方法吧!
我的职位是java开发工程师,负责项目的开发工作。
我的工作技巧和方法,也没有什么高大上的,至少目前没有,阐述5点。
- 多掌握一些第三方包,以便在需要时,能够引入相关功能,开发出“优雅”的代码块。这不仅能够提升程序性能,还能降低bug的可能性;
- 了解并尽量掌握业务流程,不一定是要掌握全流程,至少我们负责开发的模块或功能的分流程要尽量掌握。这样才不至于“舍远求近”,致使开发出的功能不完整,甚至与需求大相径庭;
- 多涉猎一些技术面,多掌握一些技术知识,不求能够做到一个功能的多技术开发,至少先看得懂项目所用框架、所用技术等等,能够做到框架复刻更好;
- 闲暇时间多看看前辈开发的功能,了解前辈们编写代码的技巧、方法和所用技术等等。这不仅能够帮助我们扩展技术面,还能更快了解和掌握项目业务和流程;
- 尽量跟前辈们“搞好关系”,特别是有真本事的前辈。来公司学习真本事与让有真本事的前辈教我们真本事,这两者是完全不同的。并不是说我们要去逢迎巴结,而是说要懂得感恩。尽管公司安排前辈带我们,但那是公司的安排,我们自己要学会做人。要有感恩之心。还有平日要注意一些行为习惯,比如:勤奋,比前辈早来公司,别前辈到了我们还没到;学会自学,别什么问题都问前辈,前辈也是很忙的,并且如果我们问的简单问题太多,前辈会质疑我们的工作能力和工作态度;注意谦卑,当我们向前辈提问时,要“见机行事”,别前辈正在忙,特别是很忙时,我们也随便去问;还要注意提问时的态度,特别是当我们的想法与前辈有分歧时,就一点,听前辈的。前辈怎么说都比我们入职早,对公司和项目的了解自然胜过我们,别出现分歧时跟前辈对着来那就不行了。
- 就暂且分享这些,望对大家有帮助!!
四、怎样才能在错误中不断吸取教训,让自己得到更多成长呢?
如何做?
在上文有所提及,这里就不多言了,我只提一点建议:多做笔记。
本文完结。