I was reading a column by Nassim Nicholas Taleb in the Financial Times yesterday, where he lists “ten principles for a Black Swan-proof world”. You can read the whole piece here, or download the pdf from Taleb’s own site.
I couldn’t help noticing how striking the relationship was, between what he was putting forward for financial markets, and what we consider generally to be the principles of opensource and of good software development. So I decided to list each of his principles below, with brief comments in italics seeking to explain the same thing in a software context.
- What is fragile should break early while it is still small. Make sure you test early, test often, test small.
- No socialisation of losses and privatisation of gains. Opensource is pretty much predicated on this: “losses” are borne by individual contributors, “gains” are shared by all participants
- People who were driving a school bus blindfolded (and crashed it) should never be given a new bus. Opensource communities make use of tools like commit logs for this very purpose, looking at the prior contributions made by a participant before letting the changes in
- Do not let someone making an “incentive bonus” manage a nuclear power plant — or your financial risks. We’ve all seen what happens when incentives for technology staff are not aligned properly with business objectives. This is why the most important job of a CIO is “dial-tone”, reliable secure operations at an affordable price
- Counterbalance complexity with simplicity. Build software on a “high cohesion, loose coupling” basis
- Do not give children sticks of dynamite, even if they come with a warning. Make sure that the people who make software decisions actually have software experience
- Only Ponzi schemes should depend on confidence. Governments should never need to “restore confidence”. How many Linux ads did you see when Linux came out?
- Do not give an addict more drugs if he has withdrawal pains. Don’t cure proprietary-software addictions by giving people more proprietary software
- Citizens should not depend on financial assets or fallible “expert advice” for their retirement. Rely on something real. Code. Code is King. Not slideware.
- Make an omelette with the broken eggs. Again an opensource principle. Cannibalise. Reuse.
So what would happen if financial markets get run on opensource principles? Complete transparency. Open inspection. Visible track records. Compartmentalisation of losses, sharing of gains. Moderation not regulation. And yes, the capacity to “fork”.
[Update, with Tongue Firmly in Cheek: If the banking system needs to learn from the software industry, is the opposite true as well? Are we approaching a time when large software firms will need bailing out? http://www.infoworld.com/d/adventures-in-it/microsoft-asks-feds-bailout-720 ]