La Programación ha Muerto
- Pedro Castellanos
- Nov 7, 2024
- 5 min read
La computadora fue uno de los inventos más inútiles de la humanidad. No hacen nada por sí solas si no se les indica exactamente qué deben hacer. Solo pueden entender y actuar sobre un conjunto de instrucciones a la vez, compuesto por cadenas de ceros y unos.
Ahora, el reto es cómo hacerle entender a la computadora qué debe hacer; nadie habla a través de ceros y unos a sus computadoras directamente; por eso se inventaron los lenguajes de programación.
Los lenguajes de programación son básicamente un conjunto de instrucciones y estructuras capaces de formar algoritmos basados en una lógica sobre un paradigma o plataforma que permiten a nosotros, los humanos, crear cadenas de ceros y unos que la computadora puede interpretar y ejecutar.
Existen innumerables lenguajes de programación. Cuanto más cercanos están a la máquina (con la capacidad de generar código óptimo), más complejos son; los lenguajes de última generación se han simplificado tanto que han ganado popularidad y adopción mundial.
Al final, utilizamos el código para traducir los requerimientos del negocio en flujos, reglas, pantallas, datos que cambian de estado para controlar algo. No veo la necesidad de desarrollar ningún tipo de sistema si el fin último no es controlar y organizar algo (desde el punto de vista de negocios).
El tema de programar se convierte en un diálogo de locos. Generalmente, intervienen al menos dos personas con enfoques diametralmente opuestos: un usuario o dueño del negocio y un programador. El primero conoce el negocio, los flujos, los procesos y necesita una solución para organizar y controlarlo. Por otro lado, tenemos al desarrollador, familiarizado con una o varias plataformas de desarrollo, sabe cómo crear instrucciones y programas, pero desconoce completamente el negocio. Aquí es donde comienzan los problemas.
El desarrollador espera que el dueño del negocio le haga un solo requerimiento de manera estructurada y lógica que pueda traducir directamente al código, de forma integral y definitiva en la primera oportunidad. Y el dueño del negocio espera que el desarrollador entienda la dinámica del negocio tras una breve charla y con dibujos hechos en una servilleta de papel.
El viacrucis comienza entre este diálogo entre tres: dueño de negocio, programador y la computadora; inevitablemente, este triángulo se convertirá en una pesadilla.
Ahora imagínate esto llevado a la 'n' potencia cuando hablamos de organizaciones con cientos de usuarios y programadores.
¿No sería más fácil decirle a la computadora, de una forma clara y concisa, qué se requiere y que ella responda con una propuesta que pueda ser utilizada y probada de forma inmediata? Si hay alguna desviación entre lo solicitado y lo generado, poder aclararlo o especificarlo de manera más detallada, perfeccionando la 'solución' de forma interactiva e iterativa.
Retrocedamos, bueno, varios pasos atrás, décadas atrás.
¿Realmente crees que tu negocio es muy diferente del de al lado? La forma como contabilizas tu negocio, administras tus cuentas por cobrar/pagar, manejas tus prospectos o ejecutas una campaña de marketing, o administras tu cadena productiva son procesos de negocio y problemas diarios a los que la mayoría de los negocios se enfrentan. ¿Crees que los sistemas y procesos (ciclos) de negocio que maneja un banco son, funcionalmente hablando, diferentes de los del banco de enfrente?
Hace más de tres décadas nacieron los sistemas configurables que hacen todo, conocidos como ERP. SAP es el rey de la colina y, aunque tiene una parte de codificación, básicamente el 80% de una implementación 'a la medida' es configuración. En este tipo de sistemas, todos los ciclos de negocio 'comunes' ya han sido pre-desarrollados en módulos configurables que pueden interconectarse. En el ámbito bancario existen plataformas, como la legendaria Altamira, que eran básicamente lo mismo pero en un sistema mainframe.
Si has tenido el enorme privilegio de formar parte de un equipo de implementación de un sistema ERP, sabrás que no es una tarea fácil. La pesadilla tiene sus orígenes en el mismo triángulo amoroso que abordamos anteriormente entre el sistema, el usuario y los configuradores/implementadores.
¿No sería mejor que un experto del negocio le explicara a SAP cómo son sus procesos de negocio, le mostrara los datos, y SAP comenzara a autoconfigurarse para que el usuario empezara a probar el sistema y dictar ajustes?
Creo que ya están tomando la pista de hacia dónde vamos en el tema de sistemas.
GenAI es una singularidad en sí mismo, pero es solo una pequeña muestra del potencial que tiene.
El intermediario que existe entre la persona que tiene la necesidad de un sistema y el sistema que responde con una solución está a punto de desaparecer. En ese sentido, digo que la Programación ha Muerto.
¿Dónde quedan los programadores?
Al final, para que esta magia suceda, los modelos AI o LLMs necesitan aprender de algo para generar cosas similares a lo que han aprendido previamente. Imagínense que alimentamos al modelo solo con novelas de terror; lo que va a generar serán novelas de terror. Para mantener los sistemas actuales, se requerirá que sigan aprendiendo de la fuente de toda la genialidad: la creatividad humana.
En este tema, se requieren innovadores componentes de software desarrollados por humanos que tengan la capacidad de ser 'utilizados' por estos sistemas autoconfigurables para aprender. Todas las piezas prefabricadas capaces de construir un rascacielos desde cero deben existir y estar disponibles en algún lado, creadas por algún genio.
Piensen en esto: el fenómeno GitHub, donde todo el mundo 'código' programado por alguien para hacer copy-paste y terminar ese tedioso proyecto de la universidad, desapareció de la noche a la mañana. ¿La razón? Fue utilizado para entrenar varias GenAI que ahora básicamente escriben el código por ti. Si esta tendencia continúa, podríamos llegar a una sequía de innovación en el código porque todo será una nueva representación de lo mismo (pensando negativamente y a largo plazo).
¿Cómo me preparo para ese futuro hoy?
El futuro no le pertenece al que tiene las respuestas; después de todo, tenemos Google para eso, sino a las personas que saben hacer las preguntas correctas para obtener las respuestas que necesitan.
Lo mismo ocurre con este futuro que viene; el rol clave será para aquellas personas que tienen un conocimiento profundo del negocio, sus estrategias y diferenciadores, y que tienen la capacidad de abstraer esa complejidad y plasmarla en palabras, en preguntas, en prompts que serán ingresados a estos sistemas autoconfigurables.
1. Vuélvete un experto en ingeniería de prompts: Juega con todas las GenAI disponibles y haz lo mismo que haces hoy, pero a través de prompts, incluso planear tu día, aprender algo, generar tu rutina del gimnasio.
2. Programa sin programar: Crea una aplicación para tu teléfono, un sitio web o quizás un juego solo usando prompts de una GenAI. Será tortuoso o doloroso, pero lograrlo te abrirá la mente a lo que hoy consideras imposible. Si te atascas, pregúntale al GenAI.
3. Sumérgete en herramientas Low Code/No Code: SharePoint es el juguete ideal que viene gratis en la caja de cereal. Es la plataforma LC/NC de Fisher-Price. Vuélvete un experto en crear soluciones basadas en datos usando SharePoint (y sin usar Excel). Puedes obtener un SharePoint personal por menos de unas pocas decenas de dólares al mes.
4. Aprende a diagramar: Genera diagramas que modelen tu negocio y plasmen la complejidad del mismo en diagramas que un niño de 8 años pueda entender. Usa herramientas gratuitas como Miro. Mapea todo lo que sucede alrededor de tu trabajo: procesos, sistemas, datos, personas, clientes, producto, etc.
Comments