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


No comments:

Post a Comment