本篇文章給大家分享的是有關(guān)怎么用5個(gè)Why分析法做故障復(fù)盤,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
創(chuàng)新互聯(lián)公司主要從事網(wǎng)站制作、成都網(wǎng)站制作、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)長順,十載網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):13518219792
最近有位研發(fā)同學(xué)參與故障復(fù)盤,將他的分析發(fā)給我double check,發(fā)現(xiàn)部分的故障原因沒有太深入的挖掘,停留在了表面現(xiàn)象,導(dǎo)致后續(xù)制定的行動(dòng)項(xiàng)可能治標(biāo)不治本。這種現(xiàn)象其實(shí)還挺普遍,我們可以嘗試使用一種簡單有效的根因分析(RCA:root cause analysis)方法來更好做故障復(fù)盤:5個(gè)Why分析法(5 whys)。
方法論
5 Whys是一種反復(fù)詢問的技巧,用于探索特定問題背后的因果關(guān)系。該技術(shù)的主要目標(biāo)是通過重復(fù)問題“為什么?”來確定缺陷或問題的根本原因每個(gè)答案構(gòu)成下一個(gè)問題的基礎(chǔ)。名稱中的“5”源于對解決問題所需迭代次數(shù)的軼事觀察。
5個(gè)why方法故障復(fù)盤主要的思想
拉長邏輯鏈條,找到深層原因
拋棄主觀假設(shè)和邏輯陷阱
分清現(xiàn)象與原因
步步分析,不直接跳躍下結(jié)論
原因永遠(yuǎn)不在個(gè)人身上,不要將諸如“人為疏忽”,“沒有注意”作為根因
5個(gè)why方法主要步驟
分解問題,找到現(xiàn)象[2]
問5個(gè)why(注意這里的5是概數(shù),可以小于5,也可以大于5),直到無法再問why,找到根因。
從最后的答案反過來問,看邏輯鏈?zhǔn)欠穹聪虺闪?,進(jìn)行驗(yàn)證。
實(shí)踐
舉幾個(gè)例子來說明如何使用。這邊取1個(gè)經(jīng)典案例及1個(gè)我參與過的歷史線上故障復(fù)盤案例舉例(當(dāng)時(shí)復(fù)盤沒有使用5個(gè)why分析,所以我們可以看看區(qū)別)。
經(jīng)典案例
現(xiàn)象:一個(gè)博物館的東邊外墻面上有非常嚴(yán)重的腐蝕,需要經(jīng)常涂刷新的油漆。
淺顯的分析及措施:經(jīng)過調(diào)查以后,你發(fā)現(xiàn),原來博物館的清潔人員在洗墻的時(shí)候,用了一種高腐蝕度的清潔劑,這才導(dǎo)致了墻面的腐蝕。所以后續(xù)的措施是,在噴刷修補(bǔ)了這一次的墻面以后,要求清潔人員下次清洗墻面時(shí)換用低腐蝕度的清潔劑。
5個(gè)Why分析及措施:
第一個(gè)why:為什么這個(gè)清潔工要用高腐蝕度的清潔劑?
答:因?yàn)闁|邊的墻上經(jīng)常有很多鳥糞粘著,用一般的清潔劑洗不干凈
第二個(gè)why:為什么東邊的墻上有很多鳥糞?
答:因?yàn)閴ι嫌泻芏嘀┲耄@些鳥以蜘蛛為食,所以經(jīng)常在墻附近活動(dòng)
第三個(gè)why:為什么墻上有很多蜘蛛?
答:因?yàn)閴ι嫌泻芏嘈∠x子,而蜘蛛以這些小蟲子為食
第四個(gè)why:為什么墻上有很多小蟲子?
答:因?yàn)闁|面墻上有幾扇窗子,晚上,博物館里的光會(huì)從這里透出去,而這些趨光性很強(qiáng)的蟲子就被光吸引過來了。
所以解決方案是:在窗戶那里安裝遮光性很強(qiáng)的厚窗簾,每天太陽落山之前拉上窗簾。
好了,我們似乎拿到了根因及解決方案,我們反過來再推導(dǎo)一遍:
厚窗簾拉上后趨光性很強(qiáng)的蟲子就不會(huì)被吸引【符合邏輯】
趨光性很強(qiáng)的蟲子不再聚集,蜘蛛不會(huì)再來聚集【符合邏輯】
蜘蛛不再來聚集,吃蜘蛛的鳥不再經(jīng)常來活動(dòng)【符合邏輯】
吃蜘蛛的鳥不再經(jīng)常來活動(dòng),東面的墻不再有很多鳥糞【符合邏輯】
東面的墻不再有很多鳥糞,清潔工不需要用高腐蝕度的清潔劑【符合邏輯】
不適用高腐蝕度的清潔劑,墻面不再總是被腐蝕【符合邏輯】
至此,我們確定拿到了根因及正確的解決方案。
故障復(fù)盤案例
現(xiàn)象:商戶使用銀行打款流水號查詢賬單發(fā)現(xiàn)交易記錄缺失
淺顯的分析及措施:(之前沒有使用5個(gè)why分析得到的結(jié)論)由于get(0)只拿到了部分?jǐn)?shù)據(jù),所以研發(fā)重新做代碼的全量get(0)分析。
5個(gè)Why分析及措施:
第一個(gè)why:為什么使用流水號查詢交易記錄有缺失?
答:因?yàn)榭蛻羝谕氖悄苡眠@個(gè)流水號查詢到多筆(天)賬單信息
第二個(gè)why:為什么同一個(gè)流水號有多筆(天)賬單信息?
答:因?yàn)殂y行周六、周日休息,將合并周五、周六、周日賬單一并打款,生成同一個(gè)流水號,關(guān)聯(lián)到多筆(天)賬單信息
第三個(gè)why:為什么一個(gè)流水號關(guān)聯(lián)了多筆(天)賬單信息,系統(tǒng)沒有返回?
答:因?yàn)榇a內(nèi)使用了get(0)方法,只取了第一項(xiàng)數(shù)據(jù)
第四個(gè)why:為什么代碼內(nèi)使用了get(0)方法?
答:因?yàn)間et(0)方法在編碼中沒有被禁止/提醒,研發(fā)在開發(fā)中沒有注意到風(fēng)險(xiǎn)
所以解決方案是:在研發(fā)架構(gòu)層面宣導(dǎo)get(0)風(fēng)險(xiǎn),使用明確的業(yè)務(wù)語義來定義代碼處理替換get(0),在代碼掃描工具中提醒get(0)屬于高風(fēng)險(xiǎn)編碼。
反過來推導(dǎo)驗(yàn)證:
研發(fā)架構(gòu)層面了解get(0)風(fēng)險(xiǎn),在代碼提交時(shí)被提醒為高風(fēng)險(xiǎn)編碼,研發(fā)會(huì)謹(jǐn)慎使用get(0)或者避免使用get(0)【符合邏輯】
所有研發(fā)謹(jǐn)慎使用get(0),如果選擇繼續(xù)使用get(0),那么在提交查詢賬單的編碼中,工具提示風(fēng)險(xiǎn)【符合邏輯】
工具提示get(0)風(fēng)險(xiǎn)后,在設(shè)計(jì)編碼時(shí),研發(fā)關(guān)注業(yè)務(wù)場景是否存在一對多的場景【符合邏輯】
研發(fā)關(guān)注業(yè)務(wù)場景存在一對多的場景,一定程度上更有可能分析和感知到銀行合并打款場景【符合邏輯】
反向推導(dǎo)邏輯鏈正確,解決方案成立,且該解決方案沒有歸結(jié)于人的處理,而歸結(jié)于架構(gòu)治理及工具。而之前的解決方案僅僅關(guān)注了get(0)在當(dāng)時(shí)代碼里面的風(fēng)險(xiǎn),并不持續(xù)跟蹤,所以僅僅治標(biāo)未治本。
以上就是怎么用5個(gè)Why分析法做故障復(fù)盤,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過這篇文章學(xué)到更多知識(shí)。更多詳情敬請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。