3 ms·
Software product used by client to optimise decisions for large scale construction project, to minimise construction cost (think: https://en.wikipedia.org/wiki/
by shoo 6y ago
Software product used by client to optimise decisions for large scale construction project, to minimise construction cost (think: https://en.wikipedia.org/wiki/Facility_location https://en.wikipedia.org/wiki/Facility_location ). Regression introduced into some of the algorithms used to make subtle but important optimisation decisions. Regression wasn't caught by QA process, review process or regression test suite[1]. From memory the defect ran in production > 1 year before anyone noticed and was used by client to make a bunch of sub-optimal construction decisions. Cost to client: estimated in seven figure range.
Software can create a lot of value when hooked up to directly optimise a real world decision process for a large project, but it can also destroy a fair bit of that value too.
[1] regression tests were expressed as file-diff tests, i.e. diff output against expected "golden" output file. This means that the tests were very non-specific and failed any time anyone changed anything that caused output to be altered slightly. Maintaining regression test suite was a lot of busywork for engineers, the test suite did not encode properties or invariants that were meant to be maintained by software, so engineers had to to make a judgement call if the new output was "expected" or not after their change to decision engine or one of the pre- or post- processing passes and then, if they decided the new output was "good", copy the "actual" output across to become the new "expected" golden output.