为了警醒自己好好开发程序,我去网上冲浪了Bug一番,看到各位同僚们饱经Bug之苦纠缠,也看到“Bug 引发的 18 次重大事故”(http://blog.jobbole.com/104583/),我心稍宽是因为Bug常有所以偶尔犯点大错误在所难免,我心更紧是因为一个稍微欠考虑到的点都有可能引发大的危机,这不得不令我有更大的自觉性,自觉提醒自己,时刻保持头脑清醒,时刻注意思考。
因为,一个由于自己粗心而导致的严重的bug,可能会招致你身后的领导,同事甚至公司受到牵连。严重程度虽然因为行业不同有所区分,但是其本质上对你个人来说,都是一种身心伤害。
1、起因:工作流程系统bug(更新数据的时候,将所有执行人、执行步骤Tn一样的步骤的任务结束时间etime都更新掉了)。
修复bug后,由于要做超时审批报表,所以需要修复一些历史被更新重复了的数据。
可能的后果:
1、吃力不讨好
你默默做出了很大努力,考虑到了各种后果,你自行决断用最优的方式解决客户的困扰,可气的是你的最优方式竟然产生了一些问题。所有这一切,你的客户可能并不知道。客户只相信自己看到的东西,看到的东西有问题,那他对你的印象就是一团糟,尽管你在背后可能付出了极大的努力。
2、容易出大问题
你以为的与客户想的总会是有差别的。客户描述的是
3、成本太高
可参考的原始解决方案研讨
一、让客户做决策者,将自己要担的责任和风险降到最低
1、在客户提出要修复Bug导致的数据错误或者是其他因为客户自身操作带来的问题数据时,我们首先要做的是尽可能地考虑可能存在的风险,然后再考虑如何合理地规避风险,最后将设计出的方案和每种方案可能带来的后果跟客户强调说明,让客户去权衡,让客户做这个决策者。
2、我们服务客户,我们很会做事,但是很多时候很多事情,我们确实无能为力,在风险过大的时候,我们就是要学会试着规避风险,即使是直接承认我们做不到也比出更多问题数据的结果要好。
·Bug修复可能的方案:
(1)、将数据交给客户,做出报表或者excel表格,让客户决定要增删改哪些数据,不要动哪些数据。
(2)、将要修改的表数据进行备份,并尽可能多地作详细说明。切忌对系统流转的数据直接进行大批量的增删改。把握很大时也要慎重,多思量,多与同行探讨,多擦出问题的火花,即使确认不会有什么意外风险,那也要做一些必要的备份或者数据还原的准备。
二、适时让客户看到成效,直接或间接地用话语或行为去展示自己所付出的努力
1、客户是人,是人就有他的思想,有他的眼耳口鼻,可以观六路,听八方,有他的道德评判,会建立他心中的一杆秤,有他的情感因素,能够产生同理心和与人的互动。所以,以客户的情感为依托,与客户产生持续的互动,并利用客户的视听,将自己投入的成本和附加努力进行价值暗示,能够让客户深切感受到他等价交换过来的服务确实存在着更大的价值,能让他的利益更大化,这样才存在着可持续合作的可能。
这是我进入公司进行培训课程学习的时候,讲师们讲述过的道理。而我最近在进行客户提出的外用工流程模块相关需求开发时,才真正懂得这件事的重要性和其真正能带来的高效率。幸而,现在知道并不晚。
·让客户最大程度满意的可能方案:
(1)、将需求拆分,对需求进行分层分阶段开发实施。每一阶段的成果完成后都要展示给客户看,待客户确认方向正确时,才往下开发。当然,这对我们整体把控业务的能力和数据结构设计能力是有比较大的考验的,因为我们不仅要考虑到上下阶段的数据流转,也要考虑到各个阶段之间的数据交互形式,所以必要时我们可能需要对数据表结构进行多次的整改,或者对一些程序关卡进行虚拟桥接。
(2)、跟客户阐述自己的思考结果,让客户选择。对于客户提出的需求或者问题,我们并不是立马进行开发或者解决,而是需要先对结果进行预测分析,分析出的可能的恶劣结果需要让客户了解,要让客户感觉到:哇!幸好有这么贴心的供应商,帮我想了这么多,要不就惨掉了。
总结犯此次错误时的自身问题:
1、思维限制
质疑:
我承认我直接将这种不断流转的系统里的表中要修改的数据做个简单的备份是不那么明智的作为,但是,作为一个系统表,如果它这个表的数据都不正确,那它作为这个系统的系统表的意义又在哪呢?