Sunday, November 10, 2013

El Programa para el Desarrollador Reflexivo - ¿de qué va?

¿Cuál es la oportunidad?

El programa tiene la intención de asistir como un compañero de entrenamiento (sparring partner) para el profesional individual. El programa propone una comunidad de indagación sobre el tema del profesionalismo en la creación de soluciones de negocio basadas en software. En dicha comunidad el individuo puede comparar notas con otros de una manera abierta y sin jerarquías de ninguna clase.

Un objetivo es asistir al individuo en su intento por adquirir mayor conciencia de su condición personal ante una concepción amplia del profesionalismo. Lo cual incluye, entre otros temas, familiarizarse con los perennes problemas del conocimiento en general y con las manifestaciones de dichos problemas en el contexto de la creación de soluciones.

Para iniciar, un efecto colateral propio de la dispersión del conocimiento: entre más es difundido más escaso se hace su cabal entendimiento. Por lo cual es muy probable que la idea que tengamos de un tema dado, por muy sólida que creamos tenerla, sea tan sólo un pálido, superficial y distorsionado fragmento de la idea originalmente concebida y desarrollada.

Por tal efecto colateral podríamos con frecuencia actuar sobre la base de conocimiento deficiente en el caso promedio, o de meras opiniones del todo desatinadas en el peor caso. El problema radica en permanecer con conocimiento de esa calidad como base de nuestras acciones al ejercer nuestra profesión. Por lo que la búsqueda del profesionalismo debe incluir, como tarea recurrente, el examen crítico de la calidad real del conocimiento que creemos tener de las ideas más importantes que guían nuestra conducta profesional. Por ejemplo, la noción acerca de «análisis» o de «diseño», ¿son actividades?, ¿son etapas?, ¿cuáles estructuras teóricas sostienen a las posibles respuestas?

Ciertamente, un entendimiento mejorado de las ideas que aplicamos produce una práctica profesional mejorada. Buscar más enseñanza podría mejorar el entendimiento. Pero, si los canales institucionales para la dispersión del conocimiento, como los sistemas derivados históricamente de la escolástica —o filosofía de la escuela—, no fuesen parte de la causa que distorsiona dicho conocimiento, entonces podríamos decir que esos canales bastan para mejorar el entendimiento. Por supuesto, no bastan. He aquí el nicho de oportunidad para el Programa para el Desarrollador Reflexivo.

¿Cómo mejorar el entendimiento?

La propuesta central es que el profesional individual puede convertirse en su propia influencia primordial para mejorar el entendimiento de sus propias ideas. No obstante, es mucho más fácil decirlo que lograrlo. La dificultad radica en el poco espacio mental que suele quedar al individuo después de ser invadido por un alud de información de todo tipo —por voluntad propia o no— y desde múltiples conductos simultáneos en nuestra actual sociedad cada vez más interconectada. El Programa para el Desarrollador Reflexivo reconoce que más información no equivale a más entendimiento y, por tanto, abre un espacio para que el individuo pueda pausar, analizar sus ideas, cuestionarlas y desarrollar la reformulación que resulte necesaria de las mismas.

Pues el problema no es lo que desconocemos sino lo que tenemos por cierto pero que resulta distorsionado o por completo falso. Es decir, el problema no es que ignoremos muchas cosas o que carezcamos de información en abundancia sino mantener meras opiniones debidas a malinterpretaciones de la información ya recibida. Por lo que el programa propuesto no sólo es acerca del aprendizaje autodidacto sino acerca de la teoría y la práctica de la auto-reeducación.

El programa propone entender la auto-reeducación, principalmente, como des-aprendizaje, pues eso precisamente se requiere para mejorar el entendimiento. Deshacerse de malinterpretaciones que estorben a la asimilación adecuada del conocimiento es un paso esencial para mejorar el entendimiento. En otras palabras, y como algunos estudiosos de la educación ya lo han apuntado, el analfabeto contemporáneo no es el incapaz de leer o escribir sino el incapaz de aprender, desaprender y re-aprender.

Siguientes pasos

El Programa para el Desarrollador Reflexivo consiste de una serie de conversaciones en las cuales se indaga la realidad de situaciones concretas, situaciones con relevancia profesional para los participantes. Por ejemplo, la situación puede ser el diseño de una estrategia para manejo de excepciones en una solución en desarrollo, o las dependencias entre componentes de lógica de negocio y componentes de acceso a datos para el adecuado control de transacciones distribuidas, o puede ser el análisis de una capacidad funcional autónoma o semiautónoma para ser liberada al negocio con independencia de otras capacidades, etc. El Programa para el Desarrollador Reflexivo propone un conjunto de procesos de análisis y de síntesis aplicados a situaciones concretas y pertinentes, no busca hacer prescripciones abstractas ilustradas con ejemplos triviales sin conexión con la realidad de los participantes; es decir, el programa busca identificar defectos en cómo pensamos, no busca prescribir qué debe ser pensado.

