The essence of software development lies in the translation of theories,
ideas and concepts into structured machine code. It is the translation
of knowledge from the abstract to the tangible. In this respect, it is
important to understand how this knowledge is gained and how it evolves.
There are 2 views regarding this - Rationalism and Empiricism.
Rationalism vs. Empiricism: Fundamental differences
Let’s look at the Rationalist perspective first. Rationalists claim that
all knowledge is gained from Reason. They are of the opinion that our
knowledge is gained a priori, independent of experience. It evolves
naturally from our sense of rationalism or reasoning. On the other hand,
empiricists claim that experience is the fountainhead of all our
concepts and knowledge. So rationalists stumble upon a theory and then
search for the evidence to support it. Empiricists, on the other hand,
gather evidence first, and then builds upon it to arrive at a theory.
The most important question facing both is: How do we know that our
theory is true knowledge and not a mere conjecture?
Different applications
Rationalism and empiricism, both the schools of thought, have various degrees of success in different areas:
Mathematics is a field where the rationalists triumph because all the
complex branches and theories are deducted logically from a few
intuitive basic premises
Natural sciences, when attempting to explain dynamic complex systems,
make use of both rationalism and empiricism. Here, empirical
observations and experiments are combined with rational hypotheses and
predictions
Social sciences, politics, economics are generally unsuitable for
rationalist approaches. However, the application of empirical principles
in this field is not entirely free from problems because it is
difficult to make comprehensive social experiments and deduct from them
any true knowledge and theory about human groups and their societies
What view does work better for software development?
In the realm of software development services, rationalists would prefer
developing complete concepts and knowledge behind the software system
using intuition, logic and creative insights before starting to write
the program. The empiricists, on the other hand, would first dive into
experiments, programming and deriving early practical conclusions, and
then build their knowledge based on this experience.
It is widely believed that software development is mostly empirical in
nature. Rationalism is useful in narrow areas of the system development,
e.g. algorithms where system input and output are well defined. Within
these boundaries developers can use power of their intellect to find
rational and logical solution. More complex area, perspectives and
relations will need more and more empirical approach.
Therefore, any effective software development company should adopt an empirical approach by:
Striving for immediate and early experience to confirm ideas behind a software project
Expecting to adjust these ideas according to experience
Remaining open to discovering new ideas along the way
Home »Unlabelled » A Comparison On Empirical And Rational Software Development
A Comparison On Empirical And Rational Software Development
Posted by Computer Info on Kamis, 29 Maret 2012
{ 0 comments... read them below or add one }
Posting Komentar