处理问题的一般性方法

浑浑噩噩地工作了几年,从事的内容从最开始的项目交付,然后技术支持,再然后测试与集成,再到目前的时而开发接触浅显代码,时而维护处理客户问题,时而做些测试,难以具体定性从事着什么。

技术上,很难说哪点擅长,有些感触的是某些处理问题的方法和思路却可以通用。简单总结如下,仅作个人记录与改进。

获取基本的相关信息(后续处理问题的基础) 

在怎样的背景环境下?发生了怎样的问题?

如果无法清楚地辨别或陈述问题的基本信息,那么,此时要面对的将不仅仅是问题本身!

问题的归属(自身的问题?还是外部问题?)

问题现象的描述

级别及影响(影响层面、时间和资源投入等)--- 对应级别和影响的问题,应由对应级别和影响的人去解决

当前问题处理参与人员

确认相关版本(Component)

发生时间

发生的阶段:新安装阶段?维护阶段?。。。

发生前的操作

设备信息:单方使用?多方共用?。。。

当前日志收集

远程登录信息

。。。。。。

问题定性(本质) --- 清楚的辨别和描述问题

产品问题? --- 需求问题? --- 情绪发泄? ......

原生问题? --- 由其他问题引发的衍生问题?

个别? ---  共性?

偶发? ---  频繁?

......

详细信息获取

报错信息来源与内容

相关配置与流程状态

Open debug level log

网络状态

服务状态

文件相关属性:目录地址、权限、所属关系、格式、链接。。。

。。。。。。

辅助信息获取

https://confluence.int.net.nokia.com/display/Unify60/Get+more+effective+information+from+intranet

常用问题分析方法

precondition status ------>  configuration & data flow  ------>   log&infos flow ------> troubleshooting flow

每一个环节的前提条件是否成立?

每一个环节的配置和数据流是否正确?

依据每一个环节的日志或信息,能够获取怎样的判断依据?

  场景区分:针对不同阶段和场景,侧重点不同。

例如:如果问题发生在全新安装或全新集成阶段,那么问题发生的原因更可能与误操作,误配置,流程错误相关。

如果问题发生在产品使用阶段,那么要首先确认的问题发生之前的状态、操作信息、业务使用背景、备份配置等。

最小环境:从最基本因素开始排查,逐步添加其他因素进行判断 --- 正向分析 --- 业务起点至终点

分解与排除:根据业务原理流程,逐步查找有效信息,排除原因,缩小范围 --- 反向分析 --- 业务终点至起点

对比:跟正确的做比较,不同的便是可疑的。纵向---同一事物不同时间段的对比, 横向---同一时间段不同事物的对比

替换:分阶段,逐步调换对象做验证 --- 换内容、换配置、换文件、换网元、换lab。。。

重现(在真实环境观察或模拟问题的发生): get more infos 、 open trace 。。。

模拟(虚拟环境):simulator --- 一般验证基本流程和配置

相似案例 : 从相似案例中获取有效信息,推动当前问题的解决

试错:条件允许的情况下,有依据地多次尝试,可能会发现新的可用信息或处理方式

。。。。。。

无奈的”三板斧“

重置(配置)

重启(服务--》模块--》系统--》组或集群--》硬件平台)

重装(!)

过程中

             尽可能保留相关信息(log 、 screenshot、等等),作为后续处理和问题回溯的资料,例如:在相关登陆程序中启用log保留功能

             重大影响及关键操作一定要获得双授权(customer and local)


             及时更新状态并知会相关人

更新信息应包括:当前状态、Next action、可能的预计结果、时间点、你的困境和需求、。。。

问题处理的过程中,很有可能又引入新的问题出现,此时面对多个问题,应持续关注根本问题,合理排序,逐个解决,如无必要,不建议同时处理多个问题。

低头解决问题, 抬头看问题状态(自己的角色与作用、进展、性质、customer和high level的反馈。。。)

。。。。。。

全局关注(whole picture)

你只是问题处理流程上的一个环节或者节点,从整个流程上去审视本身的作用,做好该做的事,会更好促进问题解决!

问题闭环

Root Cause analysis (RCA) and Escape Defect Analysis (EDA)

探求问题的本质和处理流程的改善。

Customer认知

无论是外部还是内部customer,一般情况下,可预先假定他们是“高贵、繁忙,迫切而又茫然”的。

高贵 -----有了情绪,分分钟就能“Management Escalation”到high level发起challenge

