System Resiliency: Lessons from Biology

I like to listen to podcasts while I run. Today I was listening to the Scientific American podcast. This one was interviewing the authors of an article called Building a Resilient Business Inspired by Biology. I’ve always been sympathetic to the idea that biological systems are worth studying as a way to inform us in the area of software design.

The authors talk about 6 lessons that are derived from successful biological systems. The thrust of the article is to inform the design of businesses but I think they apply just as well to software systems:

  1. Redundancy
  2. Heterogeneity
  3. Modularity
  4. Adaption
  5. Prudence
  6. Embeddedness

The reason I’m writing this is because it linked up with a Politico article my sister sent me this week about the VistA medical records system used by the US Veterans Administration. VistA is one of these types of systems that has been around forever (40 years, which is an age and a half in software terms) and has spread well beyond its original confines in the VA. It is tremendously successful by any standard but it is also hated by most of its users/maintainers. Everyone wants to replace it, but nobody has been has been successful thus far.

VistA came into being because lower level developers at the various VA facilities decided to just solve the immediate problems they had locally. They spread the word about what they were doing through back channels and others joined the effort. A textbook example of emergent design. VistA just evolved into existence. I think it also exhibits all of those 6 properties from the SciAm article.

I don’t think it’s really possible to replace systems like that, at least not without tremendous disruption and expense. They best you can do is attempt to direct their evolution.