Hacker News new | past | comments | ask | show | jobs | submit login
Principles of Antifragile Software (docs.google.com)
35 points by agumonkey on Aug 17, 2014 | hide | past | favorite | 43 comments



Anti-fragile has some great objectives. However they're still firmly in the realm of "science" and have yet to make the transition to "engineering". As such my interest is academic.

Practically, I remain a fan of recovery-oriented computing [1] - reducing the impact of harmful events, like Bohr- and Heisenbugs, amongst others.

In recovery-oriented computing a Bohrbug, being mostly deterministic and easy to detect, would spawn an urgent alert. Conversely, a Heisenburg enters probation in that execution (or the execution path) is re-attempted. If that fails the app is re-started. If that fails the machine is re-started. If that fails the machine is re-imaged. If that fails the machine is removed form the farm. Automating this process is not easy (especially for desktop/native apps, which is a big part of what I do), but the concepts are (to me) good to strive for.

[1] http://roc.cs.berkeley.edu/


I've never hunted, nor hunted with dogs.

I am not a hunter. My experience of hunting consists of reading Tolstoy and a rather unfortunate encounter I had with a squirrel when I was 10.

But as I understand it, there's a sound dogs make when they've picked up a scent and are after game. It excites the rest of the hunting party. The chase begins!

I get this feeling in the tech community when we're talking DevOps, XM, and anti-fragile software. I can see it in this paper. We're nowhere near where we're going to end up, but the principles are in place and the community is justw sorting through them to get to the destination. There's some really cool stuff out there, and the next decade or so is going to be a blast.


Quote from Greg Maxwell, Bitcoin core dev: "I hate it when people call Bitcoin anti-fragile. It's not anti-fragile, when it breaks I have to fix it!"

Software systems, in which the term "system" includes the humans constantly monitoring, fixing, and improving them, may be anti-fragile, but we probably won't have true anti-fragile software until we also achieve strong AI. Till then it's just robust, or perhaps adaptively robust, at best.


I think the anti-fragile concept applies not to the codebase, but the processes and ecosystem surrounding it (users, devs, communication tools, social dynamics). Software is best modeled as a living thing intertwined with humans, not just the current snapshot of its source code.

For instance, a web app with a public bug tracker is more anti-fragile than one without. I've also heard strategies of making errors and warnings public on production, so that problems stick out like a sore thumb, and get fixed more quickly. (Obviously, this isn't a good idea in all cases.)


Can we go back to using the word "robust"?

Neologisms and jargon are anti-good.


Anti-fragile and robust are two different concepts as defined by Nassim Taleb. Anti-fragile software is exposed to low level stress, and evolves to survive it. Robust software is a static snapshot.

http://bahmutov.calepin.co/review-antifragile-by-nassim-nich...


It's learning from errors and failures or evolving or self-correcting.

The only real function that neologism serve is to ensure that there are several pages to fill with easy writing about examples of things that are robust and things that are fragile. Really, when reading about concept of learning from mistakes (or in case of software self-correcting) not many would find examples of fragile things interesting. Just because you are defining neologism which have perfectly good equivalents already doesn't make it any more compelling. You just fill paragraphs with boring fluff and make reader wonder why the hell you are not jumping to the point already. This is unfortunately also visible in the paper from OP as, following Taleb, about half of it is concerned with giving murky definition of completely redundant term and then telling the reader what it is and what is it not with numerous examples.

The author would do well to remove all the references to anti-fragile and Taleb and substitute those with some history of self-correcting software. Maybe try to research who first wrote about it or tried to construct working code. You know, like some information and background about the concept instead of redefining it and then doing a session of mental masturbation over it.


Self-correcting isn't quite the right term, though it's closer than robust. Something antifragile won't necessarily self-correct if left alone.

Instead, antifragile refers to something that improves when subject to disorder and shocks.

It's a new word for a concept we can understand, but have no word for. Lacking a word for something severely impairs our ability to talk about it.

To validly criticize the word, one should first show that they understand what's meant by it, and propose an existing term that captures that. None of the critiques in this thread have done that.


To use an analogy, it sounds roughly like the distinction between adaptive and innate immune systems in vertebrates.


Regardless, 'anti-fragile' sounds horrible. I think that resilient is a better word for the job.


The concept is distinct from resiliency. It is the idea of a system that actually benefits from small amounts of stress or entropy. One example Taleb gives is bone: the micro-fractures created by the normal stresses of standing and walking force the bone to grow stronger; whereas astronauts in prolonged zero-G are at risk for gradual bone loss due to the lack of this stress.

That said, it's probably not the best word, but the realities of path dependence make it very difficult to coin new words out of whole cloth. An equally arbitrary neologism like "hyper-resiliency" would have probably made just as much sense.


