标题写太大了,索性就随便说说,说到哪儿算哪儿。
错误有很多种类,有的可以预见,有的不可预见,有的错误可能无关痛痒,有的可能痛彻心扉。
人生毕竟不是一帆风顺的,所做的每一个决策,都可能是错误的。
那么如何提高决策能力,让错误的损失最小呢?其实没有什么绝招,就是多思考,多学习。
使用系统思维剖析问题本质,做最大概率的决策,做最谨慎的操作,做最稳妥的后路,做最强硬的止损。
小到走路开车,大到人生抉择,实际上都离不开这些。
假如,前方有个行人正在横穿马路,到底是避让,还是减速,避让的话会不会碰到旁边车道的车辆?如果减速,那么有没有被大货车追尾?如果提速,能不能在行人前驶过?
每一个选项的风险是多少,如果出现意外情况,有没有“兜底”的方式?如果细化起来,会发现做一个决策好难。实际上,日常习惯做这种小决策,大脑已经形成了一个稳定的回路,老司机看一眼就知道改怎么操作了。事后你问,你为什么这样做,他可能也讲不出个所以然。但是往往能证明他的那个决策可能是正确的。
不过,经验只是经验,就像归纳法那样,总会有黑天鹅出现。经验也有失灵的时候。alphaGo打败了拥有几万个棋局储备的人类最顶尖棋手,它就是一个黑天鹅,一个例外。
到此,问题又变化为,如果碰到极为特殊的例外,怎么处理。
还以上边那个“开车避让行人”的例子说明:简单来说是先选择最稳妥的方式,如果这个决策失败了,那么就用上了商业险。如果商业险失效,那么大多数人都肯定是欲哭无泪的。
只给自己一个后路还不够,某些时候还要多条后路(比如家底厚、保额高、或者通过行车记录仪证明自己是次责等等),同时一定要坚定止损——签订一次性赔偿。
否则,钝刀子割肉可是痛苦不堪的。
可是每个人的认知能力有限,根本不可能做到考虑周全,那么有没有什么方式避免使用者犯错?
也许详细的文档可以让有学力的人自力更生,但是大多数人服从天性本能的懒惰,这就要开发者挖空心思,避免使用者在各个维度犯错才行。
很多老前辈都说,一定不要相信用户输入的任何内容。这就像软件测试的段子:
一个人走进酒吧,跟酒保说:
“给我0杯酒”
“给我-1杯酒”
“给我3.14杯酒”
“给我4,294,967,296杯酒”
“去你妈的”
“给哈哈哈杯酒”
“给我俧瘊冟譪蕊悕瑸杯酒”
这是一个痛苦、复杂、用户感知度低,但是关键时刻可以救命的东东。
比如,前几天有个天猫店,因为手滑错误设置单价,26元可以买4500斤水果。
(原文《B站网红带上万粉丝“薅羊毛”后道歉 赔偿卖家开店费》https://www.cnbeta.com/articles/tech/908159.htm)
实际上,这就是淘宝的不作为。淘宝应该是拥有中国最完整的货品种类+价格走势数据的。如果商家在设定价格的时候,后端自动分析一下,设定的果品单价是否超乎合理价格区间,并显著提醒卖家,我想这类惨剧就不会发生了吧。
开发者多动动脑,多用心,这样才能让世界更美好呢,你说是不是?