Métodos adaptativos para abordar la realidad

La actitud mental para plantearse la realidad que ha ayudado a los humanos a explicar y predecir los fenómenos (hechos observables) de manera consistente y precisa, la mentalidad científica, es una de esas cosas que los profesionales de computadoras pueden adoptar para un mejor entendimiento de los fundamentos del desarrollo de software. Hay dos aspectos de alguna manera conflictivos en la actitud científica que la hacen tan atractiva precisamente por ese efecto de oposición.

Primero, esa impaciencia por hacer todo lo posible para traer a la mesa de trabajo las ideas previas y actuales de otros pensadores acerca del tema en cuestión, tal que el trabajo nuevo pueda estar basado sobre argumentos sólidos y conclusiones probadas. En contraste, ¿cuántos profesionales actuales del software dominan los conocimientos esenciales de los métodos estructurados para diseño? ¿Y de la primera, segunda y tercera generación de métodos para análisis y diseño orientado a objetos?

Segundo, en la esencia de una actitud científica está la constante disposición para refutar creencias actuales, para refutar nuestros propios puntos de vista, una inexorable tendencia por desconfiar de argumentos autosuficientes; esto es, poner nuestras conclusiones bajo las más severas y despiadadas condiciones posibles de prueba. ¿Por qué? Kenneth Boulding dijo: “El conocimiento se incrementa no por la coincidencia de imágenes mentales con el mundo real (que Hume apuntó es imposible), esto es, no por la percepción directa de la verdad, pero por una tendencia implacable hacia la percepción del error. Esto es tan cierto para el conocimiento vernáculo como lo es para la ciencia". En contraste, ¿cuán común es encontrar personas con una visión dogmática de su profesión en software? “Aquí sólo seguimos tal o cual moda”, “Ésta marca o moda en la única verdad posible”, etc.

La combinación de esas actitudes —racional y escéptica— es requisito para el progreso científico, esto es, para la acumulación de conocimiento confiable acerca de un tema dentro de la competencia de la ciencia (el mundo natural). Los filósofos de la ciencia han factorizado esas actitudes de la ciencia y las han puesto a disposición de otras disciplinas para que puedan también avanzar el conocimiento de sus campos de una manera rigurosa y confiable; por ejemplo, ciencias sociales como la sociología, economía, antropología (la cual incluye a la antropología física, arqueología, etnología, y la lingüística), ciencia política, y otras.

El mundo del software es un mundo de lo artificial, un mundo de estructuras lógicas gobernadas por un conjunto diferente de relaciones en notorio contraste con aquel del mundo físico y muy similar al del mundo de la lingüística, donde la relación entre el signo (símbolo), el significado (concepto) y el significante (imagen lingüística) es sujeto de significativos cambios entre un punto discreto en el tiempo (lingüística sincrónica) y su evolución (lingüística diacrónica). En tanto estemos interesados en conocer algo acerca del desarrollo de software entonces será mejor consolidar nuestras capacidades de pensamiento crítico incluyendo aquellas actitudes mentales mencionadas anteriormente.

He visto precisamente esas actitudes en practicantes de los llamados métodos ágiles para desarrollo de software; cabe hacer una distinción, los practicantes a los que me refiero no son aquellos que sólo usan las palabras de moda, sino aquellos que apuestan sus carreras en sus valores y principios profesionales; aquellos practicantes reflexivos quien respaldan sus creencias con sus conductas, aquellos que toman el planteamiento científico hacia la realidad como una herramienta, no como una religión. Estos individuos son perpetuos aprendices, científicos de facto en el campo del software. Para ellos, el nombre ágil sólo significa un punto de partida para un entendimiento cooperativo continuo, El término ágil significa tan sólo un signo para evocar un estilo conversacional, tal como el término adaptativo el cual, por cierto, fue el segundo nombre candidato de aquella reunión en Snowbird, Utah en Febrero 2001. En mi opinión, adaptativo refleja mejor el contraste con los planteamientos predictivos absolutistas y enfatiza la naturaleza siempre cambiante y autocrítica de los procesos modernos (o postmodernistas, desde una perspectiva filosófica) para desarrollo de software.

Los métodos adaptativos implican —adicionalmente— un modo dual de conducta en sus practicantes, así como el progreso de la ciencia requiere un esfuerzo dual para situaciones desatascadoras. Estos modos pueden ser llamados Evolucionario y Revolucionario, el primero se refiere de forma amplia a un estilo de pensamiento que busca la verdad profundamente en una sola dirección por medio de ciertas especializaciones y el segundo significa un estilo de pensamiento que extiende la perspectiva por medio de ciertas generalizaciones; los rasgos pueden ser como sigue:

Modo evolucionario

Modo revolucionario

Artesanos Videntes
Jugadores en equipo Independientes
Normales. Evolucionistas. No comunes. Revolucionarios.
Escaladores técnicos-ingenieros.Escaladores de problemas. Viajeros. Exploradores. Filósofos.