TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Managing Technical Debt (2012)

64 点作者 Fzzr将近 9 年前

7 条评论

vinceguidry将近 9 年前
Technical debt&#x27;s main difference from financial debt is that it can&#x27;t really be quantified, because it&#x27;s hard to really identify. Most software has a lifetime, initiatives don&#x27;t maintain economic value indefinitely.<p>At the end of that lifetime, the lights get shut off and the code mothballed, never to see the light of day again. At that point, the balance sheet hits zero and you never have to pay it back.<p>Software where this doesn&#x27;t happen eventually has the kinks filed away. Old Fortran codebases and the like have fixed maintenance costs and are worked on by savvy greybeards who are excellent at providing their own job security. Nobody wants to rock that boat, and nobody does. The greybeards are the ones who pay off the debt because it&#x27;s their livelihoods that get threatened by instability. Management just keeps happily writing checks, devoting their attention to squeakier wheels.<p>So it&#x27;s a tradeoff. Initial greenfield development by one dev or a small team eventually gives way to the bread-and-butter of keeping projects responsive to economic needs. What we call technical debt is really just architectural problems made both from inexperience, and from not specifying the requirements of the project well enough.<p>Decisions made by the greenfield team add to the friction that the maintainers experience in steering the ship. The problems need to be identified and corrected in the course of the maintenance. Unfortunately most devs are not really capable of remaining productive while fixing architectural issues, so management perceives this as prioritizing the needs of the devs over the needs of the business and so tend to balk at putting resources into paying off debt.
评论 #11979169 未加载
评论 #11977819 未加载
49531将近 9 年前
I worked on team once where tech debt was &quot;avoided&quot; at all cost. It actually had a weird effect on the code base. We had a practice of writing a pull request 3 times before shipping it, kind of refactoring everything before we merged it.<p>We ended up with a really complicated codebase as a result. It was tricky to dive into the project because everything seemed so layered with complexity.<p>Now a days I try to take the most naïve approach to a bug or feature, that way if something breaks it&#x27;s straightforward to fix. I only abstract when a process has slowed me down a few times.<p>This is all done with your normal tech debt fighting tools though, like linting, style guides, CI and unit tests.
评论 #11978321 未加载
评论 #11979451 未加载
评论 #11982251 未加载
评论 #11979082 未加载
SatvikBeri将近 9 年前
The problem with the &quot;debt&quot; terminology is that debt is actually fairly predictable and easy to manage. But bad code tends to have very volatile effects–often the cost of working with it is 0, and sometimes it&#x27;s enormous. &quot;Unexploded Land Mines&quot; might be a better analogy.
评论 #11979167 未加载
评论 #11978600 未加载
0xmohit将近 9 年前
Several points are fairly obvious but seldom practiced in the real world:<p><pre><code> Technical debt can be viewed in many ways and can be caused by all levels of an organization. Of particular importance is helping nontechnical parties understand the costs that can arise from mismanaging that debt. </code></pre> On a lighter note, as @sadserver says [0]:<p><pre><code> you cannot pay off technical debt with tears </code></pre> [0] <a href="https:&#x2F;&#x2F;twitter.com&#x2F;sadserver&#x2F;status&#x2F;723504636615778305" rel="nofollow">https:&#x2F;&#x2F;twitter.com&#x2F;sadserver&#x2F;status&#x2F;723504636615778305</a>
amelius将近 9 年前
My biggest problem with technical debt is that sometimes very simple things get really hard to do. And as a consequence it is really hard to explain to my boss (who can do a little programming himself) that it is so difficult. Ugh.
davidgerard将近 9 年前
One of my favourite technical debt essays is the one by Denise from Dreamwidth about how they cleaned up the LiveJournal codebase - suitable for non-technical readers: <a href="https:&#x2F;&#x2F;denise.dreamwidth.org&#x2F;57248.html" rel="nofollow">https:&#x2F;&#x2F;denise.dreamwidth.org&#x2F;57248.html</a>
ktRolster将近 9 年前
Technical debt is a code smell.<p>Refactoring happens sometimes, but if you are accruing technical debt every cycle, there&#x27;s a problem and you should spend your retrospective trying to figure out how to fix it.
评论 #12013719 未加载