5个问题教你如何更好解决问题

原文:https://humanwhocodes.com/blog/2020/02/how-i-think-about-solving-problems/ 

作者:Nicholas C. Zakas

翻译:奶爸码农

这里有5个问题我会使用来帮助我更好的判断问题、给问题排列优先级和解决问题。

在我作为软件开发人员的职业生涯的早期,我认为我的主要贡献是编写代码。毕竟,软件工程师需要交付软件,而编写代码是其中的关键组成部分。我花了几年的时间才意识到交付软件还有可以有很多其他的贡献(如果没有,为什么还要有经理,设计师,产品经理,销售人员等?)。我慢慢发现自己不再是编码员,而更多地是解决问题的人。有时可以通过编写代码来解决问题,而有时解决方案根本不涉及代码。

一旦意识到解决问题的价值,我便着手寻找解决问题的最有效方法。担任技术主管职位后,我立即面临了许多日常问题中。我必须想出一种果断行动,有效排定优先顺序并解决尽可能多问题的方法。


最终,我确定了一个问题清单,每一个问题出现的时候我都会问自己。我发现依次问这些问题有助于我做出最佳决定:

这真的是一个问题吗?
这个问题需要解决吗?
现在是否需要解决问题?
这个问题需要我解决吗?
我可以解决一个更简单的替代问题吗?


每个问题的目的都是揭示有关该问题的信息,使您可以继续进行下一步;或者,如果幸运的话,请完全避免该问题。每个问题都有细微差别,因此更详细地描述每个问题会有所帮助。

这真的是一个问题吗?

解决任何问题的第一步是确定它是否确实是一个问题,并且需要一个清晰的定义。就本文而言,我将问题定义为任何问题,如果不加以解决,将导致客观上令人不快的结果。

这意味着下雨天晚上要把窗户打开是一个问题,因为里面会被弄湿,并且可能会损坏地板,家具或其他物品。解决问题的方法可以防止产生不良后果,因此在上床睡觉之前关闭窗户可以防止财产被毁。

担任领导职务时,通常会收到听起来像是问题而只是意见的投诉。例如,我曾与许多软件工程师进行过交谈,他们在开始新工作或加入新团队后立即感到该团队做错了很多事情:他们使用的框架错了;代码样式错误;文件的组织方式是错误的。他们将如何解决所有这些问题?这是一项艰巨的任务。

我问这些软件工程师这个问题:这是问题还是工作方式不同?在许多情况下,“错误”仅表示“不是我曾经习惯或喜欢的。”如果您可以确定报告的问题实际上不是问题,那么您就不再需要在解决方案上花费资源。团队成员对完成工作的方式不满意并不是客观上不希望的结果。团队之间的分歧本质上没有问题。如果您能够确定问题不是问题,则可以继续执行其他任务。

这个问题需要解决吗?

确定存在问题后,下一步就是确定是否需要解决问题。如果不良后果可以忍受并且持续增长或缓慢增长,则无需解决问题。 

例如,如果某个Web应用程序的某个部分仅由管理员(通常是五个人或更少的人)使用,并且加载速度比该应用程序的其余部分慢,那么您可以确定这是可以的。 该问题的范围很窄,在极少数情况下会影响到少数人。虽然可以很好地解决问题,但它不是必需的,而且缺点很小,无法解决就不会在将来导致更大的问题。 

提出此问题的另一种方式是:“如果问题从未解决,会发生什么?” 如果答案是“不多”,则可以不必解决该问题。

现在是否需要解决问题?

如果您有一个需要解决的问题,那么下一个问题是确定是现在需要解决还是可以等到以后解决。有些问题显然是紧迫的,需要立即解决:站点奔溃,每当有人使用它时应用程序崩溃,等等。

这些问题需要解决,因为不良后果是立竿见影的,持续不断的,并且有可能增长:网站停机时间越长,公司损失的钱就越大;应用程序崩溃的次数越多,客户使用竞争对手的可能性就越大。

同样重要的是确定是否可以推迟解决问题。令人惊讶的是,许多非紧迫的问题冒出了领导层。这些是需要最终但不是立即解决的问题。符合此描述的软件中最常见的问题是技术债务。

