El blog de software y ciberseguridad de Redsauce

Programación en pareja III: No todo lo brillante es diamante

Artículo de Iván Fernández García

Programación en pareja III: No todo lo brillante es diamante

A pesar de todas las ventajas anteriores de utilizar una IA como un compañero de trabajo, cuando los desarrolladores dependen demasiado de un asistente de IA, es probable (y casi seguro) que reduzcan drásticamente su capacidad crítica y habilidades de resolución de problemas. La IA puede sugerir soluciones o incluso escribir porciones completas de código, pero si el programador no revisa cuidadosamente lo que hace el asistente, podría aceptar sugerencias subóptimas o con fallos, generando así un ciclo de dependencia donde cada vez se confía más en el asistente y menos en el propio conocimiento.


Esto se refleja en investigaciones que sugieren que el uso continuo de asistentes de IA puede frenar el aprendizaje profundo de los desarrolladores, especialmente los menos experimentados. Aunque es útil para acelerar el trabajo, este tipo de herramientas pueden desincentivar la búsqueda activa de soluciones o el debate colaborativo.

Implicaciones con los compañeros de trabajo

En entornos donde el pair programming es una práctica común, la introducción de un asistente de IA puede afectar la relación entre compañeros.


Por ejemplo, si uno de los desarrolladores empieza a confiar en la IA para resolver problemas, podría sentirse menos motivado a interactuar con su compañero. Esto reduce las oportunidades de discusión constructiva y aprendizaje mutuo, dos pilares fundamentales del pair programming. Su compañero podría sentirse desplazado o tener que asumir una mayor responsabilidad al revisar el código propuesto por la IA. Esta situación puede generar tensiones en el equipo, ya que se puede percibir como que un miembro está haciendo "menos trabajo" o que no está participando de manera equitativa en la tarea.


Una de las ventajas de trabajar con otra persona es la capacidad de intercambiar ideas y encontrar soluciones creativas a problemas complejos.


Si un programador empieza a confiar más en la IA que en su compañero, puede perderse ese proceso de lluvia de ideas que a menudo lleva a resultados más innovadores. Aunque la IA es excelente para tareas repetitivas o complejas desde el punto de vista técnico, las ideas verdaderamente disruptivas suelen surgir del intercambio entre humanos.

El maldito contexto

El principal problema es que la IA no es consciente del contexto en el que se está escribiendo el código. Imaginémonos que somos una IA. Estamos durmiendo profundamente y de repente suena el despertador y un usuario nos hace una pregunta sobre un trozo de código o algoritmo que quiere que haga que se vea algo en la pantalla.


No sabemos quién es esta persona, las vicisitudes del proyecto en el que trabaja, las librerías disponibles, el nivel de estrés... sólo tenemos algunos datos generales en la memoria y hemos de escribir rápidamente el trozo de código. Digamos que el usuario nos pide ordenar alfabéticamente una respuesta que hemos obtenido del backend. Esta es nuestra propuesta, que hace exactamente lo que se ha pedido:

package main

import (
"fmt"
"sort"
)

func main() {
// Simulamos una respuesta del backend
results := []string{"Zapato", "apple", "Mango", "banana", "cherry"}

// Ordenamos alfabéticamente
sort.Strings(results)

fmt.Println("Resultados ordenados alfabéticamente:")
for _, r := range results {
fmt.Println(r)
}
}

Ahora, al imprimir la lista, ¡resulta que Zapato aparece antes que apple! ¿Cómo es posible? ¡Locura! Pues no. Lo que falta aquí es contexto. Por ejemplo, con la petición que se nos ha hecho, no sabemos quién va a ver esta lista. ¿Es un humano? ¿Una máquina?


Según el código ASCII —esa joya de la ingeniería sesentera, fruto de un comité que creyó que 7 bits eran más que suficientes porque total, ¿quién iba a necesitar más letras que las del inglés y un par de símbolos graciosos? ¡vivan las máquinas de escribir!—, las letras mayúsculas van antes que las minúsculas. Por eso, cualquier palabra que comience por una mayúscula aparecerá antes que cualquier otra que empiece por minúscula, si se ordena según su valor ASCII.


Darle este tipo de contexto a la IA requiere pensar en ello. Y muchas veces, saberlo de antemano, o tener experiencia sobre en qué sitios se suele meter la pata, para poder advertirlo. Y esto es precisamente lo que estamos perdiendo poco a poco si seguimos por este camino: los códigos que obtenemos son refritos de códigos anteriores, y viejos bugs regresan una y otra vez en el ciclo infinito de la vida... como las modas absurdas de TikTok.

Un delicado equilibrio

La clave está en encontrar un equilibrio entre el uso de asistentes de IA y la colaboración humana. Los programadores deben ser conscientes de que la IA es una herramienta que complementa, no reemplaza, esta interacción. Para evitar caer en una dependencia, es recomendable fomentar el uso responsable de la IA, lo que implica verificar sus sugerencias, discutirlas con el compañero de programación y seguir trabajando en la mejora de las propias habilidades técnicas y analíticas.


En resumen, la IA puede ser una gran aliada en la programación en pareja, pero hay que utilizarla con cuidado para no sacrificar la colaboración, el aprendizaje y la creatividad que aporta el trabajo conjunto entre los generalmente entrañables seres humanos.

Sobre nosotros

Has llegado al blog de Redsauce, un equipo de expertos en QA y desarrollo de software. Aquí hablaremos sobre testing ágil, automatización, programación, ciberseguridad… ¡Bienvenido!