Yo se…Yo se, vibe code esto, AI aquello. Pero que le podemos hacer estamos viviendo la revolución de nuestra area, un cambio sin precedentes, un antes y un después. Y como cada cambio este conlleva sacrificios, cambios de mentalidad,básicamente ADAPTARSE.
Y claro quien soy yo para hablar, con relativamente poca experiencia dentro del desarrollo de software (6 años para ser exactos) estoy viviendo este cambio, algo que está impactando al rol que te imagines dentro el desarrollo de software.
Pero una vez aceptada la realidad adentrémonos en el tema. ¿Realmente se necesita cambiar nuestra forma de pensar para integrar la AI a la forma en la que desarrollamos?
La respuesta es: Definitivamente si
Explicare esto con un ejemplo, la forma en la que yo Pablo estaba acostumbrado a crear algo desde cero, desde ejecutar ese ‘npx create-react-app my_app’ y tener ese canvas, no en blanco, pero con un contador que aumentaba cada vez que dabas click.
Mi forma de iniciar 🚀
Iniciar un proyecto nunca ha sido fácil, sentarse con una idea en la cabeza o tener requerimientos a seguir y traducir eso a código es algo a lo que hay que adecuarse, si bien todos pueden tener un workflow diferente, mi forma de trabajar era muy concreta y solía ser aplicable en todos los proyectos.
Sigamos la creación de un proyecto personal por ejemplo:
- Tener una idea
- Aterrizar esa idea en un pequeño documento, escribir a grandes razgos lo que queria conseguir y que objetivos quería que cumpliera
- Definir un poco el diseño que queria que tuviera
- Comenzar a escribir codigo!
Facil, sencillo y bastante al punto. Como lo mas divertido para un desarrollador es el empezar a soltar linea no pasaba mucho tiempo desde la concepcion de una idea hasta el inicio del desarrollo.
Pero bien esto puede tener ciertas implicaciones…
El desarrollo y la sensación de control 🚫
Yay! Estoy codeando, peleando con tailwind o con mis propios estilos de CSS si me sentía atrevido. Probando alguna tecnología o tratando de aplicar algún patron de diseño recién descubierto.
Pero el trabajar creyendo que tenemos todo en la cabeza y que lo tenemos bajo control, es pecar de optimistas. Hay cosas que vamos a ignorar, por que al final del día somos humanos.
¿Como intentamos mitigar estos errores? con Testing.
- ¿Una nueva funcion? Unit Testing
- ¿Modules integrandose? Integration Testing
- ¿Queremos saber si nuestro endpoint funciona? F*unctional Testing*
Vaya que hasta existe esta forma de programar llamada Test Driven Development (TDD), donde nos enfocamos en controlar antes de programar. Los tests nunca desapareceran, son necesarios y nos dan seguridad.
Pero una vez que estamos desarrollando, esta continua sensación de seguridad y de control que queremos tener sobre lo que estamos haciendo, nos cobra factura en el tiempo y esfuerzo.
Esa hasta ahora había sido la forma en la que yo trabajaba. Creyendo tener cierto control sobre lo que hacia y que posibles errores que pudieran surgir encontraría la forma de mitigarlos.
Como cambio todo 🦆
¿Conoces la técnica de rubber ducky? ¿Te ha pasado estar contándole a alguien en que estas atascado y que la solución venga mágicamente a tu cabeza? Eso es la tecnica de rubber ducky, tener esta ayuda externa (llamese un patito de goma) con quien podemos descargar lo que tenemos en la cabeza para hacer esta especia de debugging y poder dar con alguna solucion.
Imaginate tener esta ayuda donde podemos descargar nuestras ideas, pero no solo cuando te sientes atorado, si no también cuando quieres buscar la mejor opción a un solución o hacer alguna lluvia de ideas para buscar diferentes formas de llegar a algún lugar. En eso se esta convirtiendo el uso de la AI ultimamente. Y es la forma en la que yo estoy intentando aplicarla a lo que hago.
Mi workflow cambió radicalmente:
Antes: Code → Test → Code → Test.
Ahora: Definición → Contexto → Conversación→ Refinamiento.
Mi forma de pensar ha cambiado, mi enfoque es diferente. Ahora antes de empezar a codear intento hablar con esta herramienta. Ese documento que hacia antes para escribir a grandes rasgos lo que quería conseguir, que tal si ahora lo pulo un poco mas, le dedico un poco mas de tiempo como si estuviera trabajando con alguien y quisiera que lo entendiera.
Dentro de esta nueva forma de pensar
Esto cambio el juego totalmente, ya no voy como loco a programar e ir trabajando sobre la marcha (cuando no tengo requerimientos claros), ahora tengo a este aliado que sabe lo que quiero conseguir y entiende como debe coexistir con todo lo demas.
DEFINITIVAMENTE que hay que revisar que esta haciendo pero es un mindset diferente, Pero el mindset es diferente: ahora puedo probar múltiples decisiones en minutos. ¿Conviene la Opción A o la B? Aplico ambas, obtengo resultados y decido basándome en evidencia rápida, no en suposiciones.
Es un compañero que está a tu lado todo el tiempo solo esperando que le des alguna instruccion. Y no es solo el hecho de, listo aquí esta lo que me pediste y adios. Puedes crear algo y lo puedes corregir dándole aún más contexto del porqué de esas correcciones, para que la siguiente vez que intente hacer algo, sea consiente de esos cambios. Este paso es importante y diría que es el por qué es realmente poderoso tener a esta herramienta todo el tiempo al lado tuyo. Es consciente de lo que trabajas y que existe dentro de tu proyecto.
Mi nuevo workflow se resume así:
- Definir la idea en un documento
- Escribir que quieres conseguir y como lo quieres conseguir
- Definición de algunos requerimientos
- Crear tu prompt
- Corregir lo generado
- Añadir test en el proceso
Claro que sigo programando, pero ahora busco integrar esta herramienta tan poderosa en mi flujo de trabajo, ya no como un autocompletado de código o como un stack overflow a la mano (como era hace no mucho). Si no como un segundo cerebro.
Como SWE no somos ajenos al cambio, somos consientes de este y uno sabe que quien no busca actualizarse se quedara atras. Claro que da miedo dar un salto tan grande como este, pero entre mas pronto aceptemos que tenemos que cambiar las formas en las que trabajamos actualmente, mas rápido creceremos también hacia este nuevo camino.
Top comments (0)