Might I suggest "hormetic", which comes from similar hypotheses of biological processes?

E.g. the idea that low levels of radiation might even be beneficial overall by forcing your body to continuously use strong healing mechanisms is known as radiation hormesis.


It may not be as "sticky" to laypeople, but that's a super-cool word, thanks for sharing!


In my understanding, robust systems know how to deal with failures, while anti-fragile gain energy with failures.


This is correct. We didn't have a word for it before. Robust is not the same thing as antifragile.

Those criticism the term should first say either:

  1. What existing word means the same as antifragile, or
  2. Why they think robust is equivalent to antifragile


Coining a neologism is an act of linguistic imperialism that helps to link your identity and body of work -- as originator of the neologism -- to a field.

It's worse in some scientific fields than others. I spent a lot of time studying emergence, oh wait I mean complexity, oh wait I mean dissipative structures, self-organizing systems, class IV cellular automata, dynamical systems, chaordic systems, oh screw it. It's really bad in that field.

Things whose parts give rise to second-order behaviors that are not obvious from the structure of the parts themselves.

Yeah that.


Especially those created by hacks like Taleb, who rose into prominence by devoting a whole book to "unpredictable" events, full of trivial observations and repetition.


It's kind of offtopic, but I can't help feeling a bit relieved that I'm not the only one who read this highly recommended book and got increasingly confused how this heap of triviality and self-congratulation managed to be so successful. Taleb certainly out-gladwelled the other contenders in this category.

I am convinced the success of this book can't be due to completely organic factors (at least that's what I hope), but it's here now and however derivative and trite Taleb's contributions to the subject matter might be, he managed to claim ownership for the entire field.

The result is it becomes impossible to publicly talk about robustness and fault tolerance without invoking him. If you as an author steer around him, someone from your audience will bring it up and it will be much worse than if you had included the mandatory nod in his direction right from the start.

The book has also managed to create a somewhat fertile ground for the subject in lay people and it seems wasteful not to capitalize on that basis when addressing a group of people.

So yes, I expect this book will be referenced as the gold standard for the rest of our lifetime.


What did you even manage to say? I've been waiting for a legitimate critique of him for a long time. There's hardly ever been one. All anyone manages to say is the same inflammatory garbage.

Why not hit the technical papers and get straight to it? Oh wait. Because then, you would have to fight some combination of Doudy and his esteemed co-authors. Which are many.


I agree with what you say, but you could have worded it less insultingly. I suspect it would be more persuasive. In any cases, such comments don't really fit with the tone of Hacker News.


I think within the context of civilized discussion your style borders on abuse. Do you really expect people to engage with you after comments like this or are you just letting off steam?

Clearly you have supporters, otherwise you wouldn't be doing it. However, are karma points enough for you? If not, you should tone down your insults somewhat.


> I think within the context of civilized discussion your style borders on abuse.

I don't have a dog in this fight, but you're replying to this comment in a thread that contains a literal unsourced accusation that Taleb was a "hack".

In fact, you replied to that comment. Where was your sense of propriety about the level of discourse expected on HN at that time?

On that note, is "out-Gladwelling" someone intended to be civilized or insulting to Gladwell?

eruditely's comment was certainly abrasive, but I don't see how it was substantially different from other such "unparliamentary" language on this thread.


Well, the thing is Gladwell and Taleb are neither on HN, nor on this discussion. So one can be a little tactless against them. Not that describing a writer as a "hack" or his book as "out-Gladwelling" was intended as an actual insult anyway. It's just a blantky put negative accessment of the nature/quality of their work.


Taleb's earlier "Fooled by randomness" is one of the few books that changed my life.

However, Antifragile was not a good book. Taleb is too angry now, his ego too big and the ideas are not new.

For something to be anti-fragile, on needs selection and evolution, or at least non catastrophic failure and then the possibility of feedback.


I too have had this impression.

For a long time I've been very curious about how this kind of king-making occurs and what the underlying political machinery looks like. I don't buy that it's random or organic.

Being a middle class hick from the American Midwest and having attended a regular-tier non-coastal school, it's a bit outside my domain... though I did live in Boston for a while and work a lot around the MIT/Harvard orbit. That gave me a definite sense that there's a caste system at work but not exactly how it works or how one goes about gaining entry (or is tapped for entry). Being admitted to the Right School seems to usually be a prerequisite, though there are exceptions.

I'm not saying Taleb is a fool. He's certainly very interesting, but he's not the only thinker in this field by any stretch of the imagination. People have been talking about this stuff since back in the 60s when it was called cybernetics. Then they called it complexity, dynamical systems, evolvable systems, and so forth. Taleb might have added some things, but he did not found the field any more than Stephen Wolfram founded the study of cellular automata.

