現(xiàn)在的軟件質(zhì)量為什么不如十年前?
當(dāng)前位置:點(diǎn)晴教程→知識管理交流
→『 技術(shù)文檔交流 』
軟件的重要性愈發(fā)凸顯的如今,本文作者指出如今的軟件質(zhì)量遠(yuǎn)不如十年前,并解釋了這種現(xiàn)象背后的原因。 原文鏈接:https://bitheap.tech/why-is-software-quality-worse-than-a-decado-ago/ 作者 | Laurentiu.Raducu 翻譯 | 鄭麗媛 出品 | 程序人生(ID:coder_life) 自互聯(lián)網(wǎng)誕生之初,軟件的作用就變得越來越重要,以至于我們的世界現(xiàn)在嚴(yán)重依賴軟件。從發(fā)射衛(wèi)星到軌道,到管理龐大的供應(yīng)鏈網(wǎng)絡(luò),軟件在各種運(yùn)作中都不可或缺。在我們的日?;顒?dòng)中,不論是開車、坐飛機(jī)還是購物支付,也都離不開軟件。 然而,隨著軟件解決方案不斷增長,由軟件錯(cuò)誤引發(fā)的事故也會(huì)相應(yīng)增加。如果你在科技公司工作,或者日常工作中依賴軟件,那你可能經(jīng)常會(huì)遇到性能和可用性方面的問題。 為什么會(huì)出現(xiàn)這種情況呢?盡管已經(jīng)設(shè)立了用戶體驗(yàn)專家和質(zhì)量保證工程師等專業(yè)角色,他們也努力將軟件中的錯(cuò)誤數(shù)量降到最低,但現(xiàn)代軟件的復(fù)雜性仍然不容忽視。即使做出了這些努力,軟件行業(yè)依舊面臨著重大挑戰(zhàn)。為此,本文將探討這一持續(xù)質(zhì)量危機(jī)的根本原因,并揭示為什么明明取得了這些進(jìn)步,軟件質(zhì)量仍然是一個(gè)關(guān)鍵問題。 我所說的軟件質(zhì)量是什么?談到軟件質(zhì)量,有許多不同的定義。就我個(gè)人而言,我會(huì)從以下幾個(gè)方面來考慮:功能性、可靠性、易用性和安全性。 就功能性而言,我們要考慮:軟件是否提供了用戶實(shí)現(xiàn)目標(biāo)所需的所有功能?是否需要依賴其他軟件?舉個(gè)例子,我認(rèn)為在消費(fèi)者軟件方面, Facebook 就是一個(gè)不符合功能性要求的糟糕應(yīng)用。你需要一個(gè)應(yīng)用來使用平臺的動(dòng)態(tài)消息功能,還需要另一個(gè)應(yīng)用來使用聊天功能——不過在網(wǎng)頁應(yīng)用中,F(xiàn)acebook 在同一個(gè) URL 下提供了這兩個(gè)功能。另一個(gè)例子,仍然適用于消費(fèi)者軟件,那就是視頻游戲行業(yè)。我在大學(xué)時(shí)代玩電子游戲時(shí),從未聽說過一款游戲需要打 20 個(gè)補(bǔ)丁才能玩。但現(xiàn)在,游戲公司推出產(chǎn)品后,給人的感覺像是測試版。他們通常會(huì)在推出后的頭兩天發(fā)布 2 個(gè)補(bǔ)丁,我們更新了才能玩游戲。這個(gè)行業(yè)似乎已經(jīng)完全崩潰了,價(jià)格也在不斷上漲。 在可靠性方面,軟件必須是可靠的,要幾乎沒有停機(jī)時(shí)間或錯(cuò)誤,這包括了從故障中恢復(fù)的能力和保持?jǐn)?shù)據(jù)完整性的能力。有很多報(bào)告顯示,云服務(wù)或其他關(guān)鍵軟件的可靠性還不夠。例如 2023 年,谷歌支持論壇上充斥著用戶投訴數(shù)據(jù)從 Google 云端硬盤中丟失的報(bào)告。雖然我個(gè)人認(rèn)為,將數(shù)據(jù)存儲(chǔ)在云端比存儲(chǔ)在移動(dòng)硬盤上更安全,但事實(shí)并非如此! 從易用性的角度來看,軟件必須方便用戶使用,不能過于復(fù)雜,而且性能要好。在我生活的地方,金融業(yè)在經(jīng)濟(jì)中占據(jù)了很大的比重,銀行和投資公司在這里擁有巨大的權(quán)力和幾乎無限的資源。盡管如此,他們的移動(dòng)銀行平臺簡直是一個(gè)笑話!卡頓、復(fù)雜和不直觀的用戶界面,我每次用它們時(shí)都很煩,甚至他們的反饋表也沒法用,每次我試圖提交時(shí)就會(huì)出現(xiàn) 500 錯(cuò)誤。 最后,還有最重要的一點(diǎn):安全性?,F(xiàn)代軟件有許多依賴項(xiàng),我們都知道管理它們并使其保持最新版本有多難。即使有 Renovate 或 Dependabot 這樣的自動(dòng)工具,各種庫的提供商也無法確保其新的主要版本能向后兼容。這就給開發(fā)人員的工作增加了難度,他們不得不手動(dòng)處理這些依賴關(guān)系的升級。然而,在他們設(shè)法做到這一點(diǎn)之前,攻擊者可能已經(jīng)利用舊依賴項(xiàng)的漏洞來竊取用戶數(shù)據(jù)了。這些數(shù)據(jù)泄露不僅給公司帶來了麻煩,還可能會(huì)面臨用戶的法律訴訟,而且對最終用戶來說也是一種危險(xiǎn)。每天都有成千上萬 GB 的用戶數(shù)據(jù),如電子郵件、密碼甚至電話號碼,被傾倒在暗網(wǎng)論壇上,這也是世界各地垃圾電話激增的主要原因。 哪里出了問題?既然我已經(jīng)定義了軟件質(zhì)量是什么,那么下面我就談?wù)勎覀€(gè)人對當(dāng)今軟件問題的看法。我必須提醒你,在這部分中你會(huì)看到很多直接提到人或群體的地方。聲明一下,我無意將我們所處的混亂局面歸咎于任何人、任何團(tuán)體或行業(yè)。我只是想根據(jù)我在這個(gè)行業(yè) 10 多年的工作經(jīng)驗(yàn),談?wù)勎业目捶?。這只是一個(gè)基于趣聞軼事的個(gè)人觀點(diǎn),所以請不要產(chǎn)生其他反應(yīng),也不要把這個(gè)當(dāng)作是對你個(gè)人的指責(zé)。 現(xiàn)在,能力危機(jī)影響著整個(gè)世界。由于我們每天都會(huì)接觸到大量的娛樂活動(dòng),人們實(shí)在是太容易分心了。每個(gè)人的注意力都在下降,想要集中精力超過幾分鐘都很難。 根據(jù)我的經(jīng)驗(yàn),這個(gè)問題在年輕人中尤為突出。我有幸能與一些 Z 世代中的杰出人士共事,但我合作過的大多數(shù)年輕人都無法完成任何任務(wù)。不是因?yàn)槿狈?jīng)驗(yàn),而是因?yàn)樗麄冊诒驹撏瓿晒ぷ鞯臅r(shí)候,卻一直在玩手機(jī),沒完沒了地看視頻,甚至玩游戲。有時(shí)候,我甚至感覺自己是在和一個(gè)癮君子共事。不只是我,有科學(xué)研究表明,這個(gè)年齡段的人對社交媒體的沉迷程度很高。 如今,人們無法長時(shí)間集中精力處理復(fù)雜任務(wù),這就導(dǎo)致了更多的錯(cuò)誤、更多的可用性問題,以及作為軟件開發(fā)人員對工作和使命的專注度降低。 有人可能會(huì)反駁說,如今高效的軟件團(tuán)隊(duì)需要遵循最新的最佳實(shí)踐來保持質(zhì)量。TDD、事件驅(qū)動(dòng)架構(gòu)、封閉測試、直接推送到主程序等深?yuàn)W概念將有助于你的團(tuán)隊(duì)持續(xù)交付并將質(zhì)量保持在最高水平。讓我們回過頭來分析一下這些建議的來源? Martin Fowler 是軟件工程領(lǐng)域的思想領(lǐng)袖之一,許多工程師盲目追隨他提出的一切建議。我在很多公司都看到了這種趨勢,特別是那些自稱擁有無與倫比的工程文化的“狂熱”組織中。許多這樣的組織都會(huì)構(gòu)建微服務(wù),即使他們的軟件領(lǐng)域復(fù)雜度不高,軟件本身預(yù)計(jì)也不會(huì)有太大的擴(kuò)展性。他們會(huì)這么做,因?yàn)樗麄兊摹吧系邸备嬖V他們要這樣做。但是,但是,他和其他一些領(lǐng)導(dǎo)者是如何變得如此有影響力的呢?他們一定是自己構(gòu)建了世界一流的軟件,對嗎? 于是,我到處搜索 Martin Fowler 創(chuàng)建的軟件:沒有任何開源軟件,也沒有任何公開的閉源軟件被宣傳為是由他開發(fā)的。所以我又要問:他是如何變得如此出名的呢?很簡單,因?yàn)樗峁┝四切┢接构こ處熕释臓幾h。 如今,構(gòu)建軟件不再只是工程問題,更多是為工作選擇正確的設(shè)計(jì)模式。這是高級編程語言普及的結(jié)果,我們不再需要考慮諸如內(nèi)存分配之類的復(fù)雜問題,使得幾乎任何人都能進(jìn)入軟件工程領(lǐng)域,同時(shí)這也不再是真正熱愛的人才能做的事了。主要的影響是,標(biāo)準(zhǔn)降低到了這樣一個(gè)程度,你的團(tuán)隊(duì)中可能會(huì)有一些人每天都不寫代碼,但他們在關(guān)于是否應(yīng)該使用 TDD 的無休止?fàn)幷撝兴l(fā)表的言論,卻受到了非技術(shù)經(jīng)理的高度贊賞。但最終,從他們所交付的軟件中來看,這些人帶來的價(jià)值接近零。 隨著這些編程語言的出現(xiàn),以及許多公司發(fā)布的豐富框架,抽象級別不斷上升,這使得工程師們逐漸不再需要深入了解他們正在使用的技術(shù)了。別誤會(huì)我的意思,這也有優(yōu)點(diǎn)。例如你可以獲得更高的工作效率,一切都有了更快的學(xué)習(xí)曲線。然而,增加對這些工具的依賴性可能會(huì)導(dǎo)致一個(gè)風(fēng)險(xiǎn),即工程師會(huì)缺乏對底層原理的深入理解,而這在調(diào)試、優(yōu)化和理解抽象的局限性方面至關(guān)重要。 總而言之,我認(rèn)為現(xiàn)代軟件的崩潰主要有以下幾個(gè)原因:缺乏專注、虛假的工程師,以及缺乏對抽象概念背后的深刻理解。我真的很好奇,AI 將會(huì)如何加劇我們現(xiàn)在看到的軟件質(zhì)量危機(jī)。我敢打賭,再過幾年,情況會(huì)變得更糟,優(yōu)秀的工程師會(huì)被平庸的同行擠出這個(gè)行業(yè),因?yàn)楹笳呖赡芨矚g發(fā)表意見,并大肆宣揚(yáng)行業(yè)虛假領(lǐng)袖的觀點(diǎn)。 ———————————————— 版權(quán)聲明:本文為博主原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接和本聲明。 原文鏈接:https://blog.csdn.net/csdnnews/article/details/137531980 該文章在 2024/4/13 11:12:44 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |