Friday, June 15, 2012

Evolution in software development methodologie

Some time ago I did an analysis of this issue after reviewing several references to outline a publication for a tech magazine and now recalling several interesting points I wanted to share with you.
... Human beings live in a universe characterized by its variety of properties, connections and events. This wide range of views covered by an organizing principle gave rise to the concept known as a method, a body responsible for maintaining order in reality perceived by the senses. Throughout history, different thinkers and philosophers of mankind have tried to follow methods in each of the activities of knowledge such as mathematics, biology, astronomy, economics, and in the last century: the science computing. [0].
This knowledge gave rise to the concept of methodology: a system of principles and general rules of organization and structure theoretical and practical activities [1]. The methodologies have always existed in our history, since man thought of the first methods to develop their physical and intellectual abilities in order to dominate nature, until he began to create communication strategies to make work processes more efficient and effective.
When philosophy arose, the methodology became one of the specific aims of the different processes of knowledge. Thus, as during the classical Greek philosophers such as Socrates (dialogic nature of thought), Plato (The universal logos), Aristotle (from Sense and the Sensible) and Heraclitus (The knowledge of many things), marked the beginning of a epistemological long debugging process in the Renaissance, Francis Bacon (Novum Organum) and RenĂ© Descartes (Discourse on Method and Metaphysical Meditations) bound at the first milestones of the study of methods.
One of the most influential people in the developing understanding of the methodology was Aristotle. He argued that knowledge is achieved by means of the senses, which gave rise to the concept of Emprisimo, a philosophical doctrine that all knowledge acquired by man comes from experience and senses. Empiricists deny that humans have innate ideas and claim that nothing can be known regardless of experience.
Among those who stood out for his empiricist philosophy, Thomas Hobbes stand, Francis Bacon, John Locke, George Berkeley and David Hume [2].
The mean age and William of Ockham:
Although in the middle ages, the evolution of knowledge remained in a state of deadlock arose in Britain one of the great philosophers logic of the story: William of Ockham . He was the creator of nominalism, a philosophical stance, critical of Platonism which universals (man, nation, plant, goodness) were considered only names without substance. That's how this school of thought said that these were not specific entities or beings, but mere abstractions that exist only in the intellectual field, not in reality. To William of Ockham some consider him the father of modern epistemology and is known for its famous "Occam's Razor , "a principle that the simplest explanation of a fact is probably the (more) correct.
Scientific method: The first expression of reductionism:
In the mid-seventeenth century, generated the first approach to study systematically controlled, empirical and critical, hypothetical propositions about presumed relations between various phenomena: the scientific method. This was the real beginning of the long road that has come up today which has no less than a thousand methodologies in different settings such as computer science, economics, education and government.
The scientific method has been one of the most remarkable expressions of reductionism through history. In 1620 in his Novum Organum , Bacon plasma the basis of the Scientific Method through the Baconian method, a method of isolating the cause of a phenomenon in components that add up to a result that solves the research problem raised around it.
The scientific method was conceived in the following steps [3]:
  1. Note: Observe carefully the way it is applied to an object or a phenomenon, to study them as they occur in reality.
  2. Induction: The action and effect of extracting, from certain observations or particular experiences, the general principle is implicit in them.
  3. Hypothesis: Approach and / or course seeks to prove or disprove by observing following the rules established by the scientific method.
  4. To test the hypothesis by experimentation.
  5. Proof or refutation of the hypothesis.
  6. Conclusions.
