老蒋谈超声(八):医疗设备软件故障漫谈
僧哥曰:“-对不起,我是警察。-谁知道?”这是本文作者最喜欢的电影“无间道”中结尾,陈永仁与刘建明在天台上的对白。信息量很大,而且细思极恐!当然大家也可以猜到27149是有含义的。wiscode27149作为华声医疗的一个资深码农每天的生活很简单:吃饭、睡觉、找bug。说起找bug这项拿手绝活,据了解wiscode27149的人说过一则逸事:他刚毕业时,进了一家业内知名公司的时候赶一个项目,作为刚毕业的部门小兵,经验不足,写的程序老是调不通,而且bug无数,经常被部门老大克得一愣一愣的。有一次因为长期加班,大病一场,高烧不退好几天,部门领导和同事纷纷探望,此事被部门领导多次表扬。而比较神奇的是,从那以后,大家发现wiscode27149仿佛打通了编程的“任督二脉”,写代码那是溜得一塌糊涂,经常都是一遍过,最关键还练就了一双捉bug的火眼金睛,被部门中的码农们尊为“bug之王”。
另外:老蒋谈超声已经第八期了,大家发现,老蒋不是一个人,而是一群人,我们真诚的希望华声医疗的“老蒋谈超声”创作团队为大家带来不一样的视角,做出业界最专业、最长的医用超声漫谈系列连载!也热切的希望大家给予指正与建议,让这个栏目越来越好。
正文:
说起软件Bug,你的第一反应可能会是这个画面,因为几乎每个人都见过:
而如果是这个画面,有的人可能会有些眼熟,那你可能与老蒋就不会有代沟了:
如果这个画面你也非常熟悉,那估计黑客对你来说不会太陌生,因为这是Linux内核恐慌画面:
禁不住感叹,从Windows 95到Windows10,期间间隔的整整20年,软件行业飞速发展。
20年前,学电脑的第一堂课,可能学的就是电脑维护,其中最重要的就是安装操作系统。Win98时代,重装系统是用电脑的必备的技能,也是闯荡电脑城,行走校园所必备的利器。如果有人在BBS上提问“那个年代,傲娇的计算机系男生给知性的中文系女生重装Windows,是一种怎样的体验”。我会很想用这一条让李开复老师点起蜡烛的微博来对理科男表达敬意。
20年后的今天,如果你的女神使用iPhone手机,规规矩矩地使用,不随便越狱的话。我想你可能永远也没有帮她刷机的机会。当然,如果你的女神会自己越狱,那我估计你也没有什么机会帮她刷机了。
20年前的微软是信息化时代最伟大的软件企业代表,而20年后的苹果是移动互联网时代最伟大的软件企业代表。其间的进步也许最能说明软件行业的进步。 如今的软件bug,远不如40年代导致计算机短路的飞蛾那么形象,也不像早期Windows蓝屏那么频繁,但早已悄然围绕住了我们的生活。我们身边的大多数软件bug,没有Windows的WARNING和Linux的Kernel Panic那么恐怖,但或多或少会对我们有些困扰。
有一些领域中的bug还很有趣,就像这样。
在娱乐到底的年代,有些bug可能还让你探寻、上瘾、着迷:
但在一些其他领域,软件bug貌似就没这么好玩了。如果你在开车时,转向系统、刹车系统随便哪个坏掉,你的选择要么是抛锚在路上,要么就是返厂维修了。但对软件来说,没有哪个公司会给你提供私人订制的返厂维修服务,只有隔一段时间提供一个新版本升级。
小米号称每周发布升级,又增加功能又修复bug,但谁也不知道升级后bug是变多还是变少,至少笔者家的小米盒子是被升级弄瘫痪了几个月,大概雷布斯是把全国用户都当作了他们的粉丝,还是脑残粉。(吐槽有据,链接为证)。
初入游戏行业的小白的工作日志是这样的,bug容易改也容易出。
所以在过去20年对于如何解决bug,老司机给用户的建议常常是:
其实曾经的医疗设备领域的软件曾经也是如此。如果你不信,可以查查在医疗领域中著名的“软件危机”事件:美国在80年代Therac 25的放射治疗仪,曾经出现过多次放射剂量超标的现象。对此,其厂商给出的建议也是熟悉的,“请大侠重新来过”。在1985~1987年间Therac25在病人身上发生了6次放射剂量大规模超标并导致死亡的严重事故,该公司一共售出了11台Therac 25,因为卷入司法诉讼最终导致全部召回。
如果我们做出来的医疗设备也像这样,一群萌蠢的Bug在上面活蹦乱跳,你还敢去医院吗?所以在医疗设备行业,我们常常称之为“故障”,有点严肃,但也认真对待。
不过自从美国政府开始介入了医疗软件开发过程的监管后,医疗软件行业的开发逐渐规范起来,就如同工业化生产一样,确保开发出来的软件应当符合的预期,并经过足够的“测试”与“验证”。这样虽然对工程师天马行空的创意有了限制但也能避免了用户不小心变成了工程师的小白鼠。
所以如果开发医疗设备的程序员想在软件里埋点彩蛋(小惊喜),先不用问医生主任喜不喜欢,公司里的产品经理和研发QA都不会答应,为什么?因为他们背后有FDA、CFDA、CE撑腰。如果你还在问我FDA是谁,我只会告诉你,有它在,猪就是猪,站在哪个风口上也别想飞起来。:-)
作为一名在医疗行业从业十余年的软件开发者,真心地说,医疗设备行业并不是一个时髦的选择。从两年前CSDN发布的调查报告来看,中国的程序员已经有一半都在互联网行业了,医疗行业曾经共事过的同事也还有陆续离职进入互联网行业。不知道别人怎么看,但每次看到我们的市场宣传彩页,都忍不住想站在一个普通读者角度吐槽,“三年打造倚天剑,两年打造屠龙刀”,相比起3个月就发布1.0版本的微信,开发几天就刷遍朋友圈的App,一点都不时髦。朋友圈里遍布着无处不在的创业奇迹,不知道会不会有人问,你们几十个老家伙创业3年就给我看这个?
但是聊了这些医疗软件故障,你可能会明白。医疗属于一个特殊的行业,为了医生的专业,病患的安全还是必须遵守一些基本的规则,而且规则与市场也并不矛盾,因为只有信得过的产品质量才可能被市场接受。行百里者半于九十,在华声经历了过完整的产品开发,上市发布收到反馈之后,对此体会尤其深刻。外界喧嚣复杂,能够沉下来专心研发的工程师更为宝贵。借此文,对身边坚守在医疗设备领域,十年磨一剑的软件工程师表达由衷的敬意”
相关阅读