技术债务是您应用程序(或相关基础结构)中性能不佳的任何部分。它不会在今天或明天引起重大问题,但最终会造成问题。以我的经验,直到紧急情况(为时已晚)之前,很少人会去解决技术债务问题。

但是,技术债务并不是解决所有其他问题的方法。它属于中间区域,今天不应完成,但绝对需要完成。如果现在不必解决问题,通常最好推迟一下。

推迟它,是指计划在将来解决它,而不是避免对此做任何事情。如果现在不是解决问题的合适时机,请决定何时:一周,一个月,六个月?将其放在日历或任务管理系统上,这样就不会丢失它。提出此问题的另一种方式是“问题是否紧急?”


这个问题需要我解决吗?

这个问题最适用于担任领导职务的任何人,但也适用于有太多任务的任何人。这个问题是需要您只具备特殊技能的东西吗,还是其他人可以完成任务?

这是我根据一位导师给我的建议改编而成的一个问题。我在抱怨自己似乎只是在收集任务而无法跟上步伐。他说我应该问自己,“这是尼古拉斯问题吗?” 有些事情只有我知道该怎么做,而那是我应该关注的事情。其他任何事情都应该委托给其他人。他给我的另一个重要提示:仅仅因为您可以比别人更快地做某件事,并不意味着您应该自己做。对于大多数非紧急任务,一天或两天后完成并不重要。

因此,如果问题可以由其他人解决,并且您是领导者或已经有太多工作,则请委派给他人。

我可以解决一个更简单的替代问题吗?

确定需要解决的紧急问题后,该过程的最后一步是确定是否有更容易解决的问题。关键是,较简单的问题必须在节省时间(或其他资源)的同时,为您提供与原始问题相同或相似的结果。

当我在开发新的My Yahoo!时页面上,我们的一位产品经理宣称Beta客户要求我们在页面上添加可调整大小的列。这是相当复杂的事情,因为那是2006年,Web浏览器的功能还不如今天。这项任务并非并非不可能,但是在一个已经充满JavaScript的页面上,添加更多内容来管理复杂的鼠标移动并需要将这些信息保存回服务器是一件艰苦的,容易出错的工作。

我从客户反馈会议中获取原始数据,以查看是否可以确定可调整大小的列将解决什么问题。结果,没有客户要求可调整大小的列(产品经理从投诉中推断出此请求)。相反,他们抱怨无法获得新的My Yahoo!。页面看起来像他们的旧My Yahoo!页。

我们创建了与旧版式不匹配的全新版式,但事实证明,人们真的很喜欢旧版式。这使我们能够专注于一个更简单的问题:重新创建旧版式。

因此,我们花了一些时间在新页面中重新创建旧版式,并重新运行了客户会话。人们很高兴新页面现在看起来与旧页面非常相似。通过解决更简单的问题,我们节省了很多开发时间,客户也同样高兴。

解决问题的时候并不是总能够寻找到一个简单的替代方案,但是当遇到一个非常复杂的问题,不妨往这个方向多想想。


写在最后

这五个问题已成为我解决问题的方法的基础,不仅在我的工作中,而且在我的整个生活中。每当遇到问题时都要经历这些问题,这使我成为了更有效的问题解决者,并且总体上对结果感到满意。无法为我的服务员计算15%的小费?我会改为计算20%(如果对服务不满意,则计算为10%)。我的高中校友办公室不断向我发送通知,通知我我不是经过验证的校友?那不是我需要解决的问题。如果我想在美国旅行,我需要获得新的驾驶执照吗?这是我今年要解决的问题,但现在不是。

解决问题的方法有很多种,但我不确定我的方法是否适用于所有人。我所知道的是,有解决问题的方法总比没有解决方法要好。生活中充满着大大小小的问题,您每天都会面对。制定明确,可重复的策略是使问题解决更容忍的最简单方法。

- End - 

推荐阅读

你要如何衡量你的人生

2020年,从提升认知开始

如何写好年终总结

这里有一份工程师“变软”的修炼攻略

精读《原则》,教你如何通过原则过上想要的人生(上篇)

『奶爸码农』从事互联网研发工作10+年,经历IBM、SAP、陆金所、携程等国内外IT公司,目前在美团负责餐饮相关大前端技术团队,定期分享关于大前端技术、投资理财、个人成长的思考与总结。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值