精品国产一级在线观看,国产成人综合久久精品亚洲,免费一级欧美大片在线观看

當前位置:企業應用軟件行業動態 → 正文

為什么管理技術債務如此重要

責任編輯:cres 作者:Tyler Hawkins |來源:企業網D1Net  2021-10-26 10:51:52 原創文章 企業網D1Net

如果軟件開發商希望更快地采取行動,留住頂尖人才,避免從頭開始重新編寫應用程序,那么管理技術債務非常重要。
 
每家軟件開發商都有一定數量的技術債務,這是在短期內將不成熟的項目推向市場而在之后不斷進行完善和補充的額外開發工作。技術債務可以表現為糟糕的設計決策、急需的重構、技術升級和未解決的問題。
 
就像承擔金融債務一樣,技術債務可以為企業爭取更多的時間,但必須在未來以利息償還。與金融債務一樣,承擔和管理技術債務也有明智和不明智的方法。
 
本文將討論快速還清技術債務至關重要的原因以及失敗的后果,以及如何解決軟件開發人員在嘗試優先處理技術債務時面臨的一些常見問題。
 
為什么要減少技術債務?
 
首先解決最重要的問題:為什么要減少企業的技術債務?畢竟,企業的一些應用程序到目前運行良好,而且肯定還有更重要的功能工作需要完成。
 
雖然這種推理方式很容易讓人接受,但企業會采用類似的方法來管理其金融債務嗎?債務通常產生利息,如果償還債務的速度很慢,其利息就會迅速增加。
 
如果你每個月只用信用卡支付最低還款額,那么最終可能會償還原始借入金額的數倍。因此盡快擺脫金融債務顯然是值得的。
 
償還技術債務需要一些時間和精力,它確實讓開發人員不能完成開發其他功能的工作。但是,盡早還清技術債務是值得的。
 
以下探討一下軟件開發商償還技術債務的一些好處:
 
·它可以讓軟件開發商在未來行動更快。
 
·它可以讓留住頂尖的人才。
 
·它可以幫助軟件開發商避免每隔幾年重新編寫整個應用程序。
 
(1)行動更快
 
解決技術債務的一個常見阻力是,“我們沒有時間”。那么管理技術債務會節省時間嗎?
 
每當有人說沒有時間償還技術債務時,這通常是一種借口。事實表明,拉動圓輪的手推車比拉動方輪的手推車更容易、更快捷。然而,很多企業可能正在拉著方輪手推車卻沒有意識到這一點。
 
Martin Fowler在他發表的一篇名為“高質量軟件是否值得付出代價?”的文章中闡述了解決技術債務和保持高代碼質量的好處。
 
他表示,一些軟件開發商無視技術債務并允許其代碼庫的質量下降。雖然他們一開始可能會更快地發布功能,但隨著時間的推移,他們的交付速度會越來越慢。
 
糟糕的設計決策、開放的錯誤、過時的技術或任何可能的東西,最終都會導致功能開發停止,因為處理復雜和有缺陷的代碼庫變得越來越困難。另一方面,一些軟件開發商了解保持高代碼質量、解決技術債務和及早修復錯誤的重要性。
 
雖然他們在開始交付新功能方面確實起步較慢,但在很短的時間內,他們開始在向客戶交付價值方面超過其他開發商。那是因為他們在維護代碼庫的正常運行方面所采取的謹慎措施可以防止隨著時間的推移陷入困境。
 
(2)留住頂尖人才
 
事實表明,未能解決技術債務的軟件開發商會失去一些人才。因為沒有人喜歡在一個具有缺陷的系統中工作,也沒有人喜歡在很難取得進展的項目中工作。很少有開發人員喜歡使用“遺留代碼”或使用已有幾十年歷史的技術。
 
那么當開發人員體驗下降時,他們該怎么辦?那些能夠找到更好工作的開發人員將會離職。換句話說,企業的一些頂尖人才離職,而其他的員工將會由于缺乏所需技能以及其他原因留下來。
 
因此,如果企業想留住頂尖的人才,需要表明它與開發人員一樣重視高質量的代碼。
 
(3)避免從頭開始重寫應用程序
 