The eighteenth and nineteenth century: The basis of dialectical materialism:
During the eighteenth century philosophers such as Immanuel Kant(Critique of pure reason, metaphysical principles of natural science),George Hegel (Science of Logic) and David Hume (Treatise of Human Nature), subjected to trial the theories raised by Francis Bacon andRenĂ© Descartes . For example, Kant establishes the need for a moral principle a priori, namely the categorical imperative, derived from human reason in its practical side. It also suggests that man must act freely, though not theoretically possible to demonstrate the existence of that liberty. The ultimate foundation of morality comes from the human tendency towards it, and has its origin in turn noumenal nature of man. Thus it was contemplated to make judgments or synthetic statements (ie, that add information or knowledge), unlike the analytical ( Empirical ) in which new knowledge is not transmitted.
The achievements of the theories related to the concept of methodology that had been generated by previous authors were generalized based on materialism in the philosophy of Karl Marx(Capital) while this was further increased by recent advances in science and social practice of the dialectical method. As the analysis method and forms of knowledge, become the main focus of research and the tool to not only acquire theoretical knowledge but in the tool for a revolutionary transformation of reality.
According to Marx's philosophy, the relationship between theory and method is that while the theory is the result of a process of cognition that plays a fragment of existence, the methodology is how to obtain and build that knowledge. The theory is characterized by knowledge, its structure and content. The method characterizes the activities undertaken to acquire true knowledge.
Social constructivism (Twentieth Century)
The constructivism is a philosophical recent critical especially empiricism. It originated in sociology under the term social constructivism.
Constructivism looks at knowledge as something that must be "built", it does not reflect any external transcendent reality. This includes both human perceptions and social experiences. Constructivists believe that biological and physical representations of reality such as race and gender are socially constructed.
Social constructivism, therefore, says that different categories of knowledge and reality are actively created by social relations and interactions. These relationships also alter the way in which scientific knowledge is organized.
The software development methodology: The tip of the iceberg of the evolution of the philosophy of knowledge:
In the twentieth century, was one of the greatest revolutions of humanity: the information revolution. As the evolving electronics, computer systems designs made in the nineteenth century were becoming more real. First, computers were like, then through the use of digital electronics (Claude Shannon invented in 1937) could be created the first computers with the ability to be programmed.Although not known with certainty when or where he built the first computer, highlighting cases like Atanasoff Berry Computer, ENIAC (1943), the British Colossus computer (1944) and Konrad Zuse's machines Z.
Thus in 1957 the term "software" was first used by John W. Tukey, based on the concepts introduced by Alan Mathison Turing and Alonzo Church in his famous Church-Turing Thesis, which asserts that any calculation can be performed by an algorithm that is running on a computer, provided time is given and the storage needed for their work.
Thus began using the term software engineering to reference to the profession responsible for creating and maintaining software applications by using technologies, practices and methods to manage a project related to computer science [4].
After performing the above conceptual basis of the evolution of philosophical knowledge important for our case study raises the concern about the relationship between these and the proposed methodologies for software engineering which will be launched following hypothesis: The Dialogical Social Constructivism, Empiricism more influenced by the evolution of the concept of simplicity of Occam's Razor, reductionism posed by Bacon in the Scientific Method and Theory and Methodology concepts of dialectical materialism of Marx, are the property fundamental of all software development methodologies raised over time, from 1950 to present.
To clarify the definition that the proposed hypothesis presents the following chart:
Figure 1. Empiricism-Dialogical Social Constructivism
The idea is to look like two opposing concepts like empiricism and social constructionism, they can establish a relationship of dialogue to fed back to each other and to provide the current concept of methodology that feature passive in the sense of learning from the experiences of life by the power generating assets of reality based on relationships and social interactions.
The outstanding example of this type of relationship is the methodology of open source development. A methodology which are constructed through human networks organized and fed, millions of lines of source code through the power of interconnectivity telematics.As can be seen in the chart below [5], the open source software and / or free, has evolved as it has experience as an organization and above all, as knowledge is generated based on the needs produced by various community social interactions.
Regarding the concept of simplicity of Occam, this reflects the different methodologies (Capability Maturity Model, Rational Unified Process, eXtreme Programming, Scrum, Crystal Clear) the endless search for the solution that provides the most optimal result, using minimal resources (Concept of Lever), ie, maximum destruction of uncertainty.
Reductionism, raised by Bacon in the scientific method and so criticized by Kant, is the cornerstone of most of the methodologies for developing and evaluating development projects, so it is not unusual to see that the various software development processes can be divided into three generic phases, regardless of application area, size or complexity of the project [6].
A) Definition phase: This is where the efforts of the working group of the project focus on the definition of what. That is, try to identify the function and performance aspects that should characterize the final product. The key point is to identify the key requirements of the system to generate.
B) Development stage: This is where the efforts of the working group of the project focus on the how. That is, does the work of implementing each of the functions and procedures raised during the definition phase.
C) Phase manteniminto: This is where the efforts of the working group of the project focus on Climate Change. That is, in all matters related to the correction of errors, the adjustments required as the software landscape evolves and changes due to improvements caused by changing customer requirements.
As you can see, we are dealing with a set of related philosophical and applied to the application area of ​​computer science. At no point contradicts the concepts of theory and methodology presented by Marx and methodology which is often taken as a set of methods used to obtain and build knowledge (or theory building).
The backbone of a sustainable model: In the previous edition named a number of business models which allow free software to be a feasible alternative when a robust solution to a technological necessity. All these models depend directly on development processes and methodology, these business models vary according to your scenario, ranging from:
Public funding: The motivation for this type of financing are varied, but the following stand out:
• Science: This is the most common case in research projects financed by public funds.
• Promotion of standards: Having a reference implementation is one of the best ways to promote a standard.
• Social: Free software is a tool of great interest in creating the basic infrastructure for the information society.

