极客时间已完结课程限时免费阅读

26 | 你解决问题的能力有多强?

26 | 你解决问题的能力有多强?-极客时间

26 | 你解决问题的能力有多强?

讲述:白海飞

时长12:58大小11.84M

专栏读到现在,你有没有想过,公司招人的目的是什么?你可能说,是为了完成工作任务。是的,进一步说,是为了解决问题。这里的问题,可能是技术问题,也可能是业务或者管理问题。工作,就是一个问题跟着一个问题,面试官考查你的经验、技能、潜力、动机,归根到底,就是考查你解决问题的能力。
作为“贯通篇”的最后一篇文章,我们综合看一下:解决问题的能力究竟体现在什么地方,怎么培养解决问题的能力,以及怎样在面试过程中展现你解决问题的能力。

什么是解决问题的能力

说到解决问题的能力,我们先要定义什么叫“问题”。我在这里把它划分为三层含义:错误、提高、未知的机会。
错误。需要找到问题原因,进行修复。
提高。当前状况不错,但还有上升空间,可以进一步提高。比如,提高吞吐量。
未知的机会。新的尝试,和拓展到一个新的领域。比如,研究一个新的课题。
这三层内容其实本质是一样的:改变现有的工作。我将它们笼统地称为“问题”。说到这里,你是否对“工作就是一个问题跟着一个问题”有了新的理解呢?
说回到解决问题的能力,它体现在找到问题找到解决方案复盘问题三个步骤上。这需要很强的逻辑思维和抽象能力,你可以遵循一套通用的方法或者模式来解决问题,从而让自己更加专注在问题的解决方案上,以此为基础探索不同的选项,然后基于目标和项目经验对适用选项进行决策。

1. 找到问题

这是指发现、分析和定位问题,包括看到问题的“症状”,通过分析调查,找到问题发生的原因。
对于错误,作为工程师,有时会在“症状”未暴露时,发现代码、配置或者数据错误,直接更正,避免损失。这种“由内而外”发现问题的方式,是损失最小、最省力省时的做法。
但是很遗憾,很多“雷”都是在事后通过“症状”发作,甚至形成“综合症”后才被发现的。这种“由表及里”的逆推调查方式,难度大,压力也大,损失也大。也正因为如此,你需要更强的逻辑思维能力,以及拨开现象看本质的能力。所以,我们经常嘉奖那些力挽狂澜的救火队员。可是,那些一开始就把质量做好,无声无响把问题消灭于无形的人,不是更应该奖励和给予认可么?
对于提高和机会,无论是技术的、业务的,还是管理的,首先要能够识别出来。我们很容易识别错误,但是很难在平庸中想清楚怎么提高。
面试中,我常问应聘者:“这个项目有什么待提高的?” 答案大体可归为以下几类:
“项目质量很好,没什么特别要提高的。” 这类回答可能是怕暴露问题惹火烧身,也可能是真的没看到什么提高项。
“因为工期紧,有些技术债,需要提高下。” 这类回答提出了一些不痛不痒的普遍问题,不能展示应聘者的独到见解。
“这个社区产品用户活跃度半年不见增长,调研后发现是讨论区缺少级联回复,这个功能的实现难点在于 XX。” 这样的回答,很明显一针见血地指出了问题所在, 可以展现应聘者的深度思考。
在发现提高和机会之后,你需要将之界定成结构清晰的问题,包括目标、边界和验收标准,从杂乱的工作中抽离出低耦合、高内聚的工作块,以便于团队协作,各个击破。而问题定义的效果,依赖于你对工作细节的认知深度,还有你的项目经验和洞察力。
分析问题方面,菜鸟和高手的区别就在于:前者在分析问题时流于问题表象,无法直接触及问题本质;而高手正好相反,他能够直达问题本质,并且能够快速分析和定位问题。因此,你重点需要培养:从问题表象(比如日志、系统错误、后台数据等提取出相关信息),直接映射到技术或者业务上导致产生这种表象的问题本质。然而,这并非易事,这要求你在技术和业务领域日积月累,拥有良好的技术感知力,并且注意业务上不断精进,才有机会做到从问题表象中抓取指向问题症结的重要信息。
在分析问题的基础上,项目中产生的信息都值得你深入挖掘,这个信息意味着什么,为什么是那么回事,对你会有什么样的直接或者间接影响,任何时候你都要有批判性思维,对自己也不丝毫吝啬。因为,快速定位问题的能力取决于你所提取的信息以及这些信息间的关联,有些重要信息可能就是你脑中闪现过的,有些重要信息或许就隐藏在某位同事不经意的聊天中,有些重要信息甚至需要从以前解决的问题中推导出来 …… 在此我不一一列举。

2. 妥善解决问题

