DOGE Plans to Rebuild SSA Codebase in Months, Risking Benefits and System Collapse
-
It's not a case of "seeing the code isn't perfect" but rather, not understanding the myriad problems the code is solving or mitigating.
I'm reminded of this shitshow:
https://en.m.wikipedia.org/wiki/2010_Queensland_Health_payroll_system_implementation
Queensland is a state of about 3m people in Australia. Their health service employs about 100k people. They ended up spending about 900m USD to develop their payroll software and fix the fuck ups it caused.
I'm an accountant by trade, there's a classic "techbro does accounting" style of development we see a lot. Like if you hadn't spent a career learning how complex accounting can be, it would be easy to look at a payroll system and conclude "it's just a database with some rules".
I've always known your world is complex, working closely with accountants and actuaries the last 4 years doing data applications further confirmed that, there's some legitimately complex math that shows up, and it's a lot of work to model that correctly.
"It's just a ..." Is a redflag to me, project's going to be a gongshow.
I find that mentality of not trying to understand the problem and its context totally counter to the engineering method.
-
"…but sir, we only know Node.js…"
Musk would probably think that's just fine.
Server-side javascript is an abomination, but there's more of it around than you might think.
-
COBOL is perfectly suitable for financial purposes for which it was designed. The SSA code has gone through decades worth of changes and improvements that cannot be replicated even in 10 years.
COBOL is perfectly suitable for financial purposes for which it was designed.
Nobody uses COBOL for greenfield projects, even in the banking and financial sectors. And, as people with COBOL expertise die of old age, it becomes increasingly unmaintainable.
-
This is like a new programmer coming in to their new job, seeing the code isn't perfect and saying they could rebuild the entire thing and do it better in a month.
Yeah, I've cleaned up the messes that idiots like that have left.
-
I've always known your world is complex, working closely with accountants and actuaries the last 4 years doing data applications further confirmed that, there's some legitimately complex math that shows up, and it's a lot of work to model that correctly.
"It's just a ..." Is a redflag to me, project's going to be a gongshow.
I find that mentality of not trying to understand the problem and its context totally counter to the engineering method.
Yeah, the "It's just a..." guy collapses into a fetal-position sobbing heap when you start looking at exception flows, rollbacks, compensating transations, and all the tweaks and tweezes that every workable real accounting system (or any other complex workflow) has.
-
This post did not contain any content.
riskingguaranteeing -
There are only two reasons softwares goes for decades without being replaced:
- It’s so unimportant that nobody uses it
- It’s so important that the last major bug was squashed 15 years ago
It’s so important that the last major bug was squashed 15 years ago
There are no such systems. What instead happens is that the surrounding business process gets distorted to work around the unfixed major bugs. And then, everyone involved retires and nobody knows anymore why things are done that way.
-
I don't think Rust is a bad language for doing same things people do with C++, but with a smaller standard and less legacy.
But yep, that's the kind of people.
About dinosaur things - I've started learning Tcl/Tk and it's just wonderful.
Tcl's small but, in its own weird way, almost perfectly formed. Seeing it mentioned after all those decades raised a smile.
-
COBOL is perfectly suitable for financial purposes for which it was designed.
Nobody uses COBOL for greenfield projects, even in the banking and financial sectors. And, as people with COBOL expertise die of old age, it becomes increasingly unmaintainable.
-
Musk would probably think that's just fine.
Server-side javascript is an abomination, but there's more of it around than you might think.
-
riskingguaranteeingIs it a “risk” if it’s the desired outcome?
-
It’s so important that the last major bug was squashed 15 years ago
There are no such systems. What instead happens is that the surrounding business process gets distorted to work around the unfixed major bugs. And then, everyone involved retires and nobody knows anymore why things are done that way.
I know devs like everything to be perfect, but if your business can work around it for 15 years without fixing the bug or replacing the system, I dare say it doesn’t qualify as a major bug.
-
COBOL is perfectly suitable for financial purposes for which it was designed.
Nobody uses COBOL for greenfield projects, even in the banking and financial sectors. And, as people with COBOL expertise die of old age, it becomes increasingly unmaintainable.
I bet is cheaper to teach it to new programmers than to rewrite old software. Just because a language is old doesn’t mean it is unlearnable or that software written in it needs to be rewritten.
-
I bet they'll do it in Waterfall too.
Nah B. This will be Extreme Agile XP with testing exclusively in Prod. Xitter will be the code repository.
I’d think they’d put the commits onto the blockchain.
-
This post did not contain any content.
Hey asshole - it works - don't fix it.
-
Non programmer but skilled with computers type guy here: what makes Java well suited for this?
This is probably an incorrect prejudice of mine, but I always thought those old languages are simpler and thus faster. Didn’t people used to rip on Java for being inefficient and too abstracted?
Last language I had any experience with was C++ in high school programming class in the early 2000s, so I’m very ignorant of anything modern.
I always thought those old languages are simpler and thus faster
They're neither necessarily simpler nor faster.
COBOL is simple, but outside its sweet spot, it can't do much. That sweet spot is high volumes of relatively trivial calculations, coded by non-superstar coders. It's moderately efficient because it doesn't do all that much.
Of the oldest languages still in use, FORTRAN has gone through a few generations of incremental improvements, and for complex mathematical calculations, it can be faster than shit off a hot shovel. But again, it's limited in scope, its data typing is lousy, its general-purpose programming capabilities are poor, and any integration you do with other systems is going to be a vision of hell. I still deal with a FORTRAN codebase on my job, there are some situations where it's still one of the least-bad options.
Then, the last of the surviving languages of that vintage is Lisp. It can be insanely fast, but despite its simple syntax and semantics, nobody would call Lisp programming simple. Accounting-system coders would recoil in horror.
-
Java can be pretty damn efficient for long running processes because it optimizes at runtime. It also can use new hardware features (like cpu instructions) without having to compile for specific platforms so in practice it gets a boost there. Honestly, the worst thing about Java is the weird corporate ecosystem that produces factoryfactory and other overengineered esoteric weirdness. It can also do FFI with anything that can bind via c ABI so if some part of the program needed some hand optimized code like something from BLAS it could be done that way.
All that to say it doesn't matter what language they use anyway, because rewriting from scratch with a short timeline is an insane thing to do that never works.
Yeah, Java can run maybe half as fast as equivalently complex C, while being far more maintainable. But to see that kind of performance, you'll want to use POJOs (plain old Java objects), not that enterprise bullshit. And there are many other optimization techniques that your average Java coder wouldn't see in their average coding job.
All that to say it doesn’t matter what language they use anyway, because rewriting from scratch with a short timeline is an insane thing to do that never works.
Schdule-driven development by people with no domain knowledge, with poorly understood requirements and life-and-limb-critical outcomes, led by an unpredictable moron. What could go wrong?
-
Hey asshole - it works - don't fix it.
Bring back lotus notes and the command line!
-
Node.js is a fantastic tool for web servers. Its event loop allows it to rival much lower-level languages in performance while remaining easy to write and maintain. JavaScript has been the most popular programming language for nearly a decade.
Well you need static types I assume, for code safety and all that.
-
This post did not contain any content.
I'm sure having a corrupt non-government narcissist rewrite the code for SS will be fine. It's not like he could leave any code hidden in there for his own purposes, like controlling or redirecting payments or anything.