Private not-for-profit: This is a type of financing with many features similar to the previous case, where funding is usually performed foundations or NGOs.
Financing by someone requiring improvements: Another type of financing for development of free software, and not so altruistic, is what happens when someone needs a free product upgrades.
Financing-related benefits: In this case, what the funder is looking to profit from the products related to the development program which provides resources.
• Books: The company in question sells manuals, user guides, textbooks for courses, etc.. related to the free program that helps fund.
• Hardware: If a company funds the development of free systems for certain types of hardware, you can engage more easily sell such hardware.
• CD with software: Probably this model is the most common type of companies that finance certain developments which then apply to your software distribution. For example, having a good desktop environment can really help sell CD with a certain distribution of GNU / Linux, and therefore finance their development can be good business for anyone who sells them.
Financing and domestic investment: Some companies, directly as part of its business model, develop free software for internal use or sell it.
Cooperatives: Hackers organized meet in the cooperative model to generate goods and services.
Technological competitions: Company contests encourage technological issues framed and taking certain products or tools to achieve a common benefit to developers.
Methodological references:
Technological evolution is marked by milestones and archetypes that make comparative tables such as the "Cathedral and the Bazaar" [7] (Eric S. Raymond) gives us a clear view of the theoretical differences in two models of development, and to analyze the emergence of GNU / Linu. The analogy that is generated in the cathedral and bazaar is related to the pyramid model that is present in proprietary software and the bustling bazaar shows what open source and collaborative.
Conclusion: "The knowledge revolution"
We are in the era of creative thinking. "Every human brain is a great camera of creativity that needs the tools with which your imagination can be released" [8]. The linear view of the world is a concept that loses more value each day. Today, knowledge tends to generate knowledge through practical methods, nonlinear, agile, collaborative, economic and above all high quality. The human mind is a machine that does work but a world of connections of ideas that seeks to be exploited and that is systematically connected with their environment.Whenever something in the environment changes, so does the same creative and productive performance of the mind
Thomas Alva Edison said: "There is no problem that the human brain can not resolve. All we need is to learn to think. " Creative thinking, and proper use of tools to exploit our imagination, are at present, the right hand in generating ideas and solving problems within the reductionist methods for the formulation, management and evaluation of development projects.
Reference Link:
[0] Diego Mauricio Paz Carrillo / About Grupo GNU / Linux at the University of Cauca
[1] SPIRKIN, Alexander. Dialectical Materialism.
[2] MONK, Ray and Frederic Raphael. The Great Philosophers - From Socrates to Turing.
[3] WIKIPEDIA. The scientific method. C3% C3% ADfico A9todo_cient%
[4] [6] Pressman, Roger. Software Engineering. A practical approach.
[5] COUNTER, Linux. <>
[8] Buzan, Tony. Supercreativity. MORIN, EDGAR. Seven Knowledge Needed For The Education Of The Future.


Post a Comment