預估利息
2008 年 12 月 10 日
技術負債是一個非常有用的概念,但它引發了一個問題:你該如何衡量它?遺憾的是,技術負債不像財務負債,因此很難說出你到底欠了多少(儘管我們似乎最近在衡量財務負債方面遇到了一些麻煩)。
這裡有一個值得考慮的想法。當團隊完成一項功能時,請他們告訴你他們花了多長時間(實際工作量)以及他們認為如果系統乾淨的話會花多長時間。兩者之間的差異就是技術負債的利息。(因此,如果他們實際花了 5 天,但他們認為如果系統乾淨的話會花 3 天,那麼你支付了 2 天的工作量作為技術負債的利息。)
這種技術肯定有一些嚴重的缺陷。在乾淨的系統上需要多長時間的說法是基於一個假想狀態的估計,因此很難做到客觀。捕捉這些資訊需要花費精力,而且很容易失控。但結果可能有助於以非技術人員看得懂的方式描繪程式碼庫的狀態。
此外,它還可能有助於決定是否支付本金。有些團隊喜歡將技術負債故事新增到他們的產品待辦事項清單中,並估計移除它們需要多長時間。此類技術負債故事也是估計,但也提供了累積了多少負債的畫面。你可以通過將估計的利息支付分配到這些負債故事中,讓估計的利息支付變得更聰明(因為 flipper 模組的狀態不佳,我在這個功能上多花了一天)。比較利息支付和本金可能有助於告知是否償還本金的決定。
我最近遇到一個人嘗試了一些類似的事情,發現它很方便,但這不是我經常遇到的事情。當然,這樣做有缺陷,但可能值得嘗試幾次。
更新:最近的討論提出另一種捕捉預估利息的方法。在回顧(明智的團隊在每次迭代結束時進行)時,針對系統的每個問題領域捕捉支付的利息預估值。針對最近完成的工作進行此預估可能會比針對未來故事的前瞻預估更容易。