Why I Did Not Go To Jail
What I take from this story is that the financial law is so complex and unapproachable one can not reliably navigate it without landing in jail, even being a seasoned professional. The author's council could have given him "yes" answer as easily as "no" answer - many other lawyers obviously did since 200 companies got "yes" answers from their councils. And he'd never known anything was wrong. Basically, one can become a criminal not only without knowing he's doing anything wrong, but even without a theoretical way of finding it out - unless you survey all the lawyers you can find, you can not know if a yes from your lawyer would land you in jail or not, and you have no chance of understanding the law even if you spend years studying it - ultimately, the only thing that matters is the word of the enforcers on how they understand it.It's like living in the same apartment with alcoholic gorilla prone to random outbursts of violence. One day it eats too much of fermented fruit and you're toast. And you have no way of knowing when it happens. Maybe you'll get lucky and you'll be out that day. Maybe you won't.If I had code that is that bad and unpredictable and nobody knew if it would work or not except by seeking an opinion of a soothsayer which nobody can validate until it's too late, and it would be prone to random catastrophic failures which nobody can predict or find out why they happened, even seasoned professionals, I'd say not even refactor it. Just bury it and start from the design up again and redo the whole thing. That's pretty much the financial code we have now, as far as I can see. Good thing I have to deal just with segfaults and buffer overruns...