Sunday, September 4, 2016

Isn't it absolutely essential for each & every method (used for acquiring useful knowledge) for research must have "self-correcting mechanisms"?


Dear Friends,

            Any thing can be a fact (or proven theory), only as long as (i) it is supported by published repeatable and falsifiable proof backed by demonstrable well documented evidence, and (ii) no one else can falsify the published proof and evidence either by using existing BoK (Body of Knowledge) or by using new demonstrable evidence. The 2nd part is the "self-correcting mechanism", which is essential part of any scientific or engineering research method/paradigm.

            Existing scientific or engineering research paradigm is successful, only because the scientific methods have "self-correcting mechanism". For example, even if a published conclusion, concept, proven theory or fact is flawed, the "self-correcting mechanism" ensure that Truth would prevail sooner or later.

            Unfortunately software researchers disabled the essential "self-correcting mechanism" of scientific method. For example, 2000 years ago researchers disabled "self-correcting mechanism" by insisting that "the Earth is static" is a self-evident fact (hence requires no proof). They disabled the "self-correcting mechanism" by assuming such self-evident fact needs no proof. Likewise, software researchers disabled "self-correcting mechanism"  by  insisting that exiting definitions for components and CBD (Component Based Design) are self-evident facts (hence requires no proof). Today no one even know what is the basis (e.g. axioms, beliefs and reasoning) for the definitions. The definitions can be corrected (if the basis is wrong), if the beliefs and reasons are documented. Since the definitions have no basis, there is no mechanism for validating or correcting the definitions.

            Is it possible to acquire accurate knowledge essential for modern scientific or engineering discipline by selectively disabling or ignoring the "self-correcting mechanism" of the scientific method? How can I convince software researchers that it is wrong the disabling the "self-correcting mechanism"? Many conclusions, concepts or facts added to the BoK for software by disabling or ignoring "self-correcting mechanism".

            This error injected flawed facts (i.e. beliefs considered self-evident facts) nearly 50 years ago and such flawed facts are at the very foundation of software engineering. The existing software engineering paradigm has been evolving for nearly 50 years by relying on such flawed facts. This resulted in the geocentric paradox (a strange altered perception of reality filled with inexplicable retrograde motions or epicycles) in software engineering.

            The "self-correcting mechanism" (e.g. falsifiable facts or documented evidence) make it very simple and non-controversial to invalidate such well documented proof or evidence by finding and demonstrating just a flaw. Saying that "the Sun is at the center" offended common sense and then deeply entrenched conventional wisdom. Today many experts consider that it is arrogant and disrespectful to question the validity of the so called self-evident facts such as definitions for so called components or CBD (Component Based Design).

            Many experts even questioned my motives as if I committed a heresy or crime. Isn't it essential for any method devised for acquiring knowledge must have "self-correcting-mechanism" (e.g. falsifiable, if the fact or conclusion is flawed) to maintain the quality and accuracy of the knowledge? How do we know the quality and degree of accuracy (e.g. applicability in a given context) of the knowledge, if it is considered heresy to ask for proof. How can we improve non-existent proof, if an when new outlier evidence is discovered to gain deeper insights and wisdom (e.g. degree of accuracy and applicability of knowledge).

            It would be much simpler to invalidate the so called facts, if they are supported by published proofs (e.g. by finding just one or two flaws in the proof). But today only way to expose the error is bringing in complex Kuhnian paradigm shift by invalidating large chunks of existing BoK (Body of Knowledge) of deeply entrenched software engineering paradigm.

            The self-correcting-mechanism is essential for keeping the research efforts in the right path. Isn't it common sense that any effort (e.g. research or investigation) would end up in wrong path as soon as start relying on flawed fact or assumption? The self-correcting-mechanism (e.g. falsifiable facts) of scientific method successfully prevented repeat of kind of mistakes that lead to geocentric paradox. Even mathematics or logic use self-correcting-mechanisms such as maintaining consistency of each of the axiomatic systems  (e.g. axioms would be adjusted to maintain consistency of the system, if anomalies or inconsistencies are discovered in the axiomatic system).

            Except computers science, no one else repeated similar kind of mistake (e.g. relying on unproven beliefs by insisting the belief is self-evident fact - in effect, disabled "self-correcting-mechanism" such as empirical falsification). I cannot find any other example, where any other scientific or engineering discipline committed this kind of mistake. How do we know, if we are going in the right path (or wasting our efforts on a wrong path), if we turn off navigation system (i.e. self-correcting-mechanism) of any method for acquiring knowledge.

            How do you know or make sure, if you are going in the right path? For example, if you want to go east, but how can you be sure you are going east? If you don't have a navigation system (self-correcting-mechanism), you may be going either North of West, but have no way of knowing the mistake for correcting it. If you are going North, can you define the North is East for you by ignoring the reality? Software researchers did exactly that - By defining the nature and properties of so called components and true essence of the CBD without any basis in reality.

            The main purpose of research is nothing but exploring new uncharted territory or frontiers. Is it possible to explore such vast unknown frontiers without using any kind of navigational system (self-correcting-mechanism)? Software researchers turned-off proven navigation system (self-correcting-mechanism) and ended up in the infamous software crisis. Many think I am crazy, if I ask them to use proven navigation system (self-correcting-mechanism).

            Many experts insist computer science is not a real science and software engineering is not a real engineering. They are right. But the reason for computer science is not a real science and software engineering is not real engineering is: research efforts of researchers have been traveling in a wrong path for 45 years.  Any scientific (or engineering) discipline end up a fake scientific (or engineering) discipline, if research efforts end up in a wrong path and have no self-correcting-mechanism. Software researchers can use self-correcting-mechanisms (having proven track record), but refusing to use the self-correcting-mechanisms.

            If my mission is reach Asia from San Francisco, is it OK to name (or define) the direction I am going is West (even if I am sailing from San Francisco to South Pole)? Can I define the term "West" to create an illusion that I am going West. After reaching the South Pole, can I declare that my mission to reach Asia is successful by defining the place I reached is Asia? That is exactly what happened: The existing definitions for components is created an illusion that software engineering is using components. The CBD for software is defined as using such fake components. Whatever the destination they reach, they call it CBD (without using any mechanisms for validation - by ignoring obvious realities of the CBD). The software researchers disabled (i.e. have been ignoring) all the mechanisms (e.g. empirical falsification, obvious reality, evidence, try to achieve consistent axiomatic system or even common sense) for correcting or validating the definitions for components and CBD (Component Based Design).

