
La palabra de moda desde hace algunos años es “IA”. IA por aquí, IA por allá, IA “hasta en la sopa” como dijéramos en Panamá. Y sí, la IA (AI en inglés) ha revolucionado la vida de muchos de nosotros y de los ingenieros que, en muchos casos, utilizamos las herramientas de IA como soporte.
Hace exactamente 15 años, cuando tuve la oportunidad de trabajar con un equipo de ingenieros de muy buena calidad (varios a los que considero mis mentores y amigos), una de las primeras cosas que pusieron en mis manos fueron tres libros:
- “Hackers and Painters”, de Paul Graham
- “The Clean Coder”, de Robert C. Martin
- “Clean Code”, también de Robert C. Martin
El primero me enseñó a pensar como un ingeniero, a entender que la programación es un arte y que los mejores ingenieros son aquellos que pueden combinar la lógica con la creatividad.
Los otros dos libros me enseñaron la importancia de escribir código limpio, mantenible y de alta calidad.
Yo, un desarrollador de software que aprendió a programar por su propia cuenta y con una formación académica en Ingeniería Electrónica, pensaba que sabía escribir código. El baldazo de agua fría que recibí al leer tres simples libros fue monumental (además de que también me aterrizaron a la realidad de que apenas estaba empezando mi carrera).
#.La moda “rápida”
Y, no es por nada, pero hemos pasado de intentar reparar cosas: a comprar nuevas. Hemos pasado de leer periódico o noticias, a enterarnos de lo que pasa en Twitter, o X, o como sea que se llame ahora. Todo lo queremos rápido, fácil y sin complicaciones.
Lo mismo pasa con el código.
En vez de sentarnos a pensar, con una hoja de papel, un lápiz, algunos resaltadores, un café y quizás un par de galletas, en cómo resolver un problema que quizás pueda tomar unas horas o algunos días: ahora abrimos ChatGPT y le decimos “escribe un código que haga X”. Y, claro, la IA lo hace. Pero, ¿qué pasa con la calidad del código? ¿Qué pasa con la mantenibilidad? ¿Qué pasa con el arte de escribir buen código?.
El buen código usualmente toma tiempo, esfuerzo y dedicación y rechazamos esto por la inmediatez.
#.Pero, ¿qué es el buen código?
Una pregunta muy complicada, a lo que Robert C. Martin tiene una respuesta muy sencilla: es el “un código limpio es aquel que parece escrito por alguien a quien le importa”, es un código que se lee como “una buena prosa”.
Y prefiero esta forma más sencilla de pensar, en vez de la otra forma más dura de “escribe código como si quien lo vaya a mantener fuera un psicópata que sabe dónde vives”.
El buen código es aquel que:
- Se puede leer fácilmente.
- Se puede entender fácilmente.
- Se puede mantener fácilmente.
- Se puede extender fácilmente.
Pero, hacer esto no siempre es sencillo, sobre todo cuando la presión por entregas rápidas o la falta de familiaridad con el contexto nos lleva a tomar atajos.
Y, esto mismo es lo que comúnmente ocurre cuando utilizamos herramientas de IA para generar código: soluciones rápidas, poco pensadas, y que muchas veces no cumplen con los estándares de calidad que un buen ingeniero debería seguir.
#.Bootcamps, cursos y la IA: combinación explosiva
Antes de que se malinterprete: creo que los Bootcamps son una excelente forma de empezar a programar y caer rendido ante la magia de producir código y ver cómo las cosas empiezan a funcionar.
Pero bien, muchos de estos Bootcamps enseñan únicamente la parte técnica del código y muchos de los que atienden a estos cursos evitan adentrarse en la filosofía de que el buen código no solo es ingeniería, sino también un arte.
Y, si a esto le sumamos la IA, que nos da soluciones rápidas y fáciles, el resultado es una generación de “ingenieros” que se enfoca más en la velocidad de entrega que en la calidad de su trabajo.
#.Entonces, ¿qué hacemos?
La respuesta no es sencilla, pero creo que debemos volver a las bases y entender que la ingeniería de software y el arte de escribir código son dos caras de la misma moneda.
Que las soluciones rápidas y fáciles no siempre son las mejores. Que el producir rápido, no significa que sea bueno. Que debemos tomarnos el tiempo para pensar, para planificar, para escribir código que no solo funcione, sino que también sea mantenible y de alta calidad.
Si eres un ingeniero de software que apenas está empezando, o alguno que ya tiene algo de tiempo, intenta hoy en cualquier momento sentarte a pensar en cómo resolver, por tu propia cuenta, un problema que tengas en tu trabajo.
Y sí, quizás la hoja de papel, el lápiz, el café, los resaltadores (y las galletas, no olvides las galletas) te ayuden a encontrar una solución más limpia, más mantenible y más fácil de entender. Y si luego que tienes esta idea, quieres utilizar una IA para ayudarte a perfeccionar el código, ¡adelante! Pero recuerda que la IA es una herramienta, no un reemplazo del ingeniero.
Y otra cosa: humildad. No te creas el mejor ingeniero del mundo porque escribiste un código que funciona. Siempre hay algo nuevo que aprender, siempre hay una forma mejor de hacer las cosas. Escucha, lee, pregunta y nunca dejes de aprender.
—
Esto fue escrito a mano y no por una IA 😀.