国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

寫給工程人員的技術債完全指南

譯文
新聞
技術債是個復雜的主題。本文將帶您了解什么是技術債,其特征與分類,需要監控的指標,以及如何有效地通過管理來加速軟件的開發過程。

【51CTO.com快譯】通常而言,債務是一個能夠讓人產生消極感覺的詞匯。大家往往會聯想到學生貸、醫療費、以及抵押付款等景象。不過,一些金融上的債務還是多少對人有益的。而技術債也是如此。

[[352954]]

作為一個隱喻,技術債(也稱為代碼債務)是指開發團隊為了加快項目或功能的交付速度,在后期需要重構時會發生的情況。顯然,優先事項是更快的開發過程,而不是更高質量的代碼。

和金融債務類似,技術債對于組織來說是一把雙刃劍。為了合理地使用它,工程師和團隊負責人必須監控他們手頭有多少技術債,并學習如何對其進行良好的管理。而對于組織而言,這將是一項艱巨的任務,尤其是當他們對技術債的優缺點尚不清楚時。

技術債的基本特征

Scrum已經成為了軟件開發人員在尋求以更高效的方式交付產品時,使用到的流行框架。眾所周知,客戶經常會有新的需求出現,并且會改變主意。因此,開放性的Scrum以事情的不可預測性為重要原則,并讓用戶在使用該框架時產生技術債。