保持问题状态适当update频率

繁忙 -----总是没时间的,极有可能没法及时回复

连环E-mail,连环Call;引入high level,持续请求。

从第三封邮件开始,明确申明这是第几次请求恢复,并设置默认选项和时间点,  作为以后的凭证。

迫切 ----- 无论问题怎样, customer总是希望能够得到最快的解决。

慎重承诺deadline。

茫然 -----通常不具备相关知识背景,或者了解很少很基础的一部分。

最初接触到的问题信息和表述,很可能不准确、不完整,未必反映问题的本质。必要时,信息需要亲自重新获取、确认和对比。

需要他们做某些操作时,提供详细的步骤!

如果“恰好”遇到一个“耐心好,时间充裕,懂产品”或者"肯钻研"的customer......However,everything has two sides......你懂的

换位思考

假定此时你是customer,来理解customer的利害点和需求,

受限于信息不对等,理解会存在偏差,不存在“感同身受”,只是尽可能地“设身处地”去了解。

别把自己的感知强加给他人!你的理解可能只是你的主观感受,不是客观的实际状态。

情绪控制与沟通协作

人与人的区别比人与动物的区别都要大,个体的巨大差别(知识背景、技能状态、秉性喜好、利害冲突等等),必然会出现难以理解的情况。

对于过程中出现难以理解的事物,只能说。。。尽量避免情绪上的对立。

普通人一旦有了对立情绪这个内因,必然会导致态度上的消极,事物上的拖延,于己于人于事无益!

一个可行的方法:

根据当时的实际情况,来确定意愿层级 : 尽心、尽力、尽责。

尽心 ----- 愿意花费工作之外的时间和精力。

尽力 ----- 工作时间之内,力所能及地做些额外的事情。

尽责 ----- 基于事情本身完成职责之内的事情。

如果心中有“猛虎”,就把这理解为只是一份工作中的一个task而已,如果task的安排具有合理性(时间、技能、目标、资源。。。),那就遵从这个合理性的安排,就事论事,简单直接的基于事情本身来开展,基于本职尽责。这是共同协作完成事情的基本要求,同时这也是沟通与协作基础。

万一,那么,如果。。。控制不住内心的“猛虎”,怎么办?------ 凉拌!!! (换task、换人、换岗位、换公司、创业吧)

另外一种应对方式(如果你认为这是对的):

1-疑似我的问题,请拿出是我的问题的证据,否则就不是我的问题。。。拒不处理!

2-第三方的问题。。。不做必要分析,问题透传

3-是我的问题,但存在技术性问题向”非技术性问题“转换的可能性,于是。。。”其实这不是问题,这是需求,这是体验差的抱怨。。。。。。“

4-过多引入其他人员。。。人多事情杂,问题仍在处理中

5-多次频繁索取信息。。。问题本身影响微小,逐渐不再被关注

6-问题个别罕见。。。没有足够的信息支持分析,请在问题重现时,及时提供更多信息。。。

7-久拖不决。。。不了了之

时间: 2024-08-05 19:36:54

处理问题的一般性方法的相关文章

性能优化指南:性能优化的一般性原则与方法

作为一个程序员,性能优化是常有的事情,不管是桌面应用还是web应用,不管是前端还是后端,不管是单点应用还是分布式系统.本文从以下几个方面来思考这个问题:性能优化的一般性原则,性能优化的层次,性能优化的通用方法.本文不限于任何语言.框架,不过可能会用Python语言来举例. 不过囿于个人经验,可能更多的是从Linux服务端的角度来思考这些问题. 本文地址:http://www.cnblogs.com/xybaby/p/9055734.html 一般性原则 依据数据而不是凭空猜测 这是性能优化的第一

设备驱动调试和移植的一般方法

做linux底层软件工作也有两年了,算上研究生时期对底层软件的研究,加起来也快四年了.慢慢地发现有必要总结一些一般性的方法了.因为一般性的方法有宏观上的指导意义,以后调试和移植驱动时,经常性地回味这些一般性的方法可以防止自己犯同样的错误,进而少走弯路,以最高的效率完成工作. 当谈到底层软件,我们一般都会想到bootloader.BSP.device driver.linux kernel等等.这篇文章将会着重介绍linux device driver调试的一般性方法.另外,关于设备驱动移植的方法

浅析人脸检测之Haar分类器方法:Haar特征、积分图、 AdaBoost 、级联