為什么企業要從頭開始重寫他們的應用程序?有時候,這是一個很充分的理由,例如他們需要擺脫過時的技術,同時實現平臺的現代化。
 
但通常由于開發速度問題,需要從頭開始重新編寫應用程序,而開發人員的體驗將變得很痛苦。軟件開發商不得不決定從頭開始重新編寫應用程序,并為此花費了數年的時間和數百萬美元費用。
 
重新開始開發一個新項目也許很有趣。開發人員可以選擇最喜歡的編程語言和工具,并且可以“以正確的方式”設計一切。當然,其他開發人員在未來可能會對其代碼產生是一種遺留應用程序的感覺。
 
但是這種情況可以避免嗎?是的,如果企業優先解決技術債務并防止事情一開始就失控,可能就會避免完全重寫應用程序。
 
為什么技術債務沒有得到解決
 
軟件開發商認為盡快減少技術債務是一件好事。那么為什么技術債務沒有得到解決的情況如此普遍呢?
 
其中有幾個原因:
 
·開發人員認為功能工作更重要。
 
·開發人員認為解決技術債務不是他們的問題。
 
·開發人員與產品和工程管理人員相互推諉。
 
·開發人員無法有效說服產品和工程管理人員。
 
以下為這些原因探索一些應對方法:
 
(1)認為功能工作更重要
 
發布新功能很重要。因為沒有功能,產品就沒有價值。但是企業不能在開發全部功能之后才推出產品。
 
當有人表示功能工作更重要,并且不能優先解決技術債務時,那么功能工作現在真的更重要嗎?客戶真的會喜歡采用充滿錯誤并且運營緩慢的應用程序?
 
企業需要為客戶提供價值,那么一定要提供良好的用戶體驗,這意味著確保應用程序性能良好,并且不讓客戶感到沮喪或阻止他們使用錯誤的應用程序。
 
允許同時處理功能工作和技術債務的一個很好的折衷方案是在每個項目中花費大約70%~80%的時間開發新功能,每個項目花費20%~30%的時間來修復錯誤和解決技術債務。
 
(2)技術債務不是開發人員的問題
 
如果開發人員有這種感覺,這可能是潛在工程文化出現問題的征兆。他們希望在這樣的環境中工作,每個人都對代碼庫感到自豪,并具有主人翁感,并希望將其做到最好。如果沒有相同的價值觀和愿景,那么很難一起工作。
 
這里的解決方案是或者嘗試在更積極的方向上影響工程文化,或者可以讓一些開發人員離職去找到一個更適合的公司。
 
(3)與產品和工程管理人員相互推諉
 
經驗不足的開發人員可能有一些恐懼,因為他們可能會知道有一些重要的技術債務需要解決,這將導致內部沖突,但他們害怕表達這種擔憂。也許是因為他們認為直言不諱會對他們產生不利影響,或者可能會危及他們的工作職位。
 
重要的是要記住,作為軟件開發人員,通常了解企業在任何時間面臨的技術債務數量。當技術債務繼續被取消優先級或被忽視時,開發人員實際上有義務表達這些擔憂,并不再推諉產品管理或工程管理人員。
 
(4)無法說服產品和工程管理人員
 
第四個問題也許是最關鍵的問題。開發人員通常認為解決技術債務很重要,并且已經向產品管理和工程管理人員提出了這一點,但他們并沒有聽從。
 
在這種情況下,與其感到無助,不如更清楚地表達他的擔憂。如果只是說“我們需要解決這個問題”,但沒有提供任何明確的解釋或原因,那么就不能有效地溝通。
 
開發人員應該提供背景信息,說明優先處理技術債務很重要的原因,以及這會給業務帶來什么好處。用他們可以理解的術語來解釋事物尤其重要。
 
例如,開發人員采用自己的術語進行解釋:“我們真的需要花一些時間來測試,來增加我們在這個回購協議中的代碼覆蓋率。由于我們缺乏測試,經常會引入錯誤,我們必須在這些問題已經投入生產后花時間修復這些問題。讓我們的測試套件處于更好的狀態將使我們對代碼更有信心,并確保我們的客戶在使用應用程序時也有更好的體驗。” 但這種說法可能并不能讓產品管理和工程管理人員理解。
 