当你找到了问题的原因之后,可以遵循下面的步骤来解决问题:
探索多种解决方案;
比较和决策;
实施解决方案。
首先,来看如何探索方案。解决方案并不唯一,它可能是:
技术层面,比如修正编码或数据问题、自动化控制、引入监控工具;
流程层面,比如加强代码评审流程、改变上线审批控制、增强沟通、把线下改为线上操作等;
组织层面,比如加强人员培训、调整角色分工等。
因此,探索解决方案是一个思维发散的过程,要发掘出多个方案,你不能局限于惯性思维,而应该相信总有不同或更好的解决方法,从而积极探索。这里也恰恰体现了你的学习能力和创新能力。
其次,再来说决策。既然有不同的解决方案,如何确定哪个最优?什么叫“最优”呢?这需要你充分了解问题的上下文(包括技术上或者业务上的约束、组织的策略导向,甚者可能是团队政治因素等),问题的解决一定脱离不了这些上下文的制约,你需要综合考虑这些约束从而优中选优,而不是寄希望于某方面最佳。如果只放眼在最完美的技术上,解决效果不一定好。
说到技术方案的决策,顺便提一下,我会考查应聘者对比多个技术方案的方法、维度,以及衡量标准。如何评估方案的合理性、易用性,资源消耗,次生问题,用户和团队的接受度等,这些方面都是决策中需要考虑的。
最后,来谈谈实施方案。根据问题的影响面和复杂度,解决方案可以分步实施:
快速修复,先止血;
长期修复,为使类似的问题将来不再发生,从根本上解决问题。
当同时处理多个问题时,一定要分清轻重缓急,明确主要问题和紧急问题,着重于解决那些有最大价值的方面;也一定要保持开放的头脑,勇于采用新的手段,以及探索不同的解决方案;同时,需要把问题从大化小,从复杂化简单,运用分治的思想,这有利于团队成员一起更高效地协作。
面试的很多问题都和解决方案相关。对于技术问题的解决,这是考查应聘者是否“扎根技术、着眼业务、懂得管理”的好时机:
通过回答中对技术选型的介绍,可以看出你的技术能力;
通过结果验证,可以看出你对业务问题的关心程度;
通过对组织流程层面的理解,可以看出你的管理意识。
这部分是面试中项目展示的重头戏,你一定要慎重对待。

3. 验证和复盘

也就是说,你需要验证结果是否达到了预期。通过持续监控修复后产品的运行状态和结果,以及用户反馈,来看问题解决的满意程度。
问题的解决或许迫于时间或者投入产出比的考量,采用的并不是最优的解决方案,没关系,上面说到问题上下文的限制,因为它的存在,我们在决策时设定了对解决结果的容忍度。只要在容忍范围内,就是可以接受的。
对结果的验证和满意度的衡量,可以触发我们对解决这个问题的整体复盘。我们除了要知道这个问题是怎么解决的,还要知道为什么那么解决,以及如果用其他解决方案会怎样,这往往需要你进一步深究下问题涉及的技术或者业务,积累的经验对于你解决新问题会非常有益。
而且,在解决问题时的忙碌中,我们容易“当局者迷”;在事后,你终于可以冷静下来,跳出局限,从客观的角度,审视自己是否思路正确,有没有考虑不周全的地方,更容易做到“旁观者清”,这就是复盘的好处。

修正错误的效果

评价一个人解决问题能力的强弱,除了看以上解决问题的过程,还要看最终效果。对于修正错误类的问题,我把效果分成以下四个层次。
只消除了当前影响。这种修复大多只是解决了表面问题,去除了症状,所谓“头疼医头,脚痛医脚”。比如,某种不可重现的订单金额出错,只去数据库里把金额改成正确的数值,而不去分析订单计算逻辑。这种“打补丁”的方法,只是在止血的情况下使用,而事后,你一定要找到问题根源彻底修正,否则问题还会反复发生。
‌彻底根除了错误。这是我们希望的长效解决方案。这要求分析足够深入,触及内部逻辑,进行有意义的修复,避免以后此类错误再次发生。
‌变问题为机会。这是指当我们解决问题时,发现机会,扭转局势,取得收获。举个例子,我们这个专栏的文章,有一次发现被某个公众号不合规地抄袭。极客时间的小分队在与公众号主人交涉后,不但顺利使对方撤掉不合规的文章,还和对方谈成了合作伙伴。
‌分享方法,教导他人。在对问题复盘的过程中,把经验教训的总结文档化,分享给相关的人和团队,供将来出现问题时参考,教导他人不要再犯同样的问题。这样一来,你的经验和能力使整个团队都受益,也是你影响力和领导力的展现。
以上是逐层上升的关系,希望你在解决问题过程中,尽量利用自己的技能,力所能及地做到最好。这样,面试时你才会更自信地展示自己解决问题的能力。

解决问题能力的培养

要系统地讲解决问题能力的培养,这样短的篇幅是很难讲清的,在此我只希望能够为你提供一些方法和思路,并用一个尽量简单的表格形式呈现,以供你参考对照。其中,你可以从左边对问题的把握入手,着重于要解决的问题的方方面面,不断培养分析问题和解决问题的能力。篇幅所限,这里我就不再展开细说了。

总结

