¿Se pueden suplir a los programadores?

"Es por eso que si bien las Low-Code y No-Code solutions agilizan el ciclo de desarrollo de software, no contamos con el mismo nivel de sofisticación en comparación al desarrollo de software tradicional. Es por eso que creo que no reemplazarán a los programadores, pues la fuerza de trabajo especializada permite la creación de tecnología compleja, que cada vez más se ve en esta economía del conocimiento."
Por Genaro Almaraz
Nov 15, 2021

Imaginemos la siguiente situación:

Somos los ejecutivos de una empresa, y tenemos una actividad muy importante por realizar. Debido a nuestra corta disponibilidad de tiempo, necesitamos ser rápidos y precisos. Justamente es una tarea de automatización de reportes y podemos solicitar apoyo a nuestro equipo de IT, pero se encuentran con una carga de trabajo alta, y contratar a programadores externos resultaría costoso. ¿Qué podemos hacer?


Seguramente has escuchado plataformas llamadas No-Code. En realidad, de acuerdo a Gartner, este es un término meramente usado en marketing, para vender plataformas a usuarios no-técnicos que les permitan la creación de aplicaciones. Son basadas en la idea WYSIWYG (“What You See Is What You Get”), la cual hace referencia a la abstracción de todo el código que implica crear una aplicación, a sólo el uso de una interfaz gráfica de bloques estilo drag-and-drop.

Regresando a nuestra situación inicial, las plataformas No-Code pueden ser una buena solución. Si bien implican un costo e incluso conocimientos básicos de programación (como visual scripting), permiten la creación y prototipado rápido de aplicaciones, y ayudan a las organizaciones a iterar más rápido.

Aquí quiero tocar otro concepto. Si bien vimos que No-Code puede ser una buena solución, en realidad estamos limitados a las capacidades que nos ofrece la plataforma que adquiramos. ¿Qué hacer en estos casos? Podemos recurrir a Low-Code Application Platforms (LCAP), en las que con scripting (normalmente en el lenguaje de programación JavaScript), podemos extender y agregar módulos customizados.

En general las plataformas No-Code y Low-Code cuentan con “bloques” de funciones, que permiten llamadas a servicios externos de otros sistemas (también conocido como Software as a Service), la implementación de widgets, plantillas, llamar diferentes fuentes de datos… De acuerdo a lo sofisticado de la plataforma que adquiramos, será la calidad de aplicaciones que podamos desarrollar.

Y también podemos hablar de LCAP cuando tratamos el tema de “desarrollo de software asistido”. Para los más conocedores de la ingeniería de software, GitHub (compañía adquirida por Microsoft y que permite compartir y versionar proyectos de software en la nube), en verano de este año anunció su nueva herramienta llamada GitHub Copilot, desarrollada en alianza con OpenAI (laboratorio de investigación en inteligencia artificial, co-fundado por Elon Musk). 

Esta herramienta permite el desarrollo de software ágil, autocompletando con unas cuantas líneas o incluso archivos enteros de código, las tareas de los programadores. Cabe aclarar que de acuerdo a los creadores de esta herramienta, el código generado automáticamente no es perfecto y no se garantiza su compilación o el uso de librerías actuales, por lo que sigue siendo responsabilidad del programador llevar a cabo el testing correspondiente.

A fecha de la publicación de este artículo, GitHub Copilot aún no está disponible comercialmente, pero si eres curioso como yo, puedes hacerme compañía uniéndote a la lista de espera en la página principal: https://copilot.github.com/.

Hace falta ahora comentar sobre el desarrollo de software tradicional. Este es el realizado por personas técnicas, que cuentan con una preparación sólida en cuanto a no sólo el desarrollo de sistemas computacionales, sino también, por ejemplo, de productos de analítica (datasets, dashboards). Y aunque contratar a un grupo de desarrolladores puede resultar costoso, quiero que nos planteemos la siguiente cuestión: si las organizaciones usan las mismas LCAP, ¿en dónde está la innovación o diferencia competitiva?

Es por eso que si bien las Low-Code y No-Code solutions agilizan el ciclo de desarrollo de software, no contamos con el mismo nivel de sofisticación en comparación al desarrollo de software tradicional. Es por eso que creo que no reemplazarán a los programadores, pues la fuerza de trabajo especializada permite la creación de tecnología compleja, que cada vez más se ve en esta economía del conocimiento.

En resumen, podemos representar (por nivel de complejidad técnica), los diferentes términos de la siguiente manera:

Si estás interesado en aprender más sobre este tema, te recomiendo echar una leída a la diferencia entre los conceptos “programador” y “desarrollador” (que usé de manera indistinta en este artículo), así mismo, a soluciones como Mendix y Salesforce.

Genaro Almaraz

Genaro Almaraz

Maestro en ciencias computacionales por el Tec de Monterrey.
Share This