或者說:“我們現在有30個面向客戶的錯誤。這些給我們的客戶帶來了糟糕的體驗,甚至導致一位客戶取消了與我們的合同。我真的認為我們需要修復這些錯誤,而不是開發一些新功能。”這將使產品管理和工程管理人員可以理解。
 
而這么說:“我們的持續集成管道花費的時間太長。我們必須等待一個多小時才能獲得反饋以查看我們的構建是否通過,而這種延遲的反饋循環使得完成任務需要很長時間。我認為我們需要花一些時間優化構建,讓它更快地完成,這樣我們所有的工程師都可以更快地行動。試想一下,如果我們的構建每次運行快10分鐘,100名工程師每天創建5次新構建,那么我們可以完成多少工作。每天節省的開發時間超過83小時(10*100*5/60)。” 這可能讓產品管理和工程管理人員了解工作的艱巨性。
 
結論
 
承擔技術債務是不可避免的。但是,選擇如何處理技術債務可以決定運營的成敗。希望開發人員受到啟發并有能力解決目前在自己的角色中面臨的技術債務。這樣做將使企業成為更好的工作場所,并為用戶帶來更好的體驗。
 
版權聲明:本文為企業網D1Net編譯,轉載需注明出處為:企業網D1Net,如果不注明出處,企業網D1Net將保留追究其法律責任的權利。

關鍵字:企業應用軟件

原創文章 企業網D1Net

x 為什么管理技術債務如此重要 掃一掃
分享本文到朋友圈
當前位置:企業應用軟件行業動態 → 正文

為什么管理技術債務如此重要

責任編輯:cres 作者:Tyler Hawkins |來源:企業網D1Net  2021-10-26 10:51:52 原創文章 企業網D1Net

如果軟件開發商希望更快地采取行動,留住頂尖人才,避免從頭開始重新編寫應用程序,那么管理技術債務非常重要。
 
每家軟件開發商都有一定數量的技術債務,這是在短期內將不成熟的項目推向市場而在之后不斷進行完善和補充的額外開發工作。技術債務可以表現為糟糕的設計決策、急需的重構、技術升級和未解決的問題。
 
就像承擔金融債務一樣,技術債務可以為企業爭取更多的時間,但必須在未來以利息償還。與金融債務一樣,承擔和管理技術債務也有明智和不明智的方法。
 
本文將討論快速還清技術債務至關重要的原因以及失敗的后果,以及如何解決軟件開發人員在嘗試優先處理技術債務時面臨的一些常見問題。
 
為什么要減少技術債務?
 
首先解決最重要的問題:為什么要減少企業的技術債務?畢竟,企業的一些應用程序到目前運行良好,而且肯定還有更重要的功能工作需要完成。
 
雖然這種推理方式很容易讓人接受,但企業會采用類似的方法來管理其金融債務嗎?債務通常產生利息,如果償還債務的速度很慢,其利息就會迅速增加。
 
如果你每個月只用信用卡支付最低還款額,那么最終可能會償還原始借入金額的數倍。因此盡快擺脫金融債務顯然是值得的。
 
償還技術債務需要一些時間和精力,它確實讓開發人員不能完成開發其他功能的工作。但是,盡早還清技術債務是值得的。
 
以下探討一下軟件開發商償還技術債務的一些好處:
 
·它可以讓軟件開發商在未來行動更快。
 
·它可以讓留住頂尖的人才。
 
·它可以幫助軟件開發商避免每隔幾年重新編寫整個應用程序。
 
(1)行動更快
 
解決技術債務的一個常見阻力是,“我們沒有時間”。那么管理技術債務會節省時間嗎?
 
每當有人說沒有時間償還技術債務時,這通常是一種借口。事實表明,拉動圓輪的手推車比拉動方輪的手推車更容易、更快捷。然而,很多企業可能正在拉著方輪手推車卻沒有意識到這一點。
 
Martin Fowler在他發表的一篇名為“高質量軟件是否值得付出代價?”的文章中闡述了解決技術債務和保持高代碼質量的好處。
 
