分类:
2009-03-02 15:47:02
最近看到一个汽车对冰淇淋过敏的小故事(),转述如下:
某汽车公司收到投诉信,用户抱怨说他每晚都从家里开车去商店买冰淇淋。如果买的是香草冰淇淋,则回家时汽车就无法发动;如果买其它口味的冰淇淋,则汽车可以正常发动。天天如此。该用户怀疑这汽车是否对香草冰淇淋过敏。
汽车公司的头头觉得这太过诡异,不过还是派了一个工程师去该用户家调查原因。第一天,工程师和用户一起去买冰淇淋。在店里,工程师要求买香草口味,结果出来后,汽车果然不能发动。此后几天,工程师每次都和用户一起去买,每次都由工程师临时决定买什么口味。果不其然,凡是买了香草口味,汽车就无法发动;反之则可以。(由于是工程师临时决定购买的类型,可以排除用户搞恶作剧的可能)
这个工程师是一个理性的人,也不信神,当然不会相信汽车过敏这一说。但是他觉得有更深层的原因在起作用。此后,他每天晚上和该用户一起去买冰淇淋,每次他都详细记录往返的时间、途中踩油门和刹车次数、使用的汽油型号等各种信息。许多天后,他终于发现规律:凡是买香草口味的,在商店里面花的时间少(因为这个口味受欢迎,摆放的货架靠门口)。
于是问题就转化为:停车的时间短导致汽车不能正常发动。然后,工程师就轻易找到了原因(当停车时间太短,发动机依然很热而无法驱散气阻)。
这个故事给我们几个启发:
1、不要拒绝接受貌似很诡异、很离奇、很不可能的现象。我手下的很多程序员都曾经抱怨测试提交的某个bug太怪异,对这些bug不予承认。你想一想自己是否也有类似情况?
2、要善于从一些细节发现规律,从而查出问题的根源。如果你是这个工程师,你能否通过细致的观察而发现其中的规律?