原創(chuàng)|行業(yè)資訊|編輯:鄭恭琳|2021-03-19 11:41:12.250|閱讀 246 次
概述:軟件故障的代價(jià)可以通過不同的方式來感知,例如,以上市公司的股票價(jià)格或在小公司中的股票價(jià)格,這可能意味著倒閉。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
軟件故障的代價(jià)可以通過不同的方式來感知,例如,以上市公司的股票價(jià)格或在小公司中的股票價(jià)格,這可能意味著倒閉。
我經(jīng)常看到組織發(fā)布軟件的方式與玩俄羅斯輪盤賭一樣安全——與客戶的安全性,私人數(shù)據(jù)和安全性進(jìn)行賭博,更不用說可靠性了。他們還賭博自己公司的聲譽(yù)和底線。IEEE幾年前發(fā)布了一份出色的公共故障清單,您可以確定軟件仍在故障。
我喜歡這種有點(diǎn)嚇人的類比的原因是,我經(jīng)常聽到人們說諸如“該軟件已經(jīng)存在很長時(shí)間并且沒有出現(xiàn)問題”或“我們一直以這種方式做到這一點(diǎn),有效”——但當(dāng)然,這是一種不好的計(jì)劃方式。一家專注于軟件工程的公司正在尋找構(gòu)建和發(fā)布故障更少的更好軟件的方法。這意味著即使到目前為止做錯(cuò)了事,也要通過做正確的事來積極地計(jì)劃成功。
哈佛大學(xué)的研究人員發(fā)現(xiàn),大約一半的IT軟件項(xiàng)目都會(huì)失敗。有很多其他人的數(shù)字,而且這個(gè)估算值并不是最高的,所以讓我們花點(diǎn)時(shí)間。這就像在房間里打3枚子彈的俄羅斯輪盤賭一樣——失敗的機(jī)會(huì)為50-50。我不喜歡這些困難,當(dāng)然也不會(huì)賭博我公司的未來。
讓我們看一下人們每天發(fā)布軟件時(shí)所進(jìn)行的一些令人討厭的賭博。如果您愿意,請(qǐng)使用輪盤賭槍的子彈:
我們都知道我們會(huì)發(fā)布帶有錯(cuò)誤的軟件,因?yàn)橥昝罒o瑕的軟件將永遠(yuǎn)被制造出來。但這絕不是解決我們所知錯(cuò)誤的借口。關(guān)于技術(shù)債務(wù)的說法很多,但都非常抽象,但這是軟件中債務(wù)的一種實(shí)際實(shí)用度量。如果那里有錯(cuò)誤而您沒有解決,則最好有充分的理由認(rèn)為它沒有關(guān)系。為每個(gè)版本計(jì)劃一些時(shí)間,不僅要添加新功能,還要使總體情況變得更好。花一些時(shí)間來完善您的軟件。
舊代碼很棘手。我見過一些公司的政策是“無論如何都要對(duì)其進(jìn)行清理,都要清理”,而其他一些公司的政策則是“僅觸摸您必須具備的條件,并且只有在存在現(xiàn)場報(bào)告的錯(cuò)誤時(shí)”。兩者都是有趣的政策,但是最重要的是要了解在舊代碼中發(fā)現(xiàn)新錯(cuò)誤時(shí)所涉及的風(fēng)險(xiǎn)。我曾與一家硬件供應(yīng)商合作,他們?cè)谌绾翁幚硪恍┡f代碼上的新工具的輸出方面苦苦掙扎。在他們的情況下,這是一個(gè)模棱兩可的范圍問題,仍然讓我想知道他們的編譯器如何允許這種瘋狂。他們陷入了沖突——一方面,他們擁有了這個(gè)新工具;另一方面,除非現(xiàn)場提供了錯(cuò)誤報(bào)告,否則他們不應(yīng)該接觸舊代碼。
了解您打算對(duì)遺留代碼執(zhí)行的操作很重要,同時(shí)也要充分了解其對(duì)組織的風(fēng)險(xiǎn)。如果代碼很關(guān)鍵,那么年齡可能并沒有您想的那么重要。如果不贊成使用該代碼,則可能是您在浪費(fèi)時(shí)間測試您不打算解決的問題。
對(duì)于組織而言,忽略安全性是非常令人沮喪的事情。在某些情況下,他們認(rèn)為可以在應(yīng)用程序中測試安全性(不能),而在其他情況下,他們認(rèn)為安全性問題不適用于他們的代碼(可以)。為了擺脫這種持續(xù)不斷的安全失敗的麻煩,組織必須使用可靠的AppSec最佳實(shí)踐來強(qiáng)化代碼,這在靜態(tài)分析工具中已得到了廣泛的應(yīng)用,而靜態(tài)分析工具不僅僅可以進(jìn)行流程分析。如果您不知道從哪里開始,那么簡單地采取MISRA規(guī)則并從今天開始編寫的任何代碼開始遵循它們就不會(huì)受到傷害。
我看到的一種極為常見和危險(xiǎn)的做法是擁有一個(gè)龐大的測試套件,并依靠通過的測試數(shù)量的簡單度量。例如,您通常具有80%的通過率,因此您認(rèn)為這會(huì)很好。問題在于,無法知道今天通過的80%是否與昨天通過的80%相同。很可能會(huì)因?yàn)?/span>80%(有)隱藏了新的實(shí)際故障,因?yàn)槠渌麊栴}已解決,從而使故障數(shù)保持平衡。保持您的測試套件干凈,或者告訴您的內(nèi)容不多。我會(huì)嚴(yán)重質(zhì)疑您可以輕松忽略的測試失敗的價(jià)值。為什么不跳過該測試——這是一種更誠實(shí),更有用的方法。
日歷仍然可能是最常見的關(guān)鍵發(fā)布標(biāo)準(zhǔn)。人們選擇了一個(gè)日期,現(xiàn)在要發(fā)布,因?yàn)樵撊掌诘搅恕.?dāng)然,有一些外部問題會(huì)影響您的發(fā)布時(shí)間表,但僅僅是因?yàn)槿掌谝训剑⒉灰馕吨梢詫⒆玖拥能浖其N給毫無戒心的即將成為客戶的客戶。準(zhǔn)備就緒/安全/穩(wěn)定/良好時(shí)釋放。如果日歷是固定的約束,請(qǐng)確保您的流程將按時(shí)到達(dá)。
您可以先釋放多少次才能付清代價(jià)?以我們的俄羅斯輪盤賭為例,最多六個(gè),也許只有一個(gè)。讓我們竭盡所能,以確保我們將交付具有最佳成功機(jī)會(huì)的最佳軟件。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@ke049m.cn