←back to thread

628 points xbryanx | 5 comments | | HN request time: 0.845s | source
1. RedShift1 ◴[] No.44531557[source]
What was the actual bug in the software that caused the accounting errors?
replies(2): >>44532667 #>>44538604 #
2. renewiltord ◴[] No.44532667[source]
From the wording of the description of the programmer who failed to debug and labeled it user error it appears that it is fairly typical Accenture-grade software where there is no single bug so much as the program itself approximates the correct result.

Their data model appears to have been akin to having a single accumulator sum up things rather than to use something like double-entry bookkeeping or an account graph so that the source of errors could be traced.

It’s less “a bug” and more a coincidence that the application worked when it did.

replies(1): >>44535349 #
3. RedShift1 ◴[] No.44535349[source]
So the errors could be down to using floats instead of decimal types?
replies(1): >>44535964 #
4. renewiltord ◴[] No.44535964{3}[source]
It could be that. It could be that they just have separate code paths for measuring "amount in" and "amount reported" with an if-clause missing in one and present in the other. From the description the debugging programmer provides, it doesn't look like they had any sort of coherent design.
5. wolfgang42 ◴[] No.44538604[source]
The judge’s report[1] lists twenty-eight different classes of failure, including:

- Confusing and buggy UI causing clerks to duplicate or mis-enter transactions

- Inventory getting “stuck” in branches after the product was discontinued; the attempt to remove it hid the inventory but caused its value to reappear on the books again each accounting period

- Failing touch screens entering spurious purchases overnight

- Incomplete rollback of distributed transactions

- Byzantine failures during hardware replacement causing multiple transactions to be assigned the same ID and overwrite each other

- Fujitsu employees with unaudited write access to the production database making one-off modifications

- The point of sale system simply telling the clerk to give too much change back to the customer

There’s no “one bug” here; the main failure was that those responsible continued to dismiss any problems as users being either in error or outright malicious, despite massive amounts of evidence that the system had technical flaws. Better quality software would have reduced the problems, but no system is bug-free and in many cases very little effort was made to identify the root causes of problems, much less to prevent similar ones from happening again.

[1] https://www.judiciary.uk/wp-content/uploads/2019/12/bates-v-...