Creación de Software en México: ¿Estamos educando creadores de software?

Publicado en

El microprocesador digital ha resultado ser una pieza de tecnología de enorme impacto en la sociedad. Al parecer, apenas estamos empezando a descubrir la punta del iceberg en cuanto a las aplicaciones de cómputo digital y las implicaciones de éste en nuestras sociedades. Como otros avances tecnológicos, las computadoras son objeto para la creatividad y para el consumo masivo, o por lo menos eso es lo que se pretende, y no parece haber marcha atrás.

Las computadoras, como herramientas, se sitúan al lado de otras herramientas tecnológicas como el microscopio o el telescopio, sobre las cuales —cuando se tiene el conocimiento para usarlas— podemos apoyarnos para enfocar nuevos y diversos cuadros de la realidad.

Pero, ¿cómo están tomadas las posiciones para la creación de software internacionalmente y en México en particular? ¿Quiénes están ubicados y bien apuntalados en sus posiciones como creadores de software y quiénes han elegido una posición tan solo de consumidores del mismo? No falta quien opine que en México sí estamos creando software y que sí estamos preparados para seguir haciéndolo, y haciéndolo bien, que sí vamos por buen camino o que ya están puestos los trazos hacia un mejor desempeño de las futuras generaciones en esta área.

En la parte de la realidad que alcanzo a observar, no hay bases para sostener tal opinión. Encuentro, de ordinario, un entusiasmo falaz que disemina un sentido de autocomplacencia que cancela el cuestionamiento y la autocrítica sobre nuestra posición real en el panorama mundial en cuanto al diseño de software. Encuentro a veces un frenesí por consumir software, para sólo ostentar lo de moda o hablar de ello, como único fin, pero muy poco acerca de crear software que entregue valor directo y sensible al usuario final. Ese, quien no tiene otra opción que tolerar la absurda excusa “no hay sistema” como respuesta estándar ante la incompetencia de quien pretende emplear tecnología de software para proveer productos o servicios sin diseñar mejores procedimientos organizacionales y mejores sistemas informáticos.

La situación es deprimente al escuchar a quienes están en posiciones de liderazgo en esta área —dentro de instituciones académicas y también en empresas del ramo— y sus opiniones al respecto están basadas exclusivamente en información proveniente ya sea de la mercadotecnia o de erradas analogías con otras industrias como la industria de la construcción o de la manufactura de principios del siglo pasado. ¿Cuál es el mensaje implícito que hacen llegar a quienes los escuchan buscando dirección profesional? El cuadro es realmente patético al observar los esquemas que se proponen y se autorizan para la preparación del personal técnico que supuestamente estará a cargo de la supervisión y creación de soluciones de negocio basadas en software.

Dichos esquemas se adscriben fielmente a los sistemas tradicionales de escolarización y adoctrinamiento de masas, donde la memorización mecánica, control del pensamiento y ambiente carcelario han inspirado históricamente expresiones artísticas cuya aparente exageración nos espolea hacia la reflexión: ¿Cuáles son las condiciones para la creación de mejor software?

La preparación que resulta necesaria para la creación de mejor software suele tomar sendas poco populares en México, rumbos en las dimensiones del capital humano, los procesos de desarrollo, el diseño lógico, y las herramientas tecnológicas. Tan sólo en la dimensión del capital humano, obras como Peopleware [1], The Peopleware Papers [2] y Software for Your Head [3], nos ayudan a entender que el impacto que tiene sobre los resultados el perfil del personal es de un orden de magnitud muy superior al del resto de los factores.

En pocas palabras: el impacto relativo al proceso de desarrollo o a una arquitectura particular será, a lo mucho, marginal si está ausente el personal adecuado para sacar provecho de dicho proceso de desarrollo o para evolucionar dicha arquitectura. Esta área de actividad —cuya demanda parece que permanecerá— también requiere una mejora continua del estado de conciencia, tanto en quienes buscan aplicar el software a problemas reales como quienes pretenden proveer los servicios profesionales para crear soluciones basadas en software a dichos problemas, elevando las expectativas de educación en ambas partes.