I'm not comparing Wolfram and Taleb. Actually I think they're opposites. Wolfram has a lot of money and a big ego (probably bigger than Taleb's), and he certainly is very smart, but his work doesn't seem to have received the nod of the establishment while Taleb's obviously has. Wolfram is more like a tycoon trying to buy his way into a circle that... well... <sniff sniff>... those who are truly in the club would never stoop that low.

Who makes these decisions?

If you look at Taleb's background, he certainly has gone through or at least been affiliated with all the right schools. The top-tier (Ivy League if you're in the USA) academic network is (in my opinion) the most powerful aristocratic network in the modern world.

http://en.wikipedia.org/wiki/Nassim_Nicholas_Taleb#Academic_...

I think what fascinates me the most about the aristocratic networks that run through the top-tier universities and their corporate and governmental orbits is how silent they are. You can make kings with millions in paid PR too, but that's noisy and conveys at least some impression that the PR is indeed being "driven." The real power networks of society seem able to make kings with a wink and a nod and it looks completely organic, often giving the impression that these individuals rose to prominence on pure merit and hard work.

Again not saying these individuals don't have merit or that they don't work hard-- I'm sure they do both. But so do millions and millions of other people, and they never get the kind of success the "tapped" or "knighted" see.

P. S. You'd probably find Peter Thiel interesting. He's known for being a skeptic of the whole "fooled by randomness" line of thinking. Search for his name on YouTube and select ">20 minutes" length and you can find many interesting talks. I'm looking forward to his book:

http://www.amazon.com/Zero-One-Notes-Startups-Future/dp/0804...

I don't always agree with Thiel, but even when I don't he's one of those people who always makes me think.


He sent an early copy to Taleb to get his review. Your point is nulled.

"“When a risk taker writes a book, read it. In the case of Peter Thiel, read it twice. Or, to be safe, three times. This is a classic.” - Nassim Nicholas Taleb, author of Fooled by Randomness and The Black Swan

Just to point to you, you seem to mis-characterize him as saying "Everything is random!" Here is a complete quote.

"The point we will be making here is that logically, neither trial and error nor "chance" and serendipity can be behind the gains in technology and empirical science attributed to them. By definition chance cannot lead to long term gains (it would no longer be chance); trial and error cannot be unconditionally effective: errors cause planes to crash, buildings to collapse, and knowledge to regress.

The beneficial properties have to reside in the type of exposure, that is, the payoff function and not in the "luck" part: there needs to be a significant asymmetry between the gains (as they need to be large) and the errors (small or harmless), and it is from such asymmetry that luck and trial and error can produce results. The general mathematical property of this asymmetry is convexity (which is explained in Figure 1); functions with larger gains than losses are nonlinear-convex and resemble financial options. Critically, convex payoffs benefit from uncertainty and disorder. The nonlinear properties of the payoff function, that is, convexity, allow us to formulate rational and rigorous research policies, and ones that allow the harvesting of randomness."

http://edge.org/conversation/understanding-is-a-poor-substit...


> I suppose random king-making could be an example of just the kind of black swan events he talks about.

I feel reminded of the George RR Martin quote that "chaos is a ladder". I don't think the rise of Antifragile is a truly chaotic event though, it's largely due to whatever the opposite of the Black Swan idea should be called. I guess the words to use would be planning and brute force...

> Is it really organic? I'm skeptical of that. I suppose it's possible...

Initially, these things are probably orchestrated by influential PR connections. It can't be entirely predetermined, but I guess some careful research was done to map out the pop-intellectual vacuum where this book was going to position itself.

What really put me off was the arrogance with which he casually claims to be the first one to understand what would have to be pretty old concepts in chaos theory, risk management, and engineering. However, I think it's also a clue that he knew exactly what area he was going to successfully claim ownership of.

My guess is this book was helped along massively from the outside, but how ever that came to be, at some point the critical mass was reached anyway. By now it doesn't really matter anymore except to a few of us (including me) who bemusedly like to analyze how things are expertly steered by powerful forces.

The point is, no matter what my personal feelings about the book and its heritage, it's now the reference everybody has to use when addressing a whole slew of things. Which makes it required reading. Which perpetuates its authority.


Yeah, this sort of "takeover of a field" infuriates a lot of people. I know Wolfram got a ton of flak for implying in A New Kind of Science that he basically invented the study of CAs. He didn't.

Like I said: what Taleb is talking about was talked about under the name "cybernetics" in the 60s and "complexity" or "chaos theory" in the 90s.

It was a major field of interest for me when I was a student, and the more I think back on it the less I think "antifragile" is anything more than a vapid neologism for ideas that have already been out there.

Here's some rough synonyms for antifragile from days gone by: autoadaptive, evolvable, autoconstructive, chaordic, etc. I think autoadaptive is the closest, basically a perfect synonym.


