Evolucion de la Filosofia del Conocimiento en las Metodologias de Desarrollo Software
Autor: Diego Mauricio Paz Carrillo
Fecha: Febrero 14 de 2006
Nivel: Básico
Categoría: Filosofía
Licencia: Creative Commons Attribution-NonCommercial-ShareAlike License
RESUMEN
La historia no miente, muchas de las cosas que vemos hoy en día son el producto de cientos de años de evolución: los computadores, los aviones, el ateísmo, la libertad de expresión, los avances en la medicina, etc. El presente artículo pretende mostrar una hipótesis acerca de cómo cuatro corrientes filosóficas del conocimiento a través de la historia han marcado las pautas para la generación de las metodologías de desarrollo de software en la actualidad.
INTRODUCCIÓN
Los seres humanos vivimos en un universo caracterizado por su variedad de propiedades, conexiones y eventos. Esta amplia gama de impresiones reguladas por un principio de organización dió origen al concepto conocido como método, un ente encargado de mantener en orden la realidad que perciben los sentidos. A través de la historia, distintos pensadores y filósofos de la humanidad han tratado de de seguir métodos en cada una de las actividades del conocimiento tales como las matemáticas, la biología, la astronomía, la economía y en el último siglo: las ciencias de la computación.
Todo este conocimiento dió origen al concepto de metodología: un sistema de principios y normas generales de organización y estructuración teórico-práctica de actividades. [1] Las metodologías siempre han existido en nuestra historia, desde que el hombre pensó en los primeros métodos para evolucionar sus habilidades físicas e intelectuales para así poder dominar la naturaleza, hasta cuando empezó a generar estrategias de comunicación para realizar procesos de trabajo más eficientes y eficaces.
Cuando la filosofía surgió, la metodología se convirtió en uno de los objetivos especiales de los distintos procesos de conocimiento. Es así, como durante la época clásica, filósofos griegos como Sócrates (Naturaleza dialógica del pensamiento), Platón (El logos universal), Aristóteles (Del Sentido y lo Sensible) y Heráclito (El conocimiento de muchas cosas), marcaron el inicio de un largo proceso de depuración epistemológica que en el renacimiento, Francis Bacon (Novum Organum) y René Descartes (Discurso del método y meditaciones metafísicas) consolidaron en los primeros hitos del estudio de los métodos.
EL EMPIRISMO
Una de las personas que más influyó en la evolución del concepto de metodología fue Aristoteles. Él planteó que el conocimiento se lograba por medio de los sentidos, lo cual dió origen al concepto de Emprisimo, una doctrina filosófica en la cual todo el conocimiento que adquiere el ser humano proviene de la experiencia y los sentidos. Los empiristas niegan que los humanos tienen ideas innatas y afirman que nada puede ser conocido sin tener en cuenta la experiencia.
Entre las personas que se destacaron por su filosofía empirista, se destacan Thomas Hobbes, Francis Bacon, John Locke, George Berkeley y David Hume. [2]
LA EDAD MEDIA Y GUILLERMO DE OCKHAM
A pesar que en la edad media, la evolución del conocimiento se mantuvo en un estado de estancamiento, surgió en Inglaterra uno de los grandes filósofos lógicos de la historia: Guillermo de Ockham. El fue el creador del nominalismo, una postura filosófica, crítica del platonismo donde los universales (hombre, nación, planta, bondad) eran considerados sólo nombres sin sustancia. Así fue como esta corriente de pensamiento afirmaba que éstos no eran seres ni entidades concretos, sino meras abstracciones que existen únicamente en el campo intelectual, no en la realidad. A Guillermo de Ockham algunos le consideran el padre de la epistemología moderna y se le conoce por su célebre "Navaja de Occam", un principio según el cual la explicación más sencilla de un hecho es probablemente la (más) correcta.
EL MÉTODO CIENTÍFICO: LA PRIMERA EXPRESIÓN DEL REDUCCIONISMO
A mediados del siglo XVII, se generó la primera aproximación para estudiar de manera sistemática, controlada, empírica y crítica, proposiciones hipotéticas acerca de presuntas relaciones entre varios fenómenos: el método científico. Éste fue el verdadero inicio del largo camino que se ha recorrido hasta el día de hoy donde se cuentan con no menos de un millar de metodologías en diferentes entornos como las ciencias de la computación, la economía, la educación y el gobierno.
El método científico ha sido una de las más notables expresiones del reduccionismo a través de la historia. En 1620 en su obra Novum Organum, Bacon plasma las bases del Método Científico a través del Método Baconiano, un procedimiento consistente en aislar la causa de un fenómeno en componentes que sumados dan un resultado que soluciona el problema de investigación planteado alrededor de éste.
El método científico fue concebido en los siguientes pasos [3]:
a) Observación: Observar es aplicar atentamente los sentidos a un objeto o a un fenómeno, para estudiarlos tal como se presentan en realidad.
b) Inducción: La acción y efecto de extraer, a partir de determinadas observaciones o experiencias particulares, el principio general que en ellas está implícito.
c) Hipótesis: Planteamiento y/o supuesto que se busca comprobar o refutar mediante la observación siguiendo las normas establecidas por el método científico.
d) Probar la hipótesis por experimentación.
e) Demostración o refutación de la hipótesis.
f) Conclusiones.
EL SIGLO XVIII Y XIX: LA BASE DEL MATERIALISMO DIALÉCTICO
Durante el siglo XVIII filósofos como Immanuel Kant (Crítica de la razón pura, Principios metáfisicos de la ciencia natural), George Hegel (Ciencia de la Lógica) y David Hume (Tratado de la naturaleza humana), sometieron a juicio las teorías planteadas por Francis Bacon y René Descartes. Por ejemplo, Kant establece la necesidad de un principio moral a priori, llamado imperativo categórico, derivado de la razón humana en su vertiente práctica. También plantea que el hombre debe actuar con libertad, aunque no sea posible demostrar teóricamente la existencia de esa libertad. El fundamento último de la moral procede de la tendencia humana hacia ella, y tiene su origen en el carácter a su vez nouménico del hombre. Así fue como se contempló la posibilidad de establecer juicios o enunciados sintéticos (es decir, que añadan información o conocimiento), a diferencia de los analíticos (Empíricos) en los que no se transmite conocimiento nuevo.
Los logros de las teorías relacionadas con el concepto de metodología que habían sido generadas por los anteriores autores, fueron generalizadas en base al materialismo en la filosofía de Karl Marx (El Capital) y a la vez ésta fue retroalimentada por los últimos avances de la ciencia y la práctica social del método dialéctico. Al ser el método y el análisis formas de conocimiento, se convierten en el principal objeto de investigación y en el instrumento para no sólo adquirir conocimiento teórico sino en la herramienta para realizar una transformación revolucionaria de la realidad.
Según la filosofía de Marx, la relación entre la teoría y el método se encuentra en que mientras la teoría es el resultado de un proceso de cognición que reproduce un cierto fragmento de la existencia, la metodología es la forma de obtener y construir dicho conocimiento. La teoría se caracteriza por el conocimiento, su estructura y contenido. El método caracteriza las actividades que se realizan para adquirir el verdadero conocimiento.
EL CONSTRUCTIVISMO SOCIAL (SIGLO XX)
El constructivismo es una corriente filosófica reciente que crítica especialmente el empirismo. Se originó en el campo de la sociología bajo el término de constructivismo social.
El constructivismo mira al conocimiento como algo que debe ser "construido", porque no refleja ninguna realidad externa trascendental. Ésto abarca tanto las percepciones humanas como las experiencias sociales. Los constructivistas creen que las representaciones físicas y biológicas de la realidad tal como la raza y el género son socialmente construidas.
El constructivismo social, por ende, dice que las distintas categorías del conocimiento y la realidad son activamente creadas por las relaciones e interacciones sociales. Dichas relaciones también alteran la forma en que el conocimiento científico es organizado.
LAS METODOLOGÍAS DE DESARROLLO DE SOFTWARE: LA PUNTA DEL ICEBERG DE LA EVOLUCIÓN DE LA FILOSOFÍA DEL CONOCIMIENTO
En el siglo XX, se dio una de las más grandes revoluciones de la humanidad: la revolución informática. A medida que la electrónica evolucionaba, los diseños de sistemas computacionales realizados en el siglo XIX se hacían cada vez más reales. Primero eran computadores análogos, luego gracias al uso de la electrónica digital (Que inventó Claude Shannon en 1937) se pudieron crear los primeros computadores con la capacidad de ser programados. A pesar que no se sabe con certeza cuándo ni donde se construyó el primer computador, se destacan casos como el computador Atanasoff Berry, el ENIAC (1943), el computador British Colossus (1944) y las máquinas Konrad Zuse's Z.
Así fue como en 1957 el término "Software" fue utilizado por primera vez por John W. Tukey, con base a los conceptos planteados por Alan Mathison Turing y Alonzo Church en su célebre Tesis Church-Turing, donde afirman que cualquier cálculo puede ser realizado por un algoritmo que se encuentre corriendo en un computador, siempre y cuando se le de del tiempo y el almacenamiento necesario para su trabajo.
De esta manera se comenzó a usar el término Ingeniería de Software para referenciar a la profesión encargada de crear y mantener aplicaciones software por medio del uso tecnologías, prácticas y métodos para gestionar un proyecto relacionado con las ciencias de la computación [4].
Después de realizar la anterior base conceptual acerca de la evolución de las corrientes filosóficas del conocimiento más importantes para nuestro caso de estudio, se plantea la inquietud acerca de la relación entre éstas y las metodologías propuestas por la ingeniería de software para lo cual se lanzará la siguiente hipótesis: La Dialógica Constructivismo Social-Empirismo más la influencia de la evolución del concepto de simplicidad de la Navaja de Occam, el reduccionismo planteado por Bacon en el Método Científico y los conceptos de Teoría y Metodología del Materialismo Dialéctico de Marx, son la característica fundamental de todas las metodologías de desarrollo de software planteadas a través del tiempo, desde 1950 hasta la actualidad.
Para aclarar la definición planteada por la hipótesis propuesta se presenta el siguiente gráfico:
Figura 1. Dialógica Empirismo-Constructivismo Social
La idea es observar como dos conceptos antagónicos como el empirismo y el constructivismo social, pueden llegar a establecer una relación dialógica para realimentarse el uno al otro y poder brindar al concepto actual de metodología esa característica pasiva, en el sentido de aprender de las experiencias de la vida junto al poder activo de generar la realidad con base a las relaciones e interacciones sociales.
El ejemplo más sobresaliente de este tipo de relación es la metodología de desarrollo de código abierto. Una metodología donde se construyen a través de redes humanas organizadas y retroalimentadas, millones de líneas de código fuente gracias al poder de la interconectividad telemática. Como se puede ver en el siguiente gráfico [5], el software de código abierto y/o libre, ha ido evolucionando a medida que lo ha hecho su experiencia como organización y sobre todo, a medida que se genera conocimiento con base a las necesidades que producen las distintas interacciones sociales de la comunidad.
Figura 2. Crecimiento de los usuarios linux entre los años 2001 y 2005
Figura 3. Estadística de Netcraft (http://www.netcraft.com) sobre servidores de Internet. Apache es uno de los proyectos bandera del Software de Código Abierto y/o Libre
En cuanto al concepto de simplicidad de Occam, éste refleja en las distintas metodologías (Capability Maturity Model, Rational Unified Process, eXtreme Programming, Scrum, Crystal Clear) la búsqueda interminable de la solución que brinde el resultado más óptimo, utilizando el mínimo de recursos (Concepto de Palanca), es decir, la máxima destrucción de la incertidumbre.
El reduccionismo, planteado por Bacon en el Método Científico y tan críticado por Kant, es la piedra angular de la mayor parte de las metodologías para formular y evaluar proyectos de desarrollo, por lo que no es raro observar que los distintos procesos de desarrollo de software se pueden dividir en tres fases genéricas, con independencia del área de aplicación, tamaño o complejidad del proyecto [6].
a) FASE DE DEFINICIÓN: Es donde los esfuerzos del grupo de trabajo del proyecto se centran en la definición del Qué. Es decir, se intentan identificar los aspectos de función y rendimiento que deben caracterizar el producto final. El punto clave es la identificación de los requisitos primordiales del sistema a generar.
b) FASE DE DESARROLLO: Es donde los esfuerzos del grupo de trabajo del proyecto se centran en el Cómo. Es decir, se realiza el trabajo de implementación de cada una de las funciones y procedimientos planteadas durante la fase de definición.
c) FASE DE MANTENIMIENTO: Es donde los esfuerzos del grupo de trabajo del proyecto se centran en el Cambio. Es decir, en todos los temas relacionados con la corrección de errores, a las adaptaciones requeridas a medida que evoluciona el entorno del software y a cambios debidos a las mejoras producidas por los requisitos cambiantes del cliente.
Como se puede ver, estamos tratando con un un conjunto de conceptos filosóficos relacionados y aplicados al área de aplicación de las ciencias de la computación. En ningún momento se contradice los conceptos de teoría y metodología planteados por Marx ya que siempre se toma metodología como un conjunto de métodos que se utilizan para obtener y construir conocimiento (o construir teoría).
CONCLUSIÓN: LA REVOLUCIÓN DEL CONOCIMIENTO
Nos encontramos en la era del pensamiento creativo. "Cada cerebro humano es una gran cámara de creatividad que necesita de las herramientas con las cuales su imaginación pueda ser liberada"[7]. La visión lineal del mundo es un concepto que cada día pierde más valor. Hoy en día el conocimiento tiende a generar conocimiento por medio de métodos prácticos, no lineales, ágiles, colaborativos, económicos y sobre todo, de gran calidad. La mente humana no es una maquina que realiza trabajo sino un mundo de conexiones de ideas que busca ser explotada y que se encuentra conectada sistémicamente con su entorno. Cada vez que algo en el entorno cambia, así mismo lo hace el rendimiento creativo y productivo de la mente
Como dice Thomas Alva Edison: "No existe problema alguno que el cerebro humano no pueda resolver. Todo lo que necesitamos es aprender a pensar". El pensamiento creativo, y el uso adecuado de las herramientas para explotar nuestra imaginación, son en la actualidad, la mano derecha en la generación de ideas y resolución de problemas dentro de los métodos reduccionistas para la formulación, gestión y evaluación de proyectos de desarrollo.
BIBLIOGRAFÍA
[1] SPIRKIN, Alexander. Dialectical Materialism.
[2] MONK, Ray y RAPHAEL Frederic. The Great Philosophers - From Socrates to Turing.
[3] WIKIPEDIA. El método científico. http://es.wikipedia.org/wiki/M%C3%A9todo_cient%C3%ADfico
[4][6] PRESSMAN, Roger. Ingeniería del Software. Un enfoque práctico.
[5] COUNTER, Linux. <http://counter.li.org/estimates.php>
[7] BUZAN, Tony. Supercreativity.
MORIN, EDGAR. Los Siete Saberes Necesarios Para La Educación Del Futuro.
--Dipaz 20:38 14 feb, 2006 (COT)