Mi experiencia utilizando GitHub Copilot una semana como Ingeniero de Software
Estos meses atrás he estado utilizado ChatGPT en mi día a día como ingeniero de software pero, ¿y herramientas como GitHub Copilot? Esta semana lo he estado probando para contarte mi experiencia desarrollando con un asistente de IA.
GitHub Copilot es un asistente de código basado en inteligencia artificial, que te sugiere ideas de código mediante autocompletado basado en el contexto, por lo que, cuanto más expresivo seas, mejor lo entenderá y de mayor será la calidad del código. Además, entiende todo lo que hay escrito de forma que puede sugerir patrones de código similares.
Durante esta semana me propuse utilizar GitHub Copilot junto a mi editor Visual Studio Code, para terminar algunas casuísticas avanzadas que tenía que desarrollar que son más complejas que un simple CRUD.
Por un lado pienso que me ha permitido ir más rápido, ya que gracias a las sugerencias de código te obliga a tomar decisiones, evaluando si son correctas o no y evitando caer en parálisis por análisis. Por otro lado hay muchas cosas que no es capaz de generar correctamente y me preocupa la calidad del código o terminar en soluciones óptimas locales.
He estado leyendo estudios que afirman el aumento de la productividad, pero también otros que afirman que se empeora la calidad del código. La verdad estos estudios creo que serán muy interesantes en los próximos años.
A lo largo de esta semana, he observado algunas ventajas de utilizar Copilot en mi flujo de trabajo:
- Entiende el contexto del fichero y te da sugerencias parecidas al resto de funciones.
- Rompe con la "hoja en blanco", ofreciéndote soluciones de las que partir.
- Te permite resolver dudas y contrastar ideas rápidamente.
- Te obliga a tener una buena notación de forma que los modelos puedan comprender lo que quieres.
- Reduce escribir código boilerplate.
Por el contrario, estas mismas ventajas me plantean algunas preocupaciones:
- Muchas de las sugerencias son erróneas, aún falta camino por recorrer.
- La mayor parte de las soluciones propuestas no son correctas y hay que rehacerlas prácticamente enteras.
- En ocasiones puede guiarte a una solución lejos de la óptima, por lo que no puedes olvidar el entender y comprender qué es lo que quieres conseguir realmente.
En mi opinión, creo que es de ayuda no por la calidad de las sugerencias en sí, si no porque reduce los cambios de contexto, el tener sugerencias o resolver dudas, así como a tomar decisiones más rápido.
Por otro lado creo que la herramienta potenciará a las personas que sepan sacarle partido, ya que no evita tener un conocimiento profundo de lo que se quiere desarrollar para poder evaluar correctamente las sugerencias que propone.
Habrá que estar atentos a futuros estudios que se realicen hablando por un lado de la productividad, pero por otro lado de la calidad del código, de la tasa de errores, etc. porque puedes ser mucho más productivo pero también puedes escribir peor código que te lleve a tener más problemas y requerir posteriormente más recursos. O quizá también depende de la persona. Porque quizá una persona que sabe lo potencia mientras que también puede darse el efecto contrario.
En cualquier caso seguiré utilizando estas herramientas en mi día a día, pero recordando que es esencial utilizarla con astucia, revisando cuidadosamente las sugerencias y manteniendo una comprensión profunda del código que se escribe.
¿Te ha resultado útil este artículo? Suscríbete a mi newsletter y da el primer paso para lanzar productos IT más rápido. Recibirás consejos exclusivos que te acercarán a tus objetivos.