I'm keen on energy efficiency. Some would also describe me as a cheapskate (I'd sue 'em all if I could find a cheap lawyer.)
In our living room we have nice (cheap) pair of lined, M&S curtains with a (cheap) solar reflective blind hanging behind on the same hooks, which helps keep the room lovely and cosy in winter and cool in summer.
It's curtains for you
A less good part of my plan was to hang them on (cheap) plastic fittings, which are stressed to within a fairy's whisker of breaking point, so the gamboling of an innocent child (or my two, or their friends) or a incautious tug, can bring the pair down on you in an interesting cascading rupture.
So, given that I have knowingly left this fragile system in place, who should get shouted at when the curtains come down for the fourth time? The unfortunate who triggered the failure or the chump who set it up to happen and hasn't fixed it yet?
Apparently, if you regulate curtains, you pick one of the children at random, or possibly another one on the other side of the Atlantic, and threaten to extradite it and throw it in a hellhole prison until it confesses. Justice, that's what we'll call it!
Unit tests: we've heard of them
Regulators of financial markets would seem to want participants in the HFT (High Frequency Trading, aka High Speed Trading (HST) aka Low Latency Trading) markets to test their systems and show them to be robust, from unit testing right up to demonstrations of stability in the face of bonkers markets.
Which is great, though I can tell you from twenty years in the City, a chunk of the time as gatekeeper between quants (who work out how to price things and write the automated algorithms that play in the HFT shark pond) and the repositories and library releases for “stable code", that the quants don't much like writing tests.
It works in their head and the one spreadsheet that matters so needs no further testing, so they tell me.
I've had stand-up rows with quants for refusing to accept their code without one sensible realistic test case so not only can we know that it works now, but also so that it works next week on a new compiler on a new CPU, especially when someone (occasionally me) has optimised the life out of it.
And that's just the most basic level of test which no important subsystems should be without, but which I fear that many are.
My couple of stints in HFT in the City suggest that quants are much the same there as elsewhere in how much they enjoy setting aside time for Test Driven Development and all the rest, or not.
Emergent behavior, wobbly bridges
Tests of stability are fine, but just like London's Millennium Footbridge, designed and built by world-renowned experts and passing all applicable engineering and robustness guidelines, they may come to naught in the real world when mixed with other complex and robust entities, such as, um, people.
The bridge was basically fine but had an unfortunate and unsuspected resonance near enough walking pace (or a multiple/submultiple thereof) than when actual real people walked on it, it started to oscillate, forcing the people inadvertently into lock-step, and making it almost unusable, earning it the nickname "Wobbly Bridge" and resulting in its closure after only a few days.
You might like to see my dad explain the problem in a Science Shack TV programme (scroll through about two minutes, forty seconds to get to dad's part).
This unexpected interaction of complex but individually understood entities is known as emergent behavior and is common in many natural and technical systems.
Chuck in a little noise and speed, and chaos rears its ugly head.
Chuck in some technical glitches and known-broken algorithms on the day and some fun is sure to ensue, especially when other traders for safety automatically pull in their horns (withdraw liquidity and widen spreads or drop out entirely, at least briefly) when the market place appears bonkers (“disorderly”).