
大多數(shù)軟件開發(fā)人員都熟悉技術(shù)債務(wù),而編程以外的人可能不知道。但理解這個概念是非常重要的,因為它不僅存在于編程領(lǐng)域,而且存在于短期決策可能影響長期結(jié)果的廣泛場景中。
芯片采購網(wǎng)專注于整合國內(nèi)外授權(quán)IC代理商現(xiàn)貨資源,芯片庫存實時查詢,行業(yè)價格合理,采購方便IC芯片,國內(nèi)專業(yè)芯片采購平臺。
什么是技術(shù)債務(wù)?
簡而言之,當(dāng)軟件開發(fā)團隊急于快速交付而忽略代碼質(zhì)量時,就會產(chǎn)生技術(shù)債務(wù)。例如,用戶可能迫切需要某個功能,因此開發(fā)人員選擇部署足夠的代碼,并計劃在未來進行修復(fù)和優(yōu)化。如果此代碼最終沒有重新檢查和修復(fù),此圖暫時方便操作的成本是未來工作量的增加,就像不償還貸款會產(chǎn)生利息和罰款一樣。技術(shù)債務(wù)本身并不一定是一個問題,但如果未來產(chǎn)品優(yōu)化不足或允許異常代碼泛濫,它將成為一個不可低估的問題。為跟上市場快速變化的步伐,企業(yè)轉(zhuǎn)向的快速發(fā)展在一定程度上加劇了技術(shù)債務(wù)的風(fēng)險(DevOps)為了促進頻繁的代碼發(fā)布和持續(xù)的改進,需要每天甚至幾個小時推送新的代碼,開發(fā)人員可能會在文檔規(guī)則或測試的壓力下走捷徑。
技術(shù)債務(wù)實例
計算機千年蟲危機是一個經(jīng)典的技術(shù)債務(wù)案例。在20世紀60年代和70年代,為了節(jié)省寶貴的內(nèi)存,許多軟件開發(fā)人員只使用兩位十進制數(shù)來表示年份。例如,197373而不是1973年。這種做法持續(xù)了很多年,甚至在內(nèi)存價格下跌的時候。很多這樣的程序都嵌入到運營業(yè)務(wù)中,使用時間遠遠超出人們的預(yù)期。隨著2000年的臨近,數(shù)千家企業(yè)和政府機構(gòu)意識到,當(dāng)系統(tǒng)進行跨世紀日期處理操作時,會出現(xiàn)錯誤的結(jié)果,導(dǎo)致各種系統(tǒng)功能障礙甚至崩潰,因此進行了大量瘋狂的清理工作。據(jù)估計,解決千年蟲問題花費了近1000億美元。
此外,技術(shù)債務(wù)不僅發(fā)生在軟件上。例如,網(wǎng)絡(luò)安全領(lǐng)域的最佳實踐之一是將文件權(quán)限授予組織中的角色,而不是個人。假設(shè)一名行政助理獲得了上級的批準,他可以暫時訪問他通常無權(quán)查看的敏感文件。IT該組織批準了這一例外,但后來沒有撤銷該權(quán)限,這相當(dāng)于將敏感文件的永久訪問權(quán)授予一個最終可能被入侵和漏洞的賬戶。
技術(shù)債務(wù)的影響
如果開發(fā)人員知道如何在短時間內(nèi)快速修復(fù)和處理技術(shù)債務(wù),技術(shù)債務(wù)幾乎不會造成傷害,甚至?xí)偈蛊髽I(yè)快速響應(yīng)機會或問題。
然而,當(dāng)技術(shù)債務(wù)層層疊加時,由于缺乏文檔記錄或根本沒有文檔記錄,當(dāng)執(zhí)行維修工作的開發(fā)人員離開時,企業(yè)只能對這個代碼無能為力,不知道維修的意義。任何突然的變化都可能導(dǎo)致程序失敗或運行緩慢,企業(yè)害怕承擔(dān)風(fēng)險,不愿改進,減緩創(chuàng)新速度。
技術(shù)債務(wù)類型
技術(shù)債務(wù)主要分為有意產(chǎn)生和無意產(chǎn)生。開發(fā)人員培訓(xùn)公司Construx首席執(zhí)行官Steve McConnell有意產(chǎn)生的技術(shù)債務(wù)定義為根據(jù)戰(zhàn)略故意承擔(dān)的技術(shù)債務(wù),無意產(chǎn)生的技術(shù)債務(wù)定義為非戰(zhàn)略結(jié)果。
2014年,一群學(xué)者制定了技術(shù)債務(wù)分類法,將技術(shù)債務(wù)分為13種Kioxia代理同類型,包括結(jié)構(gòu)債務(wù)、代碼債務(wù)、缺陷債務(wù)、設(shè)計債務(wù)、流程債務(wù)和測試債務(wù)。這種分類方法涵蓋了短視思維可能導(dǎo)致的所有長期問題,因此非常實用。
產(chǎn)生技術(shù)債務(wù)
故意產(chǎn)生的技術(shù)債務(wù)是故意做出的決定,因此應(yīng)記錄為文件并安排重建。無意產(chǎn)生的技術(shù)債務(wù)可能是由于臨時措施的修改或添加,沒有特別的代碼重建計劃,也可能是由于缺乏技術(shù)知識或不符合開發(fā)標(biāo)準造成的不良設(shè)計決策。例如,當(dāng)測試套件不完整或縮短或跳過測試鏈接時,測試債務(wù)將無意中產(chǎn)生。
文檔債務(wù)是一種非常常見的技術(shù)債務(wù),因為開發(fā)人員沒有完全記錄他們的代碼。從長遠來看,如果有人在離開公司時沒有留下線索來幫助他人理解代碼,就會出現(xiàn)嚴重的問題。文檔債務(wù)是千年蟲問題的主要原因之一。
技術(shù)債務(wù)的預(yù)兆
技術(shù)債務(wù)的預(yù)警信號包括:
● 由于開發(fā)人員對代碼庫缺乏深入了解,項目陷入困境;
● 由于復(fù)雜性或缺乏文檔而出現(xiàn)難以修復(fù)的錯誤;
● 修復(fù)錯誤后,新的錯誤或性能穩(wěn)定下降。
預(yù)防技術(shù)債務(wù)
要知道如何處理技術(shù)債務(wù),首先要有健全的發(fā)展實踐,比如DevOps測試在環(huán)境中左右移動。測試左移是指將測試過程提前到整個開發(fā)周期,以便在生產(chǎn)前預(yù)測和解決問題。測試右移是指在應(yīng)用程序進入生產(chǎn)階段后收集反饋,以便在軟件被廣泛使用之前提前發(fā)現(xiàn)和修復(fù)錯誤。這些預(yù)防措施可以防止更大的問題。
技術(shù)債務(wù)的臨時措施是不可避免的,但開發(fā)人員必須記錄在案件中,包括原因和修復(fù)說明。團隊成員也可以定期檢查現(xiàn)有代碼,積極發(fā)現(xiàn)文檔的缺陷或異常代碼。
了解技術(shù)債務(wù)的重要性
有人說,現(xiàn)在每家公司都是軟件公司,軟件數(shù)量每年都在快速增長。就連重工業(yè)企業(yè)也在挖掘數(shù)據(jù),讓客戶從購買的產(chǎn)品中獲得更多的價值。
同時,開發(fā)部門需要快速生產(chǎn)項目,忙碌的開發(fā)人員自然會走捷徑,項目經(jīng)理應(yīng)該理解并強調(diào)測試和文檔記錄的重要性。
最好的做法是什么?
采用DevOps技術(shù)企業(yè)應(yīng)明確什么是技術(shù)債務(wù),并采取敏捷的管理策略。企業(yè)可以使用測試右移和左移A/B和金絲雀測試技術(shù)在失控前發(fā)現(xiàn)問題;此外,同行代碼審查可以從新的角度檢查開發(fā)人員的工作。開發(fā)人員應(yīng)使用統(tǒng)一的指定工具和語言,并在每個階段都有任務(wù)清單。有效率的DevOps該部門不僅為建立應(yīng)用程序提供了足夠的自由,還制定了軟件開發(fā)規(guī)范,以確保開發(fā)質(zhì)量。
低代碼開發(fā)平臺-減少技術(shù)債務(wù)的好工具
為了更有效地減少技術(shù)債務(wù),企業(yè)可以使用自動化測試對每個代碼的變化進行多輪調(diào)試;建立強制性文檔等完善的代碼結(jié)構(gòu)流程;將程序員分成兩組,了解彼此的決策;使用項目管理工具可視化團隊中每個人的工作狀態(tài)。
此外,使用低代碼和無代碼工具編寫的軟件數(shù)量也在增加。這些軟件在很大程度上實現(xiàn)了自動歸檔,因為流程圖和拖放技術(shù)可以以可視化的方式呈現(xiàn)邏輯和預(yù)期結(jié)果。此外,生成的代碼可以按原計劃運行,也可以為自定義或性能目的進行修改。開發(fā)經(jīng)理應(yīng)鼓勵團隊使用低代碼和無代碼技術(shù),以提高生產(chǎn)效率。
- 遠距離高清圖傳MimoMesh智能天線寬帶自組網(wǎng)電臺
- 恩智浦利用后量子加密技術(shù)幫助開發(fā)新一代安全標(biāo)準
- 熱烈慶祝2022年AR/VR產(chǎn)業(yè)鏈峰會論壇成功舉辦
- 印度電子和信息技術(shù)部給予Twitter印度遵守IT規(guī)則的最后機會
- 深圳超博攜多個計算解決方案亮相CITE2022
- 隔離式比較器將隔離式雙向過流尺寸縮小50%
- Digi-Key Electronics 在 2022 EDS 在領(lǐng)導(dǎo)力峰會上多項獎項
- Nexperia的USB4 ESD二極管件實現(xiàn)了良好的保護和性能平衡
- 微軟 Windows Autopatch 正式上線
- 十五年創(chuàng)新之路:意法半導(dǎo)體首次舉行STM32中國在線技術(shù)周
- Hailo 與瑞薩合作實現(xiàn)汽車客戶 ADAS 自動駕駛的無縫擴展
- 股東批準股價連續(xù)九次下跌 公司處于集成電路行業(yè)核心產(chǎn)業(yè)鏈中
