Dela via


Creación de software en México

¿Qué hay acerca de la creación de software* en México? Me gustaría que mi escueta opinión al respecto surgiera de observar un espectro muy amplio de la realidad nacional, pero en tal caso ya no sería escueta, ni personal, ni estaría en un blog individual sino en alguna publicación oficial dispuesta para las masas. Sin embargo, sirva como una aspiración a ser eso que son otros mexicanos tan notables por el empleo de su sentido crítico, personal, ese que tiene la posibilidad de transformar al individuo de adentro hacia afuera.

*software es una palabra de la voz inglesa para denotar el conjunto de programas, instrucciones y reglas informáticas para ejecutar ciertas tareas en una computadora. Para el gran público propongo que se entienda como la lógica subyacente para realizar una tarea en una computadora.

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 del 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 sólo 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 cuando 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?

† “ ...¿Qué justifica sostener una opinión basada en la ignorancia? He aquí que opinar tan sólo porque se puede opinar, sin atención, representa un serio agravante para la sociedad a la que se pertenece y se representa... ” —El “derecho” a opinar

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 personal, del proceso de desarrollo, de la idea de diseñar, y de las herramientas tecnológicas [ver las fuentes en Rapid Development por Steve McConnell]. Por mencionar algunas de las más generales categorías que agrupan los factores críticos de éxito en la actividad de crear soluciones de negocio basadas en software, según lo han informado —desde hace muchos años— varios practicantes profesionales de dicha actividad. Tan sólo en la dimensión del personal involucrado en la creación de soluciones de negocio basadas en software —esto incluye clientes, usuarios y proveedores— las siguientes obras nos ayudan a entender que el impacto que tiene sobre los resultados el perfil de dicho personal es de un orden de magnitud muy superior al impacto que tienen los factores en las otras dimensiones: Tom DeMarco y Tim Lister en su clásico Peopleware: Productive Projects and Teams, también Larry L. Constantine por medio de su The Peopleware Papers: Notes on the Human Side of Software, no menos relevantes los hallazgos de Jim y Michele McCarthy en su Software for Your Head. Por mencionar algunos. 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 más el de 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 y continuar con lo que han propuesto practicantes como Gerald M. Weinberg en su serie de cuatro tomos: Quality Software Management; de cuya influencia y síntesis actual se ha derivado el Manifesto for Agile Software Development. 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 —para lo cual el sentido crítico ha sido una herramienta por excelencia en episodios trascendentales de la Historia—. 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.

Ahí está, lo necesario para presentarse muy bien equipado en un proyecto de creación de soluciones de negocio basadas en software, ahí ha estado 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, así como la amplitud de miras que proponen pensadores como David West en su Object Thinking?

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 de los mexicanos destacados como Denise Dresser en su artículo México amurallado en la revista Proceso No. 1723 del 8 de noviembre de 2009?