浅析人脸检测之Haar分类器方法 一.Haar分类器的前世今生 人脸检测属于计算机视觉的范畴,早期人们的主要研究方向是人脸识别,即根据人脸来识别人物的身份,后来在复杂背景下的人脸检测需求越来越大,人脸检测也逐渐作为一个单独的研究方向发展起来. 目前的人脸检测方法主要有两大类:基于知识和基于统计. Ø  基于知识的方法:主要利用先验知识将人脸看作器官特征的组合,根据眼睛.眉毛.嘴巴.鼻子等器官的特征以及相互之间的几何位置关系来检测人脸. Ø  基于统计的方法:将人脸看作一个整体的模式——二维像素矩

浅谈人脸检测之Haar分类器方法

我们要探讨的Haar分类器实际上是Boosting算法(提升算法)的一个应用,Haar分类器用到了Boosting算法中的AdaBoost算法,只是把AdaBoost算法训练出的强分类器进行了级联,并且在底层的特征提取中采用了高效率的矩形特征和积分图方法,这里涉及到的几个名词接下来会具体讨论. 在2001年,Viola和Jones两位大牛发表了经典的<Rapid Object Detection using a Boosted Cascade of Simple Features>和<R

CV:object detection(Haar)

一. Haar分类器的前世今生 人脸检测属于计算机视觉的范畴,早期人们的主要研究方向是人脸识别,即根据人脸来识别人物的身份,后来在复杂背景下的人脸检测需求越来越大,人脸检测也逐渐作为一个单独的研究方向发展起来. 目前的人脸检测方法主要有两大类:基于知识和基于统计. "基于知识的方法主要利用先验知识将人脸看作器官特征的组合,根据眼睛.眉毛.嘴巴.鼻子等器官的特征以及相互之间的几何位置关系来检测人脸.基于统计的方法则将人脸看作一个整体的模式--二维像素矩阵,从统计的观点通过大量人脸图像样本构造人脸模

重构与模式:改善代码三部曲中的第三部

一.改善代码的三部曲 <设计模式>-> <重构>-> <重构与模式>.也就是设计->重构->重构出新设计. <设计模式>主要详细说明20几种模式,为我们带来了常见设计问题的经典解决方案,从而改变了整个面向对象开发的面貌.为设计而著. <重构>改善既有代码的设计,总结了我们会用到的各种重构手法,为我们带来了一种改进代码的高效过程,从而彻底改变了面向对象设计的方式.侧重去除坏代码的味道. <重构与模式>是设计模式相

svm中的数学和算法

支持向量机(Support Vector Machine)是Cortes和Vapnik于1995年首先提出的,它在解决小样本.非线性及高维模式识别中表现出很多特有的优势,并可以推广应用到函数拟合等其它机器学习问题中. 一.数学部分 1.1二维空间 支持向量机的典型应用是分类,用于解决这种问题:有一些事物是能够被分类的,可是详细怎么分类的我们又说不清楚,比方说下图中三角的就是C1类,圆圈的就是C2类,这都是已知的,好,又来了一个方块,这个方块是属于C1呢还是属于C2呢,说不清楚.SVM算法就是试着

[OpenCV] Face Detection

即将进入涉及大量数学知识的阶段,先读这篇博文放松一下. 长文干货!走近人脸检测:从 VJ 到深度学习(上) 2016-04-12 邬书哲 人脸检测的开始和基本流程 具体来说,人脸检测的任务就是判断给定的图像上是否存在人脸, 如果人脸存在,就给出全部人脸所处的位置及其大小.由于人脸检测在实际应用中的重要意义,早在上世纪70年代就已经有人开始研究,然而受当时落后的技术条件和有限的需求所影响,直到上世纪90年代,人脸检测技术才开始加快向前发展的脚步,在新世纪到来前的最后十年间,涌现出了大量关于人脸检测

【转载】递归正则表达式的一般构造方法

标题:递归正则表达式的一般构造方法 作者:xhd2015 原帖:http://tieba.baidu.com/p/4117059926 ======================= 先说说问题吧,很老套,如何匹配嵌套的<> 如果你能匹配 class regex<> 恭喜你,最初级的会了,往下看 那么,换成这个 class regex<class<>> 如果你只匹配到红色字符,不幸,你错了 一般表达式对于嵌套的符号对是没有效果的 并不是所有的正则工具都支持递