POSTS

Parag Khanna's Connectography and Refactoring by Martin Fowler

Blog

[Khanna suggests][prev] that the over-large nation-states of the 19th and 20th centuries - many of which were created by the fiat and bureaucracy of the British Empire or other colonialist machinations - be “refactored” in line with the “SOLID” software design principles. In this post I take the SOLID principles and try to transform them into the language of national identity establishment.

SOLID and Refactoring

In my [previous post about “Connectography”][prev] I noted that one of Khanna’s Big Ideas is that:

Many nation-states are held together by fiat or tradition but have no real internal attraction to one another: we should let these break apart or break them apart e.g. Iraq, Yugoslavia.

As a programmer I knew exactly what Khanna was saying. How many times did I, as a beginner in object-oriented programming, allow a class to stand unchanged because its functions had “always gone together?”

I began steering away from those negligent practices when I learned the [SOLID principles][SOLID] listed by “Uncle” Bob Martin. These five simple dicta set a new bar for how (new) code ought look. But how to go about fixing the historical messes? For that, I read Martin Fowler’s book [Refactoring][] where “refactoring” is described as:

…a controlled technique for improving the design of an existing code base. Its essence is applying a series of small behavior-preserving transformations, each of which “too small to be worth doing”. However the cumulative effect of each of these transformations is quite significant.

Source

Having learned from both of these inspirations I was able to methodically pull apart complexity and limit its creeping in. So in software, so, too, in nations.

SOLID Applied to Nations

SOLID Principle Connectography Application Principle Explanation
Single Responsibility Principle Single Identity Principle A nation should have only a single identity
Open / Closed Principle Open / Closed Principle Open for competition, closed for bad investments (war, science-hindering, education under-investment)
Liskov substitution principle Liskov Subsitution Warning Any competitor or client supporting the same trade position as you can be swapped for you.
Interface segregation principle Identity segregation principle "many identity-specific interfaces are better than one general-purpose container”
Prefer "Exampleistan" to "Exampleish regions in X, Y, Z"
Dependency inversion principle Dependency inversion principle Create dependent vassals by providing into them versus extracting capital from; being a broker of infrastructure and a provider of trade, nations can scalaby project power where military usage has become / will become crippling to GDP; further, competitors will take advantage of your misallocation to outcompete you (e.g. US and China)

What’s interesting about this is that the refactoring “Interface Segregation Principle” is largely a consequence of the “Single Responsibility Principle” in code. The same is true when applied to forming nations. Ultimately Khanna is proposing to give to nation-states the benefits that are provided by well-constructed, object-oriented programs:

  • Modularity: Things with the same interface can be swapped for one another
  • Internal Privacy / Data Hiding: Internals are not the business of external collaborators and they ought collaborate by means of trade versus breaking your boundaries (invasion, cloak and dagger)
  • Small(er), graspable levels of complexity
  • Smaller, localized failure domains e.g. Byronistan routes oil in via Exampleistan and Derpistan. Derpistani separatists seize the pipes used to route oil. Exampleistan increases flow to Byronistan. Derpistani separatists lose their leverage and Examplistan’s munificent leaders are rewarded by profit on increased demand. The separatists and the Derpistani leadership either suffer the trade freeze-out or come to terms. Long-term Derpinstan’s trade will be impacted such that they must proffer a lower price to accommodate for the historical risk premium (not dissimilar to a credit rating).

Aside

I wish there were a meta-archive which recorded “Just Really Good Big Ideas” many of the architecture concepts that made for scalable housing and modernity turned out to underlie the SOLID principles of software design and, now, it seems, “nation refactoring.” Humankind into could probably be helped immeasurably after a civilizational crash with such a compendium.

Refactoring the Globe: SOLID designs and the Metric System! [prev]: /blog/2016/05/31/read-parag-khannas-connectography/ [SOLID]: https://en.wikipedia.org/wiki/SOLID_(object-oriented_design)