Well, the positive aspect in these cases is that worthwhile concepts are disseminated more broadly.

It's interesting that you mention Wolfram in this context. I remember the criticism he received for his book, most of which probably justified. I also remember I liked reading it, in contrast to Antifragile which felt in equal parts tedious and frustrating. Of course I was comparatively young at the time and many of the concepts in it were new to me, but now even in hindsight I still like his presentation and his viewpoints.

While on a fundamental level Wolfram, Gladwell, and Taleb may all three technically be in the business of claiming ownership to pre-existing ideas, A New Kind of Science still holds a lot of memorable nuggets for me, while after most chapters of Antifragile I honestly couldn't tell whether I had just consumed any actual content or not.

I still hold that Wolfram's book contains vastly more intellectual workmanship than Taleb's, but it may well be the case that Antifragile seemed extra trite because I felt a strong sense of deja vu where A New Kind of Science simply contained immeasurably more (fascinating) stuff I wasn't familiar with.


This is the sort of critique in pass that demonstrates that you have not spent 10 minutes researching a topic that you would like to so vehemently critique. Read the italized parts below, which explicitly states it is Not chaos theory.

Here is a more complete quote from "Common errors in the interpretation of the black swan"

Many readers who have too much baggage (or perhaps not enough) tend, when reading for "work" or for the purpose of establishing their status (say, to write a review), rather than to satisfy a genuine curiosity, to read quickly and efficiently, scanning jargon terms and rapidly making associations with some pre-packaged ideas. (THIS RESULTS IN THE SQUEEZING in the squeezing of the ideas exposed in The Black Swan into some commoditized well know framework, as if I partook of the off-the-shelf-re-warmed-ideas-with- some-new-wrinkle traditions that give a bad name to academia, or as if my positions could be squeezed into: standard skepticism, empiricism, essentialism, pragmatism, Popperian falsificationism, Knightian uncertainty, behavioral economics, CHAOS THEORY, etc.

http://papers.ssrn.com/sol3/papers.cfm?abstract_id=1490769

So by his own words, it is not.

Autoadaptive does not work as well because Antifragility, which was prior to the name-change was called tinkerng. It is more "Convex option like decision making"


>So by his own words, it is not.

"By his own words" is probably the worst way to define what a man or a work is.

Of course he would say his work is original and not derived. Just like any snake-oil saleman will speak of his amazing medicine...


It's also not chaos because because it's not(!).

Mandelbrot had a lot to do with that era/chaos theory and was associated with it, him at Taleb were good friends. Do you think it's as simple as that? Why doesn't some one post something legitimate as opposed to trying to catch some offhand remark that I didn't fix as opposed to trying to desperately nitpick.


His books are for laymen, it's worth reading his immense technical compendium before passing judgement on his ideas and style.

http://papers.ssrn.com/sol3/papers.cfm?abstract_id=2392310


He is vindicated already, it's time to move on.


"You've reached the bandwidth limit for viewing or downloading files that aren't in Google Docs format. Please try again later. You can also try to download the original document by clicking here."


Downloading the original works just fine. Here's the URL:

http://arxiv.org/pdf/1404.3056 (PDF document)


I had blogged about Antifragility from an engineering perspective last year. Glad to see this is getting attention.

http://muratbuffalo.blogspot.com.tr/2013/06/antifragility-fr...


A closely related thing:

If you're designing a programming language implementation, explicitly randomizing implementation-defined operations makes a whole lot of sense. It trades dev time for debug time, and in general fixing bugs during initial development is a whole lot easier than fixing them after-the-fact.

For example, a robust hashmap might randomize the order of iteration over elements 1/2 the time, or a robust priority queue might randomize the relative order of elements with the same priority. Or even randomly changing the order of evaluating function arguments. Or a function with a callback that is defined to potentially be called multiple times (distributed systems, etc) might explicitly call the callback a random number of times.

It might make more sense to only do some of these on debug builds.


Please, find a language where such behavior is a matter of library.

http://en.wikipedia.org/wiki/QuickCheck


Well, Go has (limited) randomization of hashmap iteration order.


There's work in the area of genetic algorithms and evolutionary computation that might be applicable:

http://www.kgi.edu/Documents/IEEE.pdf


Whenever I do my PHD, it will revolve around fourth quadrant ideas especially in this domain. I just need to compile all the research that has been done and get to work.

Glad to see this is getting the attention it should.


Etsy practices continuous deployment with whole swaths of code that weren't built using TDD. Using automated monitoring of measurements[1] affords some of the same confidence as automated tests. It's worth saying that having tests and automated monitoring builds even more confidence.

[1] http://codeascraft.com/2011/02/15/measure-anything-measure-e...




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: