Software Development Detox Part 4: Tribal Computing
One of the absolutely most heinous types of software intoxication is what I like to call Tribal Computing. This is the form of computing that is tied in with the primitive, proprietary setup and is a remnant of the old days of early adoption of computing by the businesses.
Ontogeny recapitulates Phylogeny
Ernst Haeckel (a German natural historian) wrote in 1868: “Ontogeny, or the development of the individual, is a short and quick recapitulation of phylogeny, or the development of the tribe to which it belongs.” (in this context, ontogeny is the development of the fetus, and phylogeny is the evolution of a species). Haeckel was referring to the way the fetal development of mammals seems to parallel the evolution of all life on earth. The fertilized mammalian egg first resembles a single-celled amoeba, then a multi-celled sponge, then a jellyfish, then an amphibian, then a reptile, then finally becomes recognizable as a mammal.
Applied to the field of computing, one could say that the development of computing seems to parallel the development of human society. At first, the society was segmented into small primitive tribes, which slowly evolved into larger units, such as cities, counties, provinces, regions, countries, nations, and so on.
We are today standing on a threshold of global computing (i.e. the web). But, in certain ways, we still seem deeply entrenched in the primitive, stone age world of tribal computing.
Think Locally
Most software in operation today is severely localized. Meaning, it was built to live on a single box, single CPU. Everything about it is very closed, very proprietary, and extremely local.
Some software allows for certain level of connectivity, whereby other software systems are given an opportunity to connect to the localized software and share/exchange some information.
Only the latest, most recent batch of software products (the so-called social software) has left the world of tribal computing and is reaching out to the global computing space.
Control Locally
Most tribal software was/is built with an engineering frame of mind. Whenever we approach building something with an engineering outlook, we are striving to introduce maximum level of control into the system.
One of the most detrimental side effects of building software with an engineering slant is the temptation to retain the state of the conversation. As we’ve seen in our first installment (State), the best way to create brittle and buggy software is to insist on retaining the state of the conversation that had transpired during the operation of the software product.
In addition to that, insisting on staying local (i.e. tribal, single box, single CPU etc.) means that the point of control also stays tribal. There is a single authoritative instance that claims to know everything and that controls what can and cannot happen on the system. That instance then becomes a single point of catastrophic failure.
Relinquish the Control Globally
In contrast, non-tribal software exhibits stunning capabilities for growth thanks to relinquishing the rigid engineering attitude. One of the fundamental reasons why web is such a spectacularly successive computing platform lies precisely in this abandoning of the tribal past and moving beyond the need to control and retain the state of the conversation.
By deciding to not care about the state of the systems engaged in the conversation, the non-tribal, globally oriented software is free to grow in any direction and to scale to any level of complexity.
We will see in the next installment what are the most optimal ways to achieve that level of robustness. Stay tuned.
April 8th, 2008 at
静电放电发生器
不看好这个
April 8th, 2008 at
恒温振荡器
文章写的不错啊?
April 8th, 2008 at
空气净化
不看好这个
April 8th, 2008 at
玻璃比色皿
文章写的不错啊?
April 8th, 2008 at
分析仪
文章写的不错啊?
April 9th, 2008 at
笔式PH计
有道理,支持!
April 9th, 2008 at
排针
好有趣啊,呵呵!
April 9th, 2008 at
压力校验仪
好文章,值得收藏!!
April 10th, 2008 at
日本FSK水平仪
好有趣啊,呵呵!
April 10th, 2008 at
LCR电桥
好有趣啊,呵呵!
April 10th, 2008 at
管道油泵
楼主说的确实对我很有用,多谢了!
April 10th, 2008 at
双辊破碎机
不应该是这样的吧?
April 10th, 2008 at
磁性液位计
有道理,支持!
April 10th, 2008 at
隔离器
不看好这个
April 11th, 2008 at
椭圆偏振光谱仪
好文章,值得收藏!!
April 11th, 2008 at
双金属温度计
文章写的不错啊?
April 11th, 2008 at
射频连接器
好文章,值得收藏!!
April 11th, 2008 at
热变形维卡温度测定仪
好文章,值得收藏!!
April 12th, 2008 at
噪音计
有道理,支持!
April 13th, 2008 at
模拟振动试验机
不看好这个
April 13th, 2008 at
湿敏电容
文章写的不错啊?
April 13th, 2008 at
影像测量仪
好文章,值得收藏!!
April 14th, 2008 at
自力式温度调节阀
好文章,值得收藏!!
April 14th, 2008 at
塑料破碎机
不看好这个
April 14th, 2008 at
数显仪表
好文章,值得收藏!!
June 20th, 2008 at
[…] In my previous installment (oh-mi-god, it’s already been a year!), I’ve discussed the hard-wired need to retain central point of control when building software. Today, I’m going to examine the central software concept that implements this urge for control: session. […]
August 8th, 2008 at
Britney spears.
Britney spears.