他表示,一些軟件開發商無視技術債務并允許其代碼庫的質量下降。雖然他們一開始可能會更快地發布功能,但隨著時間的推移,他們的交付速度會越來越慢。
 
糟糕的設計決策、開放的錯誤、過時的技術或任何可能的東西,最終都會導致功能開發停止,因為處理復雜和有缺陷的代碼庫變得越來越困難。另一方面,一些軟件開發商了解保持高代碼質量、解決技術債務和及早修復錯誤的重要性。
 
雖然他們在開始交付新功能方面確實起步較慢,但在很短的時間內,他們開始在向客戶交付價值方面超過其他開發商。那是因為他們在維護代碼庫的正常運行方面所采取的謹慎措施可以防止隨著時間的推移陷入困境。
 
(2)留住頂尖人才
 
事實表明,未能解決技術債務的軟件開發商會失去一些人才。因為沒有人喜歡在一個具有缺陷的系統中工作,也沒有人喜歡在很難取得進展的項目中工作。很少有開發人員喜歡使用“遺留代碼”或使用已有幾十年歷史的技術。
 
那么當開發人員體驗下降時,他們該怎么辦?那些能夠找到更好工作的開發人員將會離職。換句話說,企業的一些頂尖人才離職,而其他的員工將會由于缺乏所需技能以及其他原因留下來。
 
因此,如果企業想留住頂尖的人才,需要表明它與開發人員一樣重視高質量的代碼。
 
(3)避免從頭開始重寫應用程序
 
為什么企業要從頭開始重寫他們的應用程序?有時候,這是一個很充分的理由,例如他們需要擺脫過時的技術,同時實現平臺的現代化。
 
但通常由于開發速度問題,需要從頭開始重新編寫應用程序,而開發人員的體驗將變得很痛苦。軟件開發商不得不決定從頭開始重新編寫應用程序,并為此花費了數年的時間和數百萬美元費用。
 
重新開始開發一個新項目也許很有趣。開發人員可以選擇最喜歡的編程語言和工具,并且可以“以正確的方式”設計一切。當然,其他開發人員在未來可能會對其代碼產生是一種遺留應用程序的感覺。
 
但是這種情況可以避免嗎?是的,如果企業優先解決技術債務并防止事情一開始就失控,可能就會避免完全重寫應用程序。
 
為什么技術債務沒有得到解決
 
軟件開發商認為盡快減少技術債務是一件好事。那么為什么技術債務沒有得到解決的情況如此普遍呢?
 
其中有幾個原因:
 
·開發人員認為功能工作更重要。
 
·開發人員認為解決技術債務不是他們的問題。
 
·開發人員與產品和工程管理人員相互推諉。
 
·開發人員無法有效說服產品和工程管理人員。
 
以下為這些原因探索一些應對方法:
 
(1)認為功能工作更重要
 
發布新功能很重要。因為沒有功能,產品就沒有價值。但是企業不能在開發全部功能之后才推出產品。
 
當有人表示功能工作更重要,并且不能優先解決技術債務時,那么功能工作現在真的更重要嗎?客戶真的會喜歡采用充滿錯誤并且運營緩慢的應用程序?
 
企業需要為客戶提供價值,那么一定要提供良好的用戶體驗,這意味著確保應用程序性能良好,并且不讓客戶感到沮喪或阻止他們使用錯誤的應用程序。
 
允許同時處理功能工作和技術債務的一個很好的折衷方案是在每個項目中花費大約70%~80%的時間開發新功能,每個項目花費20%~30%的時間來修復錯誤和解決技術債務。
 
(2)技術債務不是開發人員的問題
 
如果開發人員有這種感覺,這可能是潛在工程文化出現問題的征兆。他們希望在這樣的環境中工作,每個人都對代碼庫感到自豪,并具有主人翁感,并希望將其做到最好。如果沒有相同的價值觀和愿景,那么很難一起工作。
 
這里的解決方案是或者嘗試在更積極的方向上影響工程文化,或者可以讓一些開發人員離職去找到一個更適合的公司。
 
(3)與產品和工程管理人員相互推諉
 