在此,我們借用Scrum培訓師Stefan Wolpers(請參見--https://www.scrum.org/resources/blog/technical-debt-scrum-who-responsible#:~:text=%E2%80%9CTechnical%20debt%20(also%20known%20as,approach%20that%20would%20take%20longer.%E2%80%9D)曾經提到過的,如下兩種不同類型的Scrum技術債:

  • 首先創建一個由性能欠佳的代碼所組成的短期解決方案,以便開發團隊可以更快地交付產品。同時,團隊期望在初次發布之后,回過頭來改善代碼的質量。
  • 隨著開發團隊發現有關待解決問題信息的增多,另一類技術債也會被動地產生。即:隨著新需求的出現,往日起作用的解決方案可能在將來就失效了。因此,這些需要調整和重構的代碼,會包含一定數量的債務。

Wolper同時認為:Scrum團隊應該重視如下方面:

  • 為了簡便管理,應優先考慮技術債的透明度。團隊需要將技術債的可視化突顯效果放在首位,并在每次Sprint(沖刺)會議期間審查技術債的各項需求。
  • 跟蹤技術債。團隊通過盡可能地使用諸如圈復雜度(cyclomatic complexity)、代碼覆蓋率、SQALE評級、以及違反規則等深入的代碼度量標準,對各類錯誤進行記錄和計數。
  • 快速定期償還債務。Scrum團隊應該考慮在每個Sprint周期中,將其15-20%的資源分配給重構代碼并修復錯誤。
  • 調整產品的積壓,將其與償還的技術債任務關聯。您可以將債務整理成要解決的Sprint狀態,以有助于防止債務被遺忘。
  • 調整對“完成”的定義,即:在滿足了那些可管理的技術債的既定標準之前,請不要將其狀態設置為完成。
  • 規范程序。為團隊如何處理添加新的功能(包括引入技術債),制定可重復的公式。

技術債有哪些不同類型?

目前,大多數專家普遍認為技術債有故意和無意的兩種類型。其中:

  • 當組織為了縮短上市時間而選擇留出改進代碼的空間時,就會產生故意的(也稱為主動)技術債。
  • 當在發布了一段時間create后需要提高代碼的質量時,就會產生無意的(也稱為偶然的、過時的、被動的)技術債。這些既可能是由于第一次發布不佳所致,也可能是由于代碼過時而自然產生的更新需求。

另一種觀點則根據技術的具體類別,以及組織預期的更好服務,提出了如下13種不同類型的技術債,每一種債務都包含了標題中的特定問題:

  • 建筑債務
  • 構建債務
  • 代碼債務
  • 缺陷債務
  • 設計債務
  • 文件債務
  • 基礎設施債務
  • 人員債務
  • 處理債務
  • 需求債務
  • 服務債務
  • 測試自動化債務
  • 測試債務

Martin Fowler在故意和無意的分類基礎上增加了魯莽和謹慎兩個維度,提出了技術債的四象限。其中謹慎的技術債來自一個知道如何做的團隊,而當人們太草率時,魯莽的債務就會產生。兩者的區別在于:審慎的團隊是在了解其行為的基礎上,故意地去使用技術債。而魯莽的團隊則像是剛剛經歷了雙十一剁手節一樣,碰到債務的不斷增加。

可見,對于所有的軟件工程團隊而言,無論他們的專業知識或經驗如何,適當承擔一定程度的債務是可以接受的。也就是說,在謹慎的情況下,一些可以預期的債務會促進團隊知曉應當對手頭的項目做些什么,以及哪些是稍后要進行的一些新工作。他們不但會盡力減少魯莽的債務,還能減少不良代碼,以提高軟件的質量。

應當始終避免哪種類型的技術債?

審慎的技術債雖然對軟件組織來說有一定的好處,但是如果累積得多了,從量變發生了質變,也可能會成為魯莽的技術債。也就是說,當軟件隨著時間的流逝,惡化到產生錯誤、甚至影響其功能和可用性時,就會成為Bit rot(也稱為“軟件熵”)。例如:當開發人員需要對其不甚了解的歷史遺留代碼進行較小的增量更改時,軟件本身的復雜性和潛在問題會隨即增加。一些工程師甚至可能違反NFR(Non-functional requirement,非功能要求),完全破壞代碼,進而對軟件的整體功能產生影響。解決此類技術債的唯一方法便是重構整個過程。

而且,在大多數情況下,團隊并不會察覺到自己的一些微小變化,實際上會導致債務總額的增加。雖然我們也可以使用Wolper的透明化概念,協助避免此類災難的發生,但是從根本上說,團隊還是應當對目標軟件具有充分的了解,從而避免在無意中添加可能阻礙系統的代碼。

技術債的指標有哪些?

和任何良好的管理計劃類似,組織需要通過了解各項指標,才能獲得對于技術債的控制權。下面是一些值得參考與衡量的指標:

軟件缺陷

軟件開發者應當持續記錄和跟蹤發現到的缺陷,其中包括未修復的缺陷和已修復的缺陷。對于未修復的缺陷,開發團隊可以在敏捷迭代中持續專注和修復它們。而通過跟蹤已修復的缺陷,團隊則能夠衡量其技術債的管理流程與效率。

代碼質量

如果說軟件缺陷直接影響的是軟件的最終用戶,那么代碼的復雜性則會阻礙團隊的開發與維護。下面是有關代碼復雜度的指標:

  • 圈復雜度
  • 類的耦合
  • 代碼行數
  • 繼承的深度

當然,這些指標應該越低越好。通過密切關注這些指標,團隊還能夠準確地獲悉有待重寫或重構的代碼,以降低復雜性,并改善軟件的后端。

代碼的內聚

與代碼質量類似,專注代碼的內聚性,將有助于簡化代碼的復雜性。較高的代碼內聚性通常意味著目標代碼更具有可維護性、可重用性和魯棒性。同時,該指標還可以最大程度地減少需要開發人員的數量,以及大幅降低復雜性,減少Bit rot。

代碼所有權

“人多手雜”在此可以被用來形容更多的開發人員,產生更多的工作量,導致更大的問題,以及更多的無意技術債。因此,我們需要祭出“代碼所有權”的指標,來解答“誰在關注哪塊代碼?”,以及“如果出現問題該找誰?”等問題。

此類指標將向項目管理人員展示從事某項代碼工作的人員數量,以及花費在控制上的時間。據此,我們可以避免由于完整的代碼部分被掌握在某個成員手里,而他可能因為被堵在路上,而耽誤了項目進度等單點故障。因此,我們可以將代碼庫分割成不同的域,然后授權給團隊中不同的開發人員角色。

代碼變化(Churn)

代碼段被重寫或替換等活動都可以被視為發生了代碼變化。如果開發人員不得不圍繞著某段代碼持續解決相似的錯誤,那么就意味著此處的技術債非常嚴重。據此,團隊也可以識別并確定代碼的哪些部分需要重構。因此,團隊需要特別注意那些經常發生變化的代碼,以便快速發現問題,進而避免問題的加劇和技術債的累積。

值得一提的是,簡單地跟蹤上述技術債的各項指標,并不能自動消除所有的債務,我們仍然需要更為有效的管理實踐。

有關技術債的調查

根據卡內基梅隆大學軟件工程學院的一項行業調查(請參見--https://insights.sei.cmu.edu/sei_blog/2015/07/a-field-study-of-technical-debt.html)發現:糟糕的架構往往是技術債的首要來源,其次是過于復雜的代碼,第三則是缺少文檔和測試之間的緊密聯系。而更糟糕的是,有65%的受訪者表示他們沒有適當的技術債管理應用。這就意味著由于缺乏策略來應對技術債,因此他們選擇不去實施任何解決方案!

一位擁有與多家公司(從《財富》500強到初創公司)合作超過20年經驗的軟件開發人員建議:開發團隊應當像投資信用卡業務那樣去投資技術債,而且投資的重點應放在如下兩個地方:

  • 公司的文化,將人員對應到復雜的系統上,各司其職。
  • 代碼庫的構建,執行更深入和更頻繁的質量保障測試。在組織已經積累了大量技術債的情況下,您可以將此類測試自動化。投資的內容至少涉及到通過某種形式的代碼審查,以確保問題能夠被盡早地解決。當然,這也意味著需要更加頻繁地進行重構。

不過,上述兩方面的投資只是一個起點,我們仍然強調需要管理自己的技術債。如果沒有一個明確的策略,技術債會繼續增加,并在線上和線下制造更多的問題,正如上述調查中所提到的那樣。

如何管理技術債?

就像金融債務一樣,只有通過制定計劃,實施管理,才能減少技術債。當然,正所謂“知易行難”,我們真正管理起來并不容易。它需要持續的監控和投入,并將其納入軟件開發的必要組成部分。而且,由于技術債很容易脫離業務目標,因此對其管理有助于讓開發與業務目標保持一致。

據預測,到2024年,技術債務將給全球科技公司帶來4萬億美元的損失。而實施了技術債管理與補救的公司將會縮短50%客戶產品交付時間。

目前,市場上已有一些新的技術應用捕捉到了此類軟件需求,并提出了相應的解決方案。例如,Stepsize之類的軟件,便可以使開發團隊輕松地獲取債務報告,對它們進行分類,并確定有待解決的最重要債務。通過監控并管理積累的所有技術債,它們可以協助軟件工程團隊在無需大幅改變常規工作流程的前提下,及時交付出色的軟件產品。

原文標題:The Engineer’s Complete Guide to Technical Debt,作者:Alex Omeyer

【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】

 

責任編輯:華軒 來源: 51CTO
相關推薦

2020-05-11 09:54:33

JavaScript開發技術

2020-08-12 07:53:39

技術債技術科學

2023-09-20 21:30:14

單元測試完全指南

2023-09-21 22:12:06

單元測試數據工程

2019-03-22 10:10:44

AndroidiOS移動系統

2019-03-19 10:05:11

技術研發指標

2020-10-15 14:53:36

技術管理工程師

2022-05-12 10:11:32

通信行業運營商裁員

2009-12-31 14:34:02

ISDN終端

2019-03-20 14:44:53

數據庫MySQLExcel

2018-10-11 05:37:11

2020-06-16 07:46:01

Web開發工具

2010-09-16 12:40:04

PPPOE SERVE

2018-11-26 06:22:32

WiFi無線網絡路由器

2023-10-08 18:07:42

Kubernetes開源容器

2018-08-03 12:52:51

首頁彈窗iOS

2019-07-29 16:05:48

前端DockerNode.js

2024-10-23 21:21:32

2018-08-08 20:35:58

APP結構指南導航

2010-12-30 10:04:49

Linux入門
點贊
收藏

51CTO技術棧公眾號

97人人模人人爽人人少妇| 亚洲精品国产精华液| 尤物精品国产第一福利三区| 日韩一级在线免费观看| 国产精品毛片在线| 7m精品福利视频导航| 国产极品人妖在线观看| 99久久婷婷国产综合精品| 国产一区二区中文字幕免费看| 亚洲国产aⅴ精品一区二区| 欧美成人精品3d动漫h| 又黄又爽在线观看| 国产偷国产偷亚洲高清人白洁| 日本高清一区| 清纯唯美日韩| 欧美日本亚洲视频| 深夜在线视频| 91久久国产最好的精华液| 午夜视频你懂的| 国产精一区二区三区| 久久久久久久久久久久久久久久av| 亚洲欧洲av| 不卡av日日日| 日本一区免费网站| 亚洲精品永久免费| 岛国片av在线| 777欧美精品| 国产日韩精品在线看| 一区二区理论电影在线观看| 欧美牲交a欧美牲交aⅴ免费真| 国产麻豆午夜三级精品| 日产精品高清视频免费| 亚洲欧洲综合| 国产精品99久久久久久久| 国产精品精品| 国产精品久久久久久久av大片| 98视频精品全部国产| 精品久久国产精品| 日韩av黄色| 综合久久五月天| 女人高潮被爽到呻吟在线观看| 7777精品伊人久久久大香线蕉超级流畅 | 成人av在线播放| 日韩国产欧美精品在线| 欧美aaaxxxx做受视频| 欧美日韩高清一区二区不卡| 日本韩国一区| 色偷偷久久人人79超碰人人澡| ga∨成人网| 亚洲影视在线观看| 亚洲小说区图片区情欲小说| 天涯成人国产亚洲精品一区av| 调教在线观看| 欧美性jizz18性欧美| 内衣办公室在线| 日韩欧美在线视频| 在线观看麻豆蜜桃| 欧美日韩国产综合视频在线观看| 一区二区三区视频在线观看视频| 欧美日韩免费视频| 免费在线观看黄| 精品国产精品一区二区夜夜嗨| 国产拍在线视频| 久久久成人的性感天堂| 欧美尿孔扩张虐视频| 国产精品久久久久久久久久东京| 欧美日韩国产成人精品| 欧美日韩精品免费看| 国产精品一区二区在线看| 欧美日韩亚洲一| 亚洲色图清纯唯美| av中文字幕在线| 亚洲白拍色综合图区| 国产成人午夜性a一级毛片| 97国产成人精品视频| 这里只有精品在线| 精品少妇人妻av一区二区| 久久久久久久综合日本| 欧美性猛交p30| 日韩欧美一二区| 91成人短视频在线观看| 国产精品网址在线| 男人操女人的视频在线观看欧美 | 啪啪亚洲精品| 99re国产视频| 精品一区二区在线观看| 亚欧在线免费观看| 日韩欧美国产中文字幕| 国产不卡123| 久久久久国产精品免费网站| 欧美gay男男猛男无套| 五月天亚洲综合| 国产精品理论片| 午夜在线观看视频| 久久精品国产一区二区电影| 国内精品久久久久久久久电影网| 蜜桃传媒视频麻豆第一区免费观看| 成人精品视频一区二区三区 | 91久久精品美女| 九九**精品视频免费播放| 一区二区三区免费播放| 欧美日韩大陆一区二区| 日韩黄色三级| 97超碰资源| 91麻豆产精品久久久久久| 成人高清免费观看mv| 久久久久999| 日韩视频精品在线观看| 男人女人黄一级| 欧美二区三区的天堂| 欧美aaaaa级| 亚洲国产一区在线| 午夜精品久久一牛影视| 成人日韩精品| 99中文字幕| 中文字幕不卡一区| 国产拍在线视频| 亚洲综合在线播放| 国产女人18毛片水真多成人如厕 | 国产在线精品一区二区三区| 91片黄在线观看| 直接在线观看的三级网址| 日韩美女在线看| 国产盗摄一区二区三区| 国产一级片在线播放| 欧美国产精品va在线观看| 日韩在线一二三区| 亚洲男人网站| 久久免费视频网站| 久久精品国产99国产精品| 免费男女羞羞的视频网站主页在线观看 | 高清不卡一二三区| 在线看的av网站| 国产精品吊钟奶在线| 2020国产精品自拍| www.九色在线| 久久国产精品免费一区| 亚洲成av人片一区二区三区| 成人看片黄a免费看视频| 国产69精品久久久久999小说| 日韩一卡二卡三卡四卡| 欧美一区精品| 午夜在线观看视频网站| 欧美诱惑福利视频| 国产精品家庭影院| 久久精品资源| 久久久久久久久久伊人| 精品国产乱码久久久久久牛牛| 亚洲欧美偷拍自拍| 中文字幕免费在线视频| 国产成人在线一区二区| 日本一区二区不卡视频| 精品视频在线观看免费观看| 日韩视频免费播放| 亚洲视频欧洲视频| 风流少妇一区二区| 深夜成人福利| 日韩一区二区高清视频| 国产亚洲福利一区| 成人性生交大片免费看中文网站| 黄瓜视频成人app免费| 国产911在线观看| 亚洲三级免费看| 国产精品888| 成人免费视频观看| av之家在线观看| www.久久久久| 久久久久久免费网| 91精品尤物| 男人天堂免费视频| 国产精品偷伦免费视频观看的| 无吗不卡中文字幕| 亚洲视频免费| yellow91字幕网在线| 日韩欧美一区二区三区久久婷婷| 精品美女一区二区| 国产精品一区二区男女羞羞无遮挡| 香蕉视频亚洲一级| 亚洲爆乳无码专区| 国产福利精品视频| 欧美视频完全免费看| 日本中文在线一区| 精品123区| 天堂一区在线观看| 成人久久18免费网站图片| 欧美日韩国产电影| 精品无码三级在线观看视频| 国产精品久久亚洲不卡| 成年人视频网站免费观看| 日本精品一区二区三区在线播放视频| 亚洲国产wwwccc36天堂| 99精品热视频只有精品10| 乡村艳史在线观看| 国产又大又黄又粗又爽| 91社区国产高清| 精品网站999www| 亚洲色图都市小说| 亚洲欧美久久| 亚洲精品a区| 在线观看的av|