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