經驗不足的開發人員可能有一些恐懼,因為他們可能會知道有一些重要的技術債務需要解決,這將導致內部沖突,但他們害怕表達這種擔憂。也許是因為他們認為直言不諱會對他們產生不利影響,或者可能會危及他們的工作職位。
 
重要的是要記住,作為軟件開發人員,通常了解企業在任何時間面臨的技術債務數量。當技術債務繼續被取消優先級或被忽視時,開發人員實際上有義務表達這些擔憂,并不再推諉產品管理或工程管理人員。
 
(4)無法說服產品和工程管理人員
 
第四個問題也許是最關鍵的問題。開發人員通常認為解決技術債務很重要,并且已經向產品管理和工程管理人員提出了這一點,但他們并沒有聽從。
 
在這種情況下,與其感到無助,不如更清楚地表達他的擔憂。如果只是說“我們需要解決這個問題”,但沒有提供任何明確的解釋或原因,那么就不能有效地溝通。
 
開發人員應該提供背景信息,說明優先處理技術債務很重要的原因,以及這會給業務帶來什么好處。用他們可以理解的術語來解釋事物尤其重要。
 
例如,開發人員采用自己的術語進行解釋:“我們真的需要花一些時間來測試,來增加我們在這個回購協議中的代碼覆蓋率。由于我們缺乏測試,經常會引入錯誤,我們必須在這些問題已經投入生產后花時間修復這些問題。讓我們的測試套件處于更好的狀態將使我們對代碼更有信心,并確保我們的客戶在使用應用程序時也有更好的體驗。” 但這種說法可能并不能讓產品管理和工程管理人員理解。
 
或者說:“我們現在有30個面向客戶的錯誤。這些給我們的客戶帶來了糟糕的體驗,甚至導致一位客戶取消了與我們的合同。我真的認為我們需要修復這些錯誤,而不是開發一些新功能。”這將使產品管理和工程管理人員可以理解。
 
而這么說:“我們的持續集成管道花費的時間太長。我們必須等待一個多小時才能獲得反饋以查看我們的構建是否通過,而這種延遲的反饋循環使得完成任務需要很長時間。我認為我們需要花一些時間優化構建,讓它更快地完成,這樣我們所有的工程師都可以更快地行動。試想一下,如果我們的構建每次運行快10分鐘,100名工程師每天創建5次新構建,那么我們可以完成多少工作。每天節省的開發時間超過83小時(10*100*5/60)。” 這可能讓產品管理和工程管理人員了解工作的艱巨性。
 
結論
 
承擔技術債務是不可避免的。但是,選擇如何處理技術債務可以決定運營的成敗。希望開發人員受到啟發并有能力解決目前在自己的角色中面臨的技術債務。這樣做將使企業成為更好的工作場所,并為用戶帶來更好的體驗。
 
版權聲明:本文為企業網D1Net編譯,轉載需注明出處為:企業網D1Net,如果不注明出處,企業網D1Net將保留追究其法律責任的權利。

關鍵字:企業應用軟件

原創文章 企業網D1Net

電子周刊
回到頂部

關于我們聯系我們版權聲明隱私條款廣告服務友情鏈接投稿中心招賢納士

企業網版權所有 ©2010-2024 京ICP備09108050號-6 京公網安備 11010502049343號

^
  • <menuitem id="jw4sk"></menuitem>

    1. <form id="jw4sk"><tbody id="jw4sk"><dfn id="jw4sk"></dfn></tbody></form>
      主站蜘蛛池模板: 南和县| 中江县| 淅川县| 平原县| 体育| 苍山县| 乌拉特中旗| 延寿县| 五峰| 九江县| 赤壁市| 日土县| 芷江| 伊宁市| 白朗县| 临澧县| 南召县| 河北省| 水城县| 班戈县| 静海县| 库车县| 电白县| 额济纳旗| 成安县| 清新县| 轮台县| 永靖县| 平顶山市| 车致| 新巴尔虎右旗| 韩城市| 普兰店市| 元阳县| 格尔木市| 探索| 来凤县| 易门县| 四平市| 澄城县| 北辰区|