Indicar técnicas de testing a agentes de IA no mejora la calidad del código

Un experimento reciente evaluó si indicar a los agentes de codificación que utilizasen técnicas concretas de pruebas o verificación —como desarrollo dirigido por pruebas (TDD), métodos formales, fuzzing o pruebas basadas en propiedades— mejoraba la corrección de sus implementaciones. La prueba reuti

La ceguera a los bugs: por qué los usuarios no ven los fallos

El autor analiza el fenómeno de la 'ceguera a los bugs', una condición en la que muchos usuarios y hasta empleados de empresas tecnológicas son incapaces de detectar errores evidentes en el software que utilizan o desarrollan. A diferencia de los programadores, que identifican cientos de fallos sema

Cómo no morir por mil cortes: repensar la calidad del software

La calidad del software no se reduce al buen funcionamiento de una aplicación, sino que atraviesa toda la organización. El texto parte de una premisa filosófica —la calidad como experiencia de un proceso vivo, comparable al cuidado de la salud— y la traslada al producto digital para preguntarse de q

Nada funciona y todos están eufóricos: la paradoja del software con IA

Un ingeniero de software describe una paradoja actual: mientras la inteligencia artificial generativa promete una era de mayor productividad, el software de consumo se vuelve cada vez más inestable. El autor recopila varios casos recientes de fallos en productos cotidianos: una app bancaria que requ

Del programador al curador: la nueva frontera del software con IA

Un desarrollador reflexiona sobre cómo la irrupción de los modelos generativos ha transformado su oficio en apenas doce meses. Tras reconocer que hasta la llegada de Opus 4, a mediados de 2024, la calidad del código producido por IA era baja y frustrante, explica que hoy rara vez necesita corregir l

La definición de 'terminado' en el desarrollo de software

¿Cuándo está realmente terminado un trabajo de software? El texto parte de una idea central: 'terminado' es una afirmación sobre la realidad, no sobre el esfuerzo. Enumera trampas habituales que llevan a los desarrolladores a declarar algo acabado cuando aún no lo está: que solo funcione en su propi

Notas sobre calidad de software: cómo reconocerla y por qué importa

Este ensayo desglosa una visión personal y operativa sobre qué significa la calidad en el software y cómo se manifiesta. Define la calidad como la ausencia de problemas, un espectro cuyo techo es la perfección, y un resultado que depende tanto de la capacidad técnica del equipo como del apetito que

QUALITY.md: un formato abierto para declarar modelos de calidad de proyecto

QUALITY.md es un formato de archivo abierto diseñado para declarar de forma explícita el modelo de calidad de un proyecto de software. El archivo agrupa en un mismo documento las características de calidad deseadas (seguridad, mantenibilidad, calidad del código, calidad de las pruebas), los requisit

Por qué cada fotograma importa en el diseño de interfaces

Un artículo reflexiona sobre el principio de 'cada fotograma perfecto', acuñado originalmente por Wayland para garantizar que cada fotograma de la interfaz gráfica se renderice sin defectos. El autor extiende esta idea a la experiencia de usuario: si en cualquier momento se toma una captura de panta

La estrella polar del software: priorizar al usuario final

El autor expone su jerarquía personal de prioridades a la hora de crear software, articulada en torno a lo que denomina su «estrella del norte»: maximizar la utilidad para el usuario final. Esta filosofía se estructura en tres niveles ordenados de importancia. En primer lugar, el software debe ser ú

Software: ¿Abstracciones rápidas, problemas lentos?

El artículo de James Ludwell-Grymes, "Los Costos 'Ocultos' de las Grandes Abstracciones", explora una tendencia preocupante en el desarrollo de software: la creciente dependencia de abstracciones que, si bien aumentan la velocidad de desarrollo inicial, a menudo conducen a una comprensión superficia

Ingeniería y Odio: ¿Por qué creamos productos impopulares?

Este artículo explora una realidad común y a menudo incómoda en la industria del software: trabajar en productos que la gente odia. El autor, un ingeniero con experiencia en empresas como Zendesk y GitHub, comparte su perspectiva sobre por qué esto ocurre y cómo afrontarlo. ¿Por qué trabajamos en p

Desarrollo lento: la paciencia construye software duradero

El artículo "Some Things Just Take Time" de Armin Ronacher reflexiona sobre la creciente obsesión con la velocidad en el desarrollo de software y la creación de empresas, contrastándola con la realidad de que algunas cosas, como la construcción de proyectos duraderos y relaciones sólidas, requieren

Integración Continua: Fallar para Aprender

La Integración Continua (CI) es una práctica fundamental en el desarrollo de software que automatiza las comprobaciones después de cada commit de código. Contrariamente a la creencia popular, el verdadero valor de la CI reside en su capacidad para *fallar*. El objetivo principal no es que pase, sino

Software de alta calidad: nace VSDD con IA

Verified Spec-Driven Development (VSDD) es una metodología de ingeniería de software innovadora que combina tres enfoques probados: Spec-Driven Development (SDD), Test-Driven Development (TDD) y Verification-Driven Development (VDD). Su objetivo es crear software de alta calidad, verificable y con u

IA revoluciona el desarrollo de software: la ingeniería agentic

La ingeniería agentic está revolucionando el desarrollo de software al cambiar radicalmente la relación costo-beneficio de escribir código. Tradicionalmente, la programación ha sido una actividad costosa, lo que ha moldeado nuestras prácticas de ingeniería tanto a nivel de proyecto (planificación, e