最近学习了万维钢老师解读的新书《上游:在问题发生之前解决问题》,收获不少。联想和类比自己从事的行业,谈谈一些浅显的体会,也能借鉴书中的思想。
首先,上游思维有三个条件。
眼光
在别人发不现问题时,你能看出问题。
这里的重点是问题不易被察觉,因而目前不是紧急的事情。如果问题大家都能看出来,可能很快就被解决,也就失去上游的意义。如果问题亟需解决,不然就会遭受巨大损失,那么也没有上游的意义。
你发现软件系统里有个潜在的bug。这个bug有这样两个特点,一是发现它需要对代码逻辑和架构非常熟悉,而且要有丰富的调试和排查经验。二是这个bug在大多数用户场景不会出现,不会严重影响用户体验。
那么这个bug的就是上游的问题,但是作为资深工程师的你发现了它,并不一定回去解决,这就涉及上游思维的其他条件。
责任
有时候问题不是没人发现,而是没人愿意负责,这就会出现所谓“不注意盲点”(inattentional blindness)。在制度上安排特定的人负责是一种办法,但毕竟外在压力不如内在动力。如果有人主动愿意负责,消除盲点,就会及时发现并解决更多问题。
上面那个bug是属于系统A模块B的,而你是负责模块C的开发与维护,那么很多工程师判断是不是该主动解决这个问题时,可能会采取责任>能力的原则:我能修掉,但这不是我该做的。
这确实是一个比较现实的问