top | item 23478175

(no title)

neocodesoftware | 5 years ago

"systems accrue debt" statement is thrown out but not supported

but two earlier statements could be used

1. management put up roadblocks for authorization to improve quality - keeping bad code longer

2. management rushed through bad code, more tech debt to fix later

i think this relates to joseph tainter's collapse complex civilizations declining marginal returns

re: 80 hours to add a text

there are declining marginals returns - yes because of complexity - but specifically because of total tech debt and increase of tech debt from at least the two points remy made

discuss

order

dredmorbius|5 years ago

The key offering here is a tangible metric for real costs: dedicated FTE positions.

The questions of what debt is, what systems are, and what systemic debt are, deserve deeper inquiry, I'll allow. The notion of techical debt's been floated going back at least to Ward Cunningham (http://wiki.c2.com/?TechnicalDebt), and strikes me as highly useful.

Obvious cognates to both financial and evolutionary systems. As well as, as you note, Tainter's work on complexity.

Another point I've seen increasingly made of late, particularly post-Covid19, is of the conflict between efficiency and resilience.

Other references:

Martin Fowler, TechnicalDebt https://www.martinfowler.com/bliki/TechnicalDebt.html

Wikipedia: https://en.wikipedia.org/wiki/Technical_debt

The Technical Debt Community: https://web.archive.org/web/20180718121933/http://www.ontech... (archive).

Numerous HN discussions: https://hn.algolia.com/?dateRange=all&page=0&prefix=true&que...

Reddit search: https://old.reddit.com/r/dredmorbius/search?q="technical+deb...

andrewflnr|5 years ago

> the conflict between efficiency and resilience.

I've been thinking about this a lot. It shows up in everything from mechanical devices to the global economy.

wpietri|5 years ago

To me, "systems accrue debt" is a consequence of three things: entropy, change, and learning.

Entropy is pretty obvious. Change is about the divergence between the system and the world it's reacting to. E.g., a payroll system that was fine in 1960 would not be fine today; our concepts of work and employment have changed significantly.

Learning is the most subtle thing for me. Knowledge is basically a ratchet: this year we know more than last year, and so on back. A software architecture that was brilliant in 1970 was outdated by 1980, and so on for every decade. As years go on, we learn more about good ways to build things, revealing previously unseen flaws in old systems.

One could argue that this concept of debt is unfair, that it's a moving target. That's true in some sense. But systems are things we create to improve the world, and the world was never going to sit still.

enriquepablo|5 years ago

I think that there is a distinction that is interesting to make here: human made systems vs natural systems. Human made systems have a source of systemic debt that natural systems cannot have, due to human errors. In the natural systems, "function" comes after "form" (we don't believe in natural teleology) whereas in human technology "function" comes before "form", and thus the "form" may be faulty.

I have always understood technical debt as the systemic debt derived from human error, but it is nice to see how it is indistinguishable from the systemic debt "naturally" acquired when the environment changes (and I think of civilizations as natural rather than human made systems).