非编程书籍,但是一本值得看的书--你的灯亮着吗-发现问题的真正所在
这是一本关于如何定义问题和解决问题的方法论。书中有很多蛮有趣的小场景。看书之前,我常常认为自己很清楚我遇到的问题是什么,觉得最难的部分在于如何解决问题。然而,看书过程中,忽然发现好像不是那么一回事。
对于问题,其实我们是非常容易感受到的。
问题是人们理想状态和实际状态之间的差异
于是我们可以来拿一个程序猿经常被调侃的问题来举例:
你每次回家,你妈就在门口冷眼看着你问:你女朋友呢?
这个时候你觉得问题是什么?是我没有女朋友。
理想的状态是:老妈在门口笑脸相迎;
现实的状态是,我孤苦一个人站门口,迎面而来是老妈一副恨铁不成钢之儿子你看看你读那么多书到底有什么用。
你敏锐地发现自己对于这一切的不适应,可是你真的发现问题的所在了么?
你觉得不舒服,是因为老妈不开心。如果老妈开心了,你还会在那个时刻觉得自己没有找到女朋友是问题么(忽略生理需求)。
如果你觉得问题是没有找到女朋友,那么你就会去想如何找到女朋友,相亲,埋伏,找男朋友(咳咳咳,不好意思走偏了),由于解决问题难度系数太大,你可能长期找不到女票,你妈可能长期不开心。
如果你觉得问题是你妈不开心,你可能提前想好如何哄你妈开心的戏码,你妈立即开心,不舒服解决。
然而问题真的解决了么,如果按照后面的说法,你可能发现你妈不开心的时候越来越多,哄你妈开心的戏法要越来越高明。于是我们发现:
不要仓促下结论,但也不要忽视第一印象
你发现,好像问题有很多种定义的办法:
你永远无法确定已经找到的问题定义是正确的,但是永远不要停下来寻找正确定义的脚步
同时:
每个解决方案都会有额外的后果
书里面这种有趣又让人深思的理论有很多。对于我来说,可能感触更深的是:
大多数情况,问题的根源在你自己身上
尤其在团队协作和排bug的时候==
还有,不要习惯于问题的存在:
借助外国人、盲人、儿童来检验你给出的定义,或者让自己设身处地地站在外国人、盲人、儿童的角度上来检验
整本书的大致路线:
如何定义问题 -> 是谁的问题 ->问题的根源在于谁 ->叫你解决问题的人是否真的想要解决这个问题
人们普遍相信解决问题是一件大事。遇到问题第一反应,“蒙眼跳”。偶尔是可行的,但是很多时候其实是不行的。
这个用在编程界是很适用的,因为你立马能想出来的解决办法,很多时候其实是另一场灾难。表面解决问题不如真的明白问题是什么。事实上了解问题,明白问题的每一层定义,然后再想清楚问题到底应该如何解决,解决的后果会有什么。
用以下法则检验是否正确明白问题:
看看你对问题的理解,如果想不出至少三个可能出错的地方,你就没有真正理解这个问题
网友评论