pull down to refresh
How does a well-known bitcoin software accumulate so much tech debt?
In general for FOSS, by focusing on features and prestigious refactors and not taking enough time for the non-sexy work like following up on open items that fell out of your release cadence. I think it's fairly common in the bitcoin space as a whole and it makes things worse on top of the hidden debt that is (was previously) genuinely hard to find.
I think it's fairly common in the bitcoin space as a whole
I think it's fairly common in software engineering in general. I am certainly guilty of leaving TODOs behind for "later."
We all are. I think that if it comes to it, // TODO is still a better practice than writing it on a post-it or burying it in a Jira backlog. But you need to have someone that actually reads it, cares about it, and destroys it. Maybe, in lieu of anyone willing to spend the time, /debtinator could be a reasonable Claude skill.
it’s just hard for me to fathom because I worked for a large company where nobody’s funds were at risk… even still we would get torn apart for any TODOs in the code and had quarterly sprints to eliminate tech debt
I guess not every company has their coding standards sized appropriately for the consequences of getting it wrong
Does Blockstream get to put their name on something then excuse their responsibility because it's FOSS?
it’s just hard for me to fathom because I worked for a large company where nobody’s funds were at risk… even still we would get torn apart for any TODOs in the code and had quarterly sprints to eliminate tech debt
The large (not super yuuuge, but still NASDAQ listed) company I worked for, would act and say the same.
So devs stopped adding or deleted // TODO markers and added an item to the backlog instead (or not.)
Guess which backlog items never got enough prio to be tackled?
PMs got promoted for new shiny features and the ability to track an uptick in usage and associate it with the aforementioned new shiny thing.
There was no metric impacting promotion for improving code stability, reducing tech debt, or removing unused features / dead code. So that didn't happen.
In fact, it was almost the opposite: There was a metric for responding to and participating in "war rooms" when stuff broke. So we had more of those than PRs addressing tech debt.
I managed to sneak in a fair few fixes during my time there. But only because I valued my sanity more than my prestige for how I am handling outages during on-call stints. And my reviewers were happy that I'd tackle them so they, in turn, can spend more time on scoring points for a promotion.
Of course they have skin in the game. What a silly statement.
Why would they even want to deal with any of this?
'ligma' joke was funny in July 2018, not so much in 2026
I think it differs from place to place. I worked with some (mostly: non-bitcoin finance / telco industry) companies where removing tech debt was only second to fixing bugs, but there were many more cases where there wasn't any discipline around it at all. None of these were FOSS companies though, so they had contractual obligations (or in some cases, awesome "service" contracts where the customer pays for filing a change request or issue against your debt) and bottom line most were sensitive to avoiding damages and some were sensitive to recognizing that reputation damage is the worst thing that can possibly happen.
This was 1-2 decades ago. It won't fly now. You get breached, you just do a press release and move on.
Line 16+ of the CLN license is why it doesn't really matter what you ship in FOSS, because you waive all liability. This is also why as a party that has anything real at stake (think: reputation, so anything but startups), you can't just install CLN binaries (or Bitcoin Core for that matter) and yolo. It's a critical stage now though, where startups that matured over the years in some aspects of their business (mostly: growth) have not reciprocated that in the maturity of their processes, and all dev process is dead now. I feel like a dinosaur, so I probably am one. Ripe for extinction.
Good questions. Care to chime in @blockstream_official?
I'll add: What does keeping the source private afford operators, when the actors most capable of reproducing it aren't slowed by that at all?
Most of the critical issues are clearly called out in the source code with comments like TODO or FIXME
How does a well-known bitcoin software accumulate so much tech debt?
PeerSwap also had a lot of new releases lately. Is this pattern showing a hole in Blockstream's dev process?