computerweekly.com/news/252475310…
Is a timeline for the Horizon IT/UK Post Office bug that sent 550+ people to bankruptcy or prison for thefts they did NOT do. I'm going to try to figure out what was going one but someone might have to school me more:
IT IS A MASSIVE PIECE OF CRAP RUNNING ON A MAINFRAME USING COBOL.
A mainframe and COBOL contributed to the 2008 banking collapse, and I know 'cause I worked in IT at Bear Stearns then.
You remember the COBOL?
bbc.com/news/uk-291308…
Has this quote:
"equipment was outdated, and that power cuts and communication problems made things worse."
Remember that COBOL Mainframe? It was designed under the old idea of "network" where everything was in one giant building and constantly connected.
But, these are not.
The Horizon IT system is coded based on the idea that this never happens, that connection is always there.
20 sold -> sub-contractor
[[[power out/no connection]]]
30 sold
50 sold
[[[power on]]]
50 sold -> sub
50 sold -> sub
200 sold -> central office
That gives 80 missing in sub's system, and that's a lot of money.
TERRIBLE COBOL MAINFRAME IS TERRIBLE TO USE.
I could do a whole thread on why people think mainframes are for money, but I'll stay on topic for now.
bbc.com/news/uk-englan…
And interesting common thread is:
They're all way out in the middle of nowhere. Mostly remote small towns...with unreliable power and internet.
Problem is, I'm betting the problem was *way* worse, but only people in remote rural areas had massive losses and convictions.
These few people were hit with 10-100k losses and convicted of theft or fraud, served time, and had to pay it all back.
HAHAHAHA IT'S COBOL PEOPLE. THEY COULD NEVER WRITE THIS CODE!
That's to change 1 screen.
I call it the Boomer Finance Guy Stack:
MAINFRAME
COBOL
CICS
TERRIBLE C#/JAVA WEBSITE BOLTED ON
If Horizon assumed constant connections then another possible error is when a lotto machine comes back online it doubles the previous transactions, that script might be:
2. Power goes out, so lotto can't report to Horizon.
3. Power comes back on, lotto reports the 20 pending transactions.
4. On the next Horizon update cycle, horizon asks lotto for its transactions.
5. Horizon then *double accepts* the 20.
GET ON THAT COBOL BLOCK CHAIN WANTREPRENEURS.
(I joke but this would actually probably solve a lot of problems.)