总结一下今天的内容。我们讨论了解决问题能力的体现:在识别问题和定义问题时,既要识别错误,也要能明确怎么提高;在解决问题时,要尽量探索多个方案,周全地考虑问题上下文的约束,分阶段地实施方案;最后,别忘了验证结果和复盘。
我还谈到了解决问题的四个层次:只消除当前影响、彻底根除错误、变问题为机会,以及分享和教导他人。期望你在面试时有针对性地运用好前面讨论的方法和技巧,力争更立体地把你解决问题的能力呈现给面试官。
解决问题的过程中,要把“贯通篇”的几篇文章所讲的学习能力、精益能力、协作能力、领导力综合运用到实际工作中,追求预期结果。想一想你在其中,是解决问题的主导者、中流砥柱,还是救火者?每一个角色都有它存在的价值,但我希望你至少是个辅助者,不要总做旁观者,千万不要成为阻碍者。

思考时间

结合你的工作经历,请思考下面的问题:
你主导解决过哪个问题,第一次失败了?后面经过怎么样的纠正,才成功的?
欢迎你在留言区留言,一起讨论。如果今天的文章让你有所收获,也欢迎你把它分享给你的朋友。
分享给需要的人,Ta购买本课程,你将得18
生成海报并分享

赞 13

提建议

上一篇
25 | 不是领导,怎么体现你的领导力?
下一篇
27 | 盘点面试官和应聘者的认知差异
unpreview
 写留言

精选留言(5)

  • zhangtnty
    2019-04-21
    白老师好,目前的工作都是问题迭问题。也曾适着用类似老师讲的方法去处理问题。但也会有一些新问题出来 :发现问题的深度超出了预期,领导又认为问题没有这样的深度, 两下一讨论会出现不好结果:(1) 领导认识到了问题深度后自己很不 爽( 2) 领导不去想问题深度而总认为你在逃避问题。以至在解决问题中费力很多却把 自己带到不利地步,甚至领导引导团队脱离该问题,貌似自始都没发生过问题一样。面对这种情况该怎么处理会更合理些,谢谢老师。
    展开

    作者回复: 好问题! 问题的解决方案是多层次的。甚至逃避问题,也是解决问题的一种方案,那就是选择接受问题的恶果。解决问题的深度不同,效果不同,但是投入也不同。投入多少,得来的效果多好,还是问题的owner说了算。 如果问题的owner是老板,但是让你研究解决,那他可能一开始对解决方案的投入有个预期,对可承受结果也有个预期。他没有研究问题,这两个预期有可能完全不合适。这就需要你跟他全面详实的沟通。你沟通得好,老板会认可你;你沟通得不好,老板会说你走偏了。那怎么沟通呢? 你给他讲几个层面的解决方案,包括投入和可能得到的解决效果。比如:不解决的话,有什么好处和坏处;解决到某个症状表面层次的话,需要做什么,会得到什么短期好处和长期坏处;解决到技术层面的话。。。。解决到组织层面的话。。。。然后让他选,而不是你来定。 同理,你看最近西安奔驰事件,解决到什么层次就打住了?不多说了。

    16
  • enjoylearning
    2019-04-15
    解决问题的能力直接关系到项目的成败以及客户的满意度,当然还与问题的范围有关,围绕项目产品的一切都可以划分问题域,有技术工具,有开发流程,有管理职责授权。我曾经做过一个项目,复盘时把每个迭代的回顾会议内容总结要点发给团队成员,也抄送给上面领导一份,其实私下里自己还做了一份ppt文档想在公司分享一下该项目的得与失,如果再有类似的项目我们应该怎么做会更好。

    作者回复: 不错!事后复盘是个难得的基于事实细节总结提高的机会。

    4
  • 上善若水
    2019-04-15
    解决问题的工作如此复杂,原来是因为它是一种综合能力。平时解决问题时做的不好的地方:1.很少提出多个解决方案进行权衡对比。2.解决问题的层次也大多停留在第二层,未转化成机会也几乎没分享和听到别人的分享3.解决问题的工作模式总觉得没有定型,没有理出个道道来,有点随心所欲。以上三点是挖掘的自身工作中的问题,但也是以后改进修补的机会~ 可以继续去努力了。
    4
  • 时间的滋味
    2020-01-10
    问题就是事态中的数据结构变化在认知建模以外。数据结构变化趋势出现了新规律。
    1
  • 海南望望
    2022-02-09
    1、对于问题的定位,我第一步会有一个预判,也就是一种直觉,比如某天部分图片还在服务器但通过域名突然访问不了。大家都觉得莫名其妙。基于经验,第一想到的是域名被封了,事实确实如此; 直觉找不出的问题,就把所有可能列举,然后采用排查法,一个个排查,直到找到问题,这方法实用,但有时会花时间,需要别人配合的,就需要协调能力去沟通了。 2、对于解决问题,上下文环境,时间,资金,人力等均需考虑,特别是公司(领导)老板元素,都要考虑,比如我们有个考勤模块,涉及到软件硬件,还不同产商硬件的适配及其对接,现在来了一个定制需求,经过评估有小范围适配(一个星期投入,效率低)和大范围重构(一个月半左右的投入,但后续接入需求效率高)两种方案,小企业往往选第一种。 3、对于未知的知识,特别是想做出来业绩得到认可的来说,是特别重要的。可惜还没有到这一步。 感谢白老师的分享。之前没有系统思考过解决问题的能力,受教了。
    展开
    1