Best Regards,
Raju Chiluvuri


Saturday, September 3, 2016

Summary and magnitude of Kuhnian paradigm shift (or Gestalt Shift)


            The geocentric paradigm had been evolved for centuries comprising of countless concepts, observations and empirical evidence, which are consistent with each other and together paint a complex picture (i.e. perception) of reality. The FIG-1 illustrates the picture painted by the BoK (Body of Knowledge) accumulated for over 1600 years up until 16th century, where the BoK flied with countless concepts, observations and empirical evidence (e.g. retrograde motions in FIG-2 and epicycles in FIG-3) in the webpage http://real-software-components.com/more_docs/epicyles_facts.html

The existing Heliocentric paradigm painted a radically different picture (i.e. perception) of the reality by using countless concepts, observations and empirical evidence. The FIG-4 illustrates the picture painted by the BoK (Body of Knowledge) accumulated since 16th century. Each concept, observation or empirical evidence in the BoK for Heliocentric paradigm consistent with each other and also consistent with the picture painted in the FIG-4. Likewise, Each concept, observation or empirical evidence in the BoK for Geocentric paradigm consistent with each other and also consistent with the picture in the FIG-1.

Each concept, observation or empirical evidence in the BoK for one paradigm contradicts many of the concepts, observations or empirical evidences in the BoK for another paradigm. In other words, each concept or observation in geocentric paradigm is consistent with the root axiom (i.e. the Earth is at the center), but inconsistent (or in contradiction) with any other axiom (e.g. the Sun is at the center) and BoK acquired by relying the other axiom.

            The axiom at the root of geocentric paradigm is "the Earth is static (at the center)". That is, the geocentric paradigm evolved for centuries by relying on a flawed belief that "the Earth is static" (by concluding that the belief is a self-evident fact). Later it was discovered that the Sun is at the center. The seed axiom at the root of existing heliocentric paradigm is "the Earth is static (at the center)". The existing heliocentric paradigm is supported by a BoK (Body of Knowledge) comprising of many concepts, observations and empirical evidence, which are discovered or acquired by relying on seed axiom "the Sun is at center".

            The BoK for each paradigm comprises of concepts, observations or empirical evidences that are consistent with each other and also consistent with the root or seed axioms of respective paradigms (since each of the items in the BoK had been created by relying on the seed or root axioms). In other words, each paradigm is supported by a BoK (comprises of items such as concepts, observations or empirical evidences), where each of the items is created or acquired by relying on seed axioms at the root of respective paradigms. Both paradigms paint radically different picture (or perception) of realities, where BoK of each paradigm is consistent with respective seed axioms (or goals).

            The existing software engineering paradigm in general and CBSE/CBSD (Component Based Design for Software) in particular has been evolving for decades by relying on a flawed belief that: the CBSE is building software by using software parts (i.e. so called software components) such as reusable and/or standardized software parts (e.g. so called component libraries or models). The existing CBSE paradigm supported by a BoK (comprising countless items such as concepts, observations or empirical evidences), where the items are consistent with each other and all of the items together paints a picture (i.e. perception) of reality. This existing perception of reality for CBD for software products is radically different from the reality we know about the CBD of physical products in general, and particularly the component based design and development or engineering of one-of-a-kind physical products such as an experimental spacecraft or pre-production working models (that are fully-tested prototype and ready for mass production) of next-generation jet-fighters.

            I used scientific methods for acquiring BoK (Body of Knowledge) that comprises of many concepts, observations or empirical evidences for painting the picture of reality of the CBD of physical components. I also made necessary inventions for achieving the reality for the software products. Each of our concept, observation or empirical evidence is consistent with the reality of the CBD of physical products, but unfortunately each of them can be contradicted by dozens of concepts, observations or empirical evidences in the BoK of existing CBSE paradigm. Of course, dozens of items in the BoK for geocentric paradigm contradicted each item in the BoK for heliocentric paradigm. This kind of paradigm shift can't be achieved by writing a paper or 45 minutes-presentation of slides. I believe, it is possible to instill enough BoK in 2 to 3 days for new paradigm to prove that the new paradigm paints superior picture of reality, and is far more useful and capable of overcomes the crisis created by the exiting paradigm (rooted in flawed axioms).

            The main difference between normal paradigm shift and Kuhnian paradigm shift: (1) normal paradigm shift creates new BoK, which not necessarily contradicts or invalidate exiting paradigms, and (2) Kuhnian paradigm shift exposes fundamentally flawed paradigm and need to replace the whole BoK (which is filled with flawed concepts and observations) of the old paradigm by a new BoK. In other words, due to an error at the root, researchers end up creating an altered perception of reality, which is in clear contradiction to the reality.

            The Kuhnian paradigm shift replaces such flawed altered perception of reality by more accurate perception of reality (that puts scientific or engineering progress on right tracks, since the error at the root put the progress in wrong path and ended up in a crisis). Exposing the error opens up vast uncharted opportunities unprecedented advancements. For example, mankind would be in dark ages, if the error at the root of the geocentric paradigm were not yet exposed. Likewise, exposing the error at the root of software engineering leads to unprecedented progress and revolution.

            If any observation or empirical evidence doesn't fit the existing BoK or if it can't be bent or twisted to fit the existing BoK., such observation or empirical evidence would be thrown out or ignored by using silly or baseless excuses such as software is unique or different. I am sure, philosophers did the same thing up until 500 years ago. Only observation or empirical evidence that can be bent or twisted to fit the geocentric paradigm (i.e. picture FIG-1 painted by then existing BoK) would be added to expand the BoK.

            Everything else might had been ignored, if it can't be rationalized to fit the FIG-1 by bending or twisting. There was enough evidence existed to show that the Sun might be at the center. This lead to proposals such as Tychonic system. Software researchers refusing to investigate irrefutable facts and evidence by using silly or baseless excuses such as software is unique or different. It would be uphill battle to go against huge BoK (comprising tens of thousands of concepts, observations and empirical evidence) accumulated for nearly 50 years.

            Based on my experience,  a small set of facts or concepts can't achieve gestalt shift, especially researchers are not willing to investigate all the evidence with open mind. I believe, only way to achieve the gestalt shift is by presenting all the evidence and facts for 2 to 3 days, if researchers are willing to discover truth by acquiring necessary BoK of new paradigm and investigating all the evidence.