De otro modo, con las expectativas de educación y preparación actuales, no veo otro panorama futuro mas que la continuación del conformismo, donde los clientes y proveedores de sistemas informáticos se deberán conformar con los sistemas que merecen. ¿Hay sólo una manera correcta para crear soluciones de negocio basadas en software? ¿Qué diferencia hay entre quienes responden afirmativamente a esa pregunta y quienes abrazan al dogmatismo como modelo estándar de vida? ¿Qué acaso lo que impone la realidad no es suficiente para adoptar valores, principios, patrones y prácticas que coloquen al aprendizaje continuo en el centro de nuestros proyectos en lugar de pretender que nuestra industria es igual a otras, e.g. ingeniería civil, y que debe funcionar con premisas fundamentales, métricas de desempeño, y demás políticas, similares?

¿Qué forma entonces podrá tener una estrategia plural de preparación para proyectos de creación de soluciones de negocio basadas en software? Sugiero poner atención a lo que han propuesto practicantes como Gerald M. Weinberg en su serie Quality Software Management [4]; de cuya influencia y síntesis actual se ha derivado el Manifesto for Agile Software Development[5]. Pero teniendo cuidado de no errar por la inercia de tomar las buenas ideas como si fueran dogmas permanentes; al contrario, insertando modelos de adopción en los cuales siempre esté presente el sentido de aprendizaje y de adaptación a nuevas condiciones de contexto. Por cierto, precisamente ese patrón adaptativo y de aprendizaje es parte de la esencia fundamental del manifiesto para el desarrollo ágil de software, desde sus inicios.

El mapa de las habilidades necesarias para presentarse muy bien equipado en un proyecto de creación de soluciones de negocio basadas en software ha estado ahí por ya largo tiempo. ¿Qué vas a hacer al respecto estimado lector? ¿Esperar a que alguien más te dicte qué pasos dar en tu carrera profesional la cual, ya sea como usuario o proveedor, con mucha seguridad se verá transformada positiva o negativamente por un empleo adecuado o descuidado de la tecnología de software? ¿Qué caracteriza tu plan de preparación técnica: el cortoplacismo y la continuación de los mismos patrones problemáticos populares, o la progresión en cada vez mejores niveles de entendimiento y aprendizaje?

Se hace relevante la reflexión acerca de esa tan mencionada palabra: educación. ¿Qué es la educación? ¿Dejaremos que se mantenga como sinónimo de escolarización y adoctrinamiento, como dice la canción “…No necesitamos educación, no necesitamos control mental…” o atenderemos las advertencias que nos hacen personas como Denise Dresser al referirse a un "México Amurallado" [6]?:

“México, el país donde en la escuela pública se aprende poco de ciencia, pero se aprende mucho de sometimiento; se aprende poco de tecnología, pero se aprende mucho de simulación; se aprende poco de álgebra, pero se aprende mucho de cumplimientos mediocres, negociaciones injustas y beneficios extralegales.”

Referencias
[1] T. DeMarco & T. Lister, Peopleware, 2nd ed. Dorset House, 1999.
[2] L. Constantine, The Peopleware Papers, 2nd ed. Prentice Hall, 2001.
[3] J. McCarthy & M. McCarthy, Software for your Head. Addison-Wesley, 2002.
[4] G. Weinberg, Quality Software Management, Vol 1-4. Dorset House, 1991-1997.
[5] Agile Manifesto. http://agilemanifesto.org
[6] D. Dresser, “México Amurallado”, . https://youtu.be/vI2YWd33rZY
 

Bio

Marco A. Dorantes es un consultor en el diseño y formulación de software desde 1987, oficio que lo llevó a la investigación aplicada en el campo de los métodos sistemáticos para diseño de software. Ha realizado diversas contribuciones públicas en la comunidad mundial de programación, tanto en foros técnicos como en software. http://blogs.msdn.com/marcod