技術債務是對業務功能缺乏真正的理解 -daverupert.com
技術負債概念提出者Ward Cunningham認為:長期開發一個應用程式時,我們是透過不斷新增功能進行的,但是卻從未對其進行重新組織以反映我們對這些功能的理解,那麼最終該程式將根本不包含任何理解,因而在其上繼續工作程式設計所付出的努力將花費越來越長的時間。
知識管理在組織中是如此重要,但是他們很少經過關鍵的重構來反映當前的理解。
必要時需要進行大規模重構。如果組織的營業額足夠大或產品中的功能不斷增加,那麼進行重寫是最好的選擇,這樣您的團隊對程式碼有個整體的瞭解。不能指望人們在繁忙的程式設計中會實現難以理解的需求,或者在已經離職人的遺留程式碼中提高工作效率。
使用一個通俗解釋:如果吃完飯不洗碗不打掃廚房,那麼慢慢地就吃不到下一頓飯,重構就是洗碗。
技術債務不是寫得不好的程式碼:您編寫程式碼是為了反映您對問題的*當前*理解。如果這種理解是“部分的”,那麼您將承擔債務,即使如此,您仍會交付軟體(以瞭解更多資訊)。但是,您必須償還債務:您必須將新的知識納入軟體。
這就催生了兩個階段,第一個階段是你部分理解業務的程式碼,第二個階段是你償還債務納入新理解的程式碼,您必須滿足第一個緊迫的階段以後(先交付原型獲得客戶認可),才能獲得後續第二個階段所需的經濟資源(客戶肯定你沒有走錯方向,提供資源讓你繼續按照這個思路走下去)。因此,您需要做出戰略決策,為第一階段編寫次優設計。之後,您可以償還債務並在第二個階段之前改進設計。
關鍵是必須*償還債務。您支付的能力取決於程式碼的乾淨程度(因為您需要重構)。
- 乾淨的程式碼是技術債務的前提。
- 過度耦合的無法維護的程式碼庫不是技術上的負擔。只是一團糟。
但是,根據精益起步創業(Lean Startup)的方法,這種債務對於創業起步公司幾乎是強制性的。但是正如您所說,對於科技創業公司來說,有必要編寫簡潔的程式碼以償還債務。
對於開發人員無法消除的詛咒是:您只瞭解程式碼,但您卻很少是領域專家,因此當按期限要求時,您會假設有關領域的知識,但是這種第一性假設後來被證明是錯誤的...
獲得領域的經驗確實是一個挑戰,並且可以說是構建高質量軟體的關鍵之一。這就是為什麼人們喜歡強調領域域驅動設計(DDD)原因。
相關文章
- 技術債務真正的代價
- 技術債務之輪
- 什麼是技術債,為什麼要還技術債?
- 技術債務管理以及Firefox/Chromium的債務評價Firefox
- 技術債務(母雞的遭遇)
- 吐槽“技術債務” - morethancoding
- 我們來聊聊技術債務
- 理解「業務」與「技術」概念
- 用GC的策略,管理團隊的技術債務GC
- 應對 DevOps 中的技術債務:創新與穩定性的微妙平衡dev
- 對於雲技術的理解
- 是時候學習真正的 spark 技術了Spark
- 2021年,是時候把技術債務管理提上日程了
- 業務重要?還是技術重要?
- 建議將技術債務為科技財富 - incrementREM
- 技術債務:究竟讓你付出了多大代價?
- GSLB是什麼?談談對該技術的一點理解
- 趣文:用雞講解技術債務的形成過程
- 一個軟體開發團隊多少人合適? 大型團隊失敗是由於缺乏共識和溝通帶來的技術債務 -mfeather
- 這是阿里技術專家對 SRE 和穩定性保障的理解阿里
- 產品經理如何幫助減少技術債務 ?
- 技術債務讓51%的工程師考慮辭職 - venturebeat工程師
- 解決技術債務的花費:每行程式碼3.61美金行程
- 程式碼是債務,越少越好
- 對5G技術的一點理解
- 技術債 - 到底花你多少錢?
- SAP標準資訊系統是實施的真正技術目的
- 權威解讀什麼是技術負債? - martinfowler.com
- 職場 | 工作五年之後,對技術和業務的思考
- 對事務的理解
- 企業對ERP助企業轉型的作用缺乏理解(轉)
- 醫療人工智慧困局:技術成熟,缺乏立法人工智慧
- 實在RPA給你展示什麼是真正的OCR識別技術
- 業務勝於技術
- 正道的光之真正讓人佩服的技術
- 對網路即服務(NaaS)技術的期待
- 談談對搜尋技術Elastic Search&Lucene的理解AST
- SAP 業務技術平臺(BTP) Workflow(工作流)功能介紹