Para el caso de principiantes en el programa, el primer paso suele consistir en invitarles como observadores de una conversación donde alguien experimentado reflexiona sobre alguna situación concreta. Así los principiantes se familiarizan con los protocolos típicos para identificar contextos, para discutir estructuras o presuposiciones conceptuales, juicios, argumentos, falacias, análisis empíricos, modelos experimentales, fuentes a las cuales recurrir por más información, etc., y observan la aplicación de estándares intelectuales de rigor sistémico.

Para el caso de no principiantes en el programa, el siguiente paso suele consistir en preguntarles por alguna situación concreta para la cual quieran iniciar el proceso cooperativo de reflexión.

Saturday, December 05, 2009

La continuación de este blog...

He estado publicando notas en Español acerca de desarrollo de software en el siguiente blog*:  http://blogs.msdn.com/destreza/


Donde continúo reflexionando en la convergencia del ejercicio filosófico y la esencia en la actividad de crear programas para computadoras destinados a ser parte de la solución a problemas humanos.


*blog es una contracción de ‘web log’: un diario o bitácora pública como medio de expresión particular.

Friday, December 07, 2007

Arquitectura de software y el pensamiento mágico

El tema de arquitectura de software me ha interesado y he hecho investigación al respecto desde hace algún tiempo, movido simplemente por la curiosidad de entender uno más de los fenómenos en la sociología dentro de la industria de formulación de software, y su relación con la sociología con otras industrias que también se fundamentan en tecnología. Se me ocurren dos explicaciones para mis conclusiones provisionales: o estoy viendo visiones recurrentes que mi torpe mente impone sobre áreas distintas de mi percepción o en realidad sí existen patrones en la conducta humana que se observan como resultado de un estado de conciencia inmaduro o edad mental temprana (sin tener relación alguna con la edad física).


De tal forma que así como niños nos ilusionamos y adoptamos gustosamente creencias de lo sobrenatural o etéreo por las cuales estamos dispuestos a doblegar nuestra voluntad con tal de conseguir cosas mágicamente (e.g., Santa Claus, Reyes Magos, y creo que mejor le paro aquí de contar), así también con gran facilidad nos podemos encontrar como adultos —aunque no adultos mentalmente— adoptando gustosamente creencias similares en grado por las que estamos dispuestos a cancelar nuestro pensamiento independiente y perseguir aquello que nos prometa cosas que llegarán mágicamente, e.g., “Write once, run anywhere” de Java, SOA si sólo si Enterprise Service Bus, la fábrica de software lo hace por ti, los diagramas UML son el diseño del software, lo que dice la autoridad es verdad indiscutible, etc., incluyendo —con razón— Arquitectura de software es igual a lo que hacen los arquitectos astronautas (remitirse a “architecture astronautics” y Don't Let Architecture Astronauts Scare You).


Dadas así las cosas, en tanto que cualquiera de nosotros base su educación (que es diferente de nuestra escolaridad) en, por ejemplo, la información de mercadotecnia, se ha colocado a sí mismo —por gusto propio— más allá del alcance de cualquier ayuda efectiva pues no acostumbra aplicar ni una mínima dosis de pensamiento crítico a lo que deja permanecer en su parte más íntima: su mente.


Precisamente la semana pasada estuve participando en una discusión pública acerca de arquitectura de software, algunos puntos relevantes de la discusión los publiqué aquí: Software architecture is much more than structure (incluye referencias a publicaciones pasadas al respecto).

Saturday, July 16, 2005

Desarrollo moderno de software

Muchos practicantes de diseño y desarrollo de software, después de varios años de experiencia, llegan a conclusiones semejantes acerca de la naturaleza de esta actividad.

El propósito de este blog es tratar de describir dichas conclusiones y presentar los hechos lo más objetivamente posible.

Así, tal vez cuente como un granito de arena para que las organizaciones que hacen uso del desarrollo de aplicaciones de software y que busquen logros adicionales soliciten a su personal técnico o a sus proveedores una mentalidad distinta a la mentalidad tradicional, una mentalidad que incluya las conclusiones a las que han llegado muchos practicantes profesionales del diseño y desarrollo de software.