<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
  <title>Paradigma Digital</title>
  <link>https://www.paradigmadigital.com/blog/</link>
  <atom:link href="https://www.paradigmadigital.com/feed.xml" rel="self" type="application/rss+xml" />
  <description>Big Data, Blockchain, cultura ágil, desarrollo, diseño… Te ofrecemos toda la información que necesitas para estar al día en tecnología.</description>
  <generator>Eleventy - 11ty.dev</generator>
  <language>es-ES</language>
  <lastBuildDate>Thu, 14 May 2026 06:19:32 GMT</lastBuildDate>
  <image>
    <url>https://www.paradigmadigital.com/assets/img/logo/favicon.png</url>
    <title>Paradigma Digital</title>
    <link>https://www.paradigmadigital.com/blog/</link>
    <width>192</width>
    <height>192</height>
  </image>
  <item>
        <dc:creator>
            <![CDATA[ María Mira ]]>
        </dc:creator>
        <title>Por qué la estrategia se rompe al bajar a la operativa: 3 barreras sistémicas que ningún excel detecta y cómo superarlas</title>
        <link>https://www.paradigmadigital.com/transformacion-organizacional-rev/por-que-estrategia-rompe-bajar-operativa-tres-barreras-sistemicas-como-superarlas/</link>
        <pubDate>Wed, 13 May 2026 06:00:00 GMT</pubDate>
        <guid isPermaLink="true">https://www.paradigmadigital.com/transformacion-organizacional-rev/por-que-estrategia-rompe-bajar-operativa-tres-barreras-sistemicas-como-superarlas/</guid>
        <description>La estrategia no suele romperse por falta de visión. Se rompe al bajar a la operativa, donde aparecen tres barreras invisibles: incertidumbre, incentivos desalineados y bloqueos en el flujo de trabajo que ningún Excel muestra. Hoy te contamos qué debes tener en cuenta para trabajar en un entorno productivo
</description>
        <content:encoded>
            <![CDATA[
                <p>Cuando los planes estratégicos fallan, no suele ser por falta de visión. De hecho, <strong>los datos hablan por sí solos</strong>: mientras un informe global de <a href="https://www.pmi.org/learning/thought-leadership/series/pmo/c-suite-failing-strategiy-lessons" target="_blank">The Economist Intelligence Unit y el Project Management Institute (PMI)</a> señala que el 61% de las empresas reconoce ser incapaz de cerrar la brecha entre la estrategia y la ejecución real del día a día, una publicación reciente de <a href="https://www.cio.com/article/4160977/beyond-the-25-reasons-projects-fail.html" target="_blank">CIO Magazine (April, 2026)</a> apoyada en datos de Gartner de 2024, revela que apenas el 48% de las iniciativas corporativas logran alcanzar sus objetivos de negocio.</p>
<p>Esto ocurre, principalmente, por lo que podríamos llamar una especie de <strong>&quot;ceguera sistémica&quot;</strong>. Cuando miras la empresa desde la mesa del Comité de Dirección, todo parece un organigrama perfecto, limpio y ordenado. La realidad operativa, en cambio, es una <strong>red compleja de interdependencias</strong> tanto humanas como técnicas. Intentar gestionar un cambio profundo basándose solo en el organigrama es, básicamente, gestionar una ilusión.</p>
<p>Si de verdad queremos conectar la estrategia con la ejecución del día a día y proteger los beneficios de una transformación exitosa, toca mirar <strong>tres dimensiones invisibles</strong> que pocos tienen en cuenta. No aparecen en los informes financieros pero son las fuerzas que impulsan o frenan el avance de la compañía:</p>
<ol>
<li><strong>Dimensión cognitiva</strong>: la capacidad mental y emocional disponible de tu equipo.</li>
<li><strong>Dimensión estructural</strong>: las reglas del juego reales (como incentivos e interacciones entre las personas y departamentos) más allá de los cargos.</li>
<li><strong>Dimensión del flujo</strong>: el camino real que recorre el valor, independiente de la jerarquía.</li>
</ol>
<p>Veamos cómo estas barreras invisibles pueden bloquear la ejecución con ejemplos reales.</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">1 <span class="enum-header"></span> Barrera cognitiva: el coste oculto de la incertidumbre</h2>
<p>Esta dimensión se refiere al <strong>&quot;ancho de banda mental&quot;</strong> de la organización. Pensemos: si el cerebro de los y las profesionales gasta su energía en sobrevivir al miedo o la duda, biológicamente no tiene recursos ni para innovar ni para pensar a largo plazo.</p>
<p>Pongamos un ejemplo típico. Imaginemos una empresa que anuncia una fusión o una reestructuración con la promesa de &quot;ganar agilidad&quot;. Pasan los meses y nadie sabe cuál es exactamente su rol, si su responsable seguirá siendo su responsable o si su puesto peligra porque está duplicado.</p>
<p>La Dirección revisa los perfiles y piensa: <em>&quot;Tenemos al mejor talento del mercado, ¿por qué hay tanta resistencia y tan poca proactividad?&quot;</em>.</p>
<p>No es un problema de actitud, es pura biología. El <strong>cerebro humano procesa la incertidumbre social como si fuera una amenaza física</strong>. Diferentes estudios e investigaciones tratan este tema y llegan a las siguientes <strong>conclusiones</strong>:</p>
<ul>
<li>El alto rendimiento colapsa sin seguridad psicológica (como demostró el famoso <a href="https://www.google.com/search?q=https://rework.withgoogle.com/print/guides/5721312655835136/" target="_blank">Proyecto Aristóteles de Google</a>).</li>
<li>Vivir bajo el estrés de la incertidumbre llega a reducir el Coeficiente Intelectual funcional en unos 13 puntos (según las investigaciones de <a href="https://scholar.harvard.edu/sendhil/scarcity" target="_blank">Mullainathan y Shafir -Harvard/Princeton</a>).</li>
</ul>
<p>Añadamos, aunque no lo resolvamos aquí, el punto de <a href="https://www.paradigmadigital.com/techbiz/podcast-puede-ia-aumentar-inteligencia-humana-riesgos-limites-oportunidades/" target="_blank">cómo la IA puede ayudar o limitar la inteligencia humana</a> y la incertidumbre que ello está generando.</p>
<h2 class="block block-header h--h20-175-500 left  ">¿Cómo superarlo?</h2>
<p>Entendiendo la <strong>seguridad psicológica</strong> como una <strong>gestión de riesgos</strong> para proteger la inteligencia del equipo y no como un tema de &quot;buenismo&quot;. Y sí, se puede medir, dando un paso más allá de los clásicos KPI de resultados, empezando a utilizar <strong>Key Behaviour Indicators (KBI)</strong>: indicadores que miden conductas reales, como la frecuencia con la que el equipo reporta errores sin miedo (que conecta directamente con la seguridad psicológica) o la colaboración entre áreas… Así visualizamos qué nos hace tener éxito y que es necesario mejorar.</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">2 <span class="enum-header"></span> Barrera estructural: la trampa de la optimización local</h2>
<p>Esta dimensión trata sobre <strong>cómo se diseñan las interacciones y los incentivos</strong> entre las cajas del organigrama, no sobre cómo se pintan esas cajas.</p>
<p>Imaginemos el clásico cierre de trimestre. La dirección comercial tiene un bonus por volumen de ventas. Por su parte, la dirección de tecnología/operaciones tiene su propio incentivo por estabilidad y reducción de costes. <strong>¿El resultado?</strong> Ventas cierra contratos metiendo &quot;customizaciones&quot; complejas que implican mucho trabajo para llegar a su cuota. Mientras, Operaciones frena los despliegues o reduce “customizaciones” para reducir coste y conseguir sus objetivos.</p>
<p>El resultado es que ambos departamentos cumplen estrictamente sus objetivos o KPI individuales pero los clientes no tienen lo que esperaban, la empresa pierde dinero, los equipos derrochan tiempo y esfuerzo y, en conjunto, se dedica un tiempo inestimable a buscar culpables.</p>
<p>Como explicaba <a href="%5Bhttps://thesystemsthinker.com/a-lifetime-of-systems-thinking/%5D(https://thesystemsthinker.com/a-lifetime-of-systems-thinking/)" target="_blank">Russell Ackoff</a>, es frecuente caer en esta trampa de la optimización local: <strong>cuando mejoras las piezas por separado, a menudo se acaba destruyendo el rendimiento del todo</strong>.</p>
<h2 class="block block-header h--h20-175-500 left  ">¿Cómo superarlo?</h2>
<p><strong>Rediseñando las interacciones</strong>: mientras los incentivos premien el silo vertical, las formas de trabajo colaborativas y las metodologías ágiles será difícil que funcionen. Aquí, el rol del C-Level tendrá que, entre otras funciones, <strong>rediseñar cómo interactúan las diferentes áreas</strong> y no tener en cuenta solo el performance de cada una de ellas de forma aislada.</p>
<p>Por tanto, se necesitan <strong>objetivos que impacten directamente en toda la empresa</strong>, haciendo que Ventas y Operaciones (en este caso) trabajen conjuntamente para conseguirlos. Objetivos compartidos con los que se gana (o se pierde) juntos.</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">3 <span class="enum-header"></span> Barrera del flujo: lo que no ves te está costando dinero</h2>
<p>Esta dimensión se centra en la <strong>diferencia entre &quot;gente ocupada&quot; y &quot;trabajo terminado&quot;</strong>.</p>
<p>Pongamos un escenario en el que si miras alrededor ves a todo el mundo sin parar, saturados de tareas: todas las agendas están llenas y la gente al 100% de capacidad. Sin embargo, una iniciativa clave tarda 12 meses en llegar al mercado. ¿Te suena?. Y claro, surge la pregunta <em>“¿Cómo podemos tardar tanto con todo lo que se trabaja?&quot;</em>.</p>
<p>La realidad es que <strong>el valor</strong> no se mueve cuando la gente trabaja; <strong>se mueve cuando el trabajo fluye</strong>. En la mayoría de empresas, las tareas pasan una parte importante del tiempo en &quot;colas invisibles&quot; (esperando presupuesto, esperando validación, esperando un entorno de pruebas…).</p>
<h2 class="block block-header h--h20-175-500 left  ">¿Cómo superarlo?</h2>
<p>Utilizando Value Stream Management (VSM). Imaginémoslo como una capa de &quot;Rayos X&quot; que ignora la jerarquía y visualiza el flujo de trabajo y de información hasta convertirse en valor. Como indica <a href="https://flowframework.org/" target="_blank">Mik Kersten en Project to Product</a>, al gestionar el flujo en lugar de los proyectos aislados, eliminas las esperas que ningún organigrama es capaz de mostrar.</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Conclusión: del control a la arquitectura</h2>
<p>Existe una inercia tradicional en el mundo empresarial: si algo falla, solemos culpar a las personas e intentamos &quot;arreglarlas&quot; metiéndolas más presión o formación. Pero <a href="https://deming.org/quotes/i-should-estimate-that-in-my-experience-most-troubles-and-most-possibilities-for-improvement-add-up-to-the-proportions-something-like-this94-belongs-to-the-system-responsibility-of-management6-sp-3/" target="_blank">W. Edwards Deming</a> ya demostró con su <strong>Regla 94/6</strong> que el 94% de los problemas pertenecen al sistema y solo el 6% al individuo.</p>
<p>Las organizaciones que lideran hoy el mercado, se dedican a <strong>&quot;arquitecturar el entorno&quot;</strong>. Tener en cuenta <a href="https://www.paradigmadigital.com/transformacion-organizacional-rev/importancia-datos-calidos-procesos-cambio-optimizacion/" target="_blank">los datos cálidos en procesos de cambio y optimización</a> puede contribuir a pasos más robustos en la evolución de la organización.</p>
<h2 class="block block-header h--h20-175-500 left  ">¿Y qué significa &quot;arquitecturar el entorno&quot;?</h2>
<p>Significa <strong>diseñar deliberadamente un ecosistema de trabajo</strong> donde “hacer lo correcto” sea lo más fácil. De esa forma:</p>
<ul>
<li>Se protege el intelecto colectivo (Neurociencia).</li>
<li>Se alinean incentivos y formas trabajo para que se colabore (Sistemas).</li>
<li>Se eliminan obstáculos para que el trabajo fluya (VSM).</li>
</ul>
<p>Como señalan <a href="https://teamtopologies.com/key-concepts" target="_blank">Skelton y Pais en Team Topologies</a>, la ventaja competitiva no es para quien presiona más a sus equipos, sino para <strong>quien diseña mejores sistemas</strong>.</p>
<p>La pregunta que queda en el aire es: <strong>¿estamos gestionando personas o estamos diseñando el sistema para el éxito?</strong></p>
<p><strong>Referencias</strong></p>
<ul>
<li><a href="https://www.pmi.org/learning/thought-leadership/series/pmo/c-suite-failing-strategiy-lessons" target="_blank">PMI-The Economist (2013)</a>. Why good strategies fail: Lessons for the C-suite.</li>
<li><a href="https://www.cio.com/article/4160977/beyond-the-25-reasons-projects-fail.html" target="_blank">CIO Magazine</a> (April,2026).</li>
<li><a href="https://www.google.com/search?q=https://rework.withgoogle.com/print/guides/5721312655835136/" target="_blank">Google re:Work - Project Aristotle</a>.</li>
<li><a href="https://scholar.harvard.edu/sendhil/scarcity" target="_blank">Mullainathan, S., &amp; Shafir, E. (2013)</a>. Scarcity: Why Having Too Little Means So Much.</li>
<li><a href="https://thesystemsthinker.com/a-lifetime-of-systems-thinking/" target="_blank">Ackoff, R. L. (1994)</a>. The Democratic Corporation. Oxford Univ. Press.</li>
<li><a href="https://flowframework.org/" target="_blank">Kersten, M. (2018)</a>. Project to Product. IT Revolution.</li>
<li><a href="https://www.paradigmadigital.com/transformacion-organizacional-rev/importancia-datos-calidos-procesos-cambio-optimizacion/" target="_blank">Deming, W. E. (1986)</a>. Out of the Crisis. MIT Press.</li>
<li><a href="https://teamtopologies.com/key-concepts" target="_blank">Skelton, M., &amp; Pais, M. (2019)</a>. Team Topologies.</li>
</ul>

            ]]>
        </content:encoded>
    </item><item>
        <dc:creator>
            <![CDATA[ 4 autores ]]>
        </dc:creator>
        <title>Podcast - Los MCPs y Skills llegan a Gemini. Diferencias clave y casos de uso</title>
        <link>https://www.paradigmadigital.com/dev/podcast-mcps-y-skills-llegan-gemini-diferencias-clave-y-casos-uso/</link>
        <pubDate>Tue, 12 May 2026 06:00:00 GMT</pubDate>
        <guid isPermaLink="true">https://www.paradigmadigital.com/dev/podcast-mcps-y-skills-llegan-gemini-diferencias-clave-y-casos-uso/</guid>
        <description>Optimiza tu arquitectura de IA con MCP y Skills en Gemini Enterprise. Estandariza integraciones M x N y define capacidades con Markdown.
</description>
        <content:encoded>
            <![CDATA[
                <p>En el último Google Next 2026 se confirmó lo que esperábamos: <strong>la llegada de los MCPs (Model Context Protocol) y las Skills a Gemini Enterprise</strong>.</p>
<p>Esta es una noticia de las que cambian el juego, porque nos abre la puerta a customizar la inteligencia artificial de nuestras empresas sin tener que pasar por el calvario (y el coste) de entrenar modelos desde cero.</p>
<p>En este episodio, el equipo de Goodly al completo se reúne para analizar estos dos aliados que prometen jubilar las integraciones hechas &quot;a pedal&quot;.</p>
<iframe id="" class="block block-iframe -like-text-width" src="https://open.spotify.com/embed/episode/2j8q8XiltNb7tU0L20CEAE?utm_source=generator" style="height:240px;  width:100%;"></iframe>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Poniendo orden al caos de las integraciones con MCP</h2>
<p>Para entender dónde estamos, primero hay que mirar atrás. Pasamos de modelos encerrados en sí mismos a las famosas Function Calling y los RAG, pero seguíamos teniendo un problema: el crecimiento exponencial de integraciones tipo &quot;M x N&quot;.</p>
<p>Si querías que tu IA hablara con diez sistemas, tenías que picar diez conectores distintos. <strong>El protocolo MCP, de Anthropic, llega para poner orden en este caos tecnológico</strong>, ofreciendo un marco estandarizado para que cualquier sistema pueda exponer sus herramientas a los agentes de IA de forma segura y reutilizable.</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Skills en Gemini: definiendo capacidades con Markdown</h2>
<p>Pero no todo es conectar cables, también hace falta saber qué hacer con ellos. Aquí es donde entran las Skills. <strong>Si el MCP son los ingredientes y las herramientas de cocina, la Skill es la receta detallada</strong>.</p>
<p><strong>A través de un sencillo fichero Markdown, podemos darle a la IA capacidades específicas</strong> (como generar presentaciones corporativas siguiendo una plantilla o analizar informes financieros) <strong>sin sobrecargar el contexto del modelo</strong>.</p>
<p>Es, en esencia, un &quot;salvar partida&quot; de un flujo de trabajo que funciona, permitiendo que la IA sea mucho más determinista y eficiente.</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Cómo encontrar el equilibrio perfecto entre MCPs y Skills</h2>
<p>La gran pregunta que resolvemos en este episodio es: <strong>¿cuándo usar cada uno?</strong> Aunque existe la tentación de &quot;sobre-skilear&quot; o convertirlo todo en MCP, la verdadera potencia reside en el equilibrio.</p>
<p>Hablamos de cómo empresas como Supabase ya están demostrando que combinar ambos mundos dobla la precisión y capacidad de los agentes. Además, hablamos de la portabilidad: cómo una misma Skill puede saltar de Cursor a Claude o Gemini casi sin despeinarse, dándonos una flexibilidad que hasta hace poco era ciencia ficción.</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Orquestación inteligente: el futuro de la arquitectura en la nube</h2>
<p>Como todo en este mundo de la IA, <strong>el secreto no está solo en la herramienta, sino en cómo orquestas el talento de tu nube</strong>.</p>
<p>No te pierdas este repaso por la &quot;arqueología&quot; y el futuro inmediato del cloud en el nuevo episodio de “Cómo conocí a nuestro cloud”.</p>
<p>¡Dale al play y actualiza tu arquitectura!</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Más sobre el Google Next 2026</h2>
<iframe id="" class="block block-iframe -like-text-width" src="https://open.spotify.com/embed/episode/7ckUDv7EGBOfFlV2nEH6fP?utm_source=generator" style="height:240px;  width:100%;"></iframe>
<iframe id="" class="block block-iframe -like-text-width" src="https://open.spotify.com/embed/episode/5V4QOd0riWIypyx1LAkzpH?utm_source=generator" style="height:240px;  width:100%;"></iframe>

            ]]>
        </content:encoded>
    </item><item>
        <dc:creator>
            <![CDATA[ Alberto Martínez Pérez ]]>
        </dc:creator>
        <title>Clustering con Redis 8 vs Valkey 8, cómo mejorar el rendimiento</title>
        <link>https://www.paradigmadigital.com/dev/clustering-redis-8-vs-valkey-8-como-mejorar-rendimiento/</link>
        <pubDate>Mon, 11 May 2026 06:00:00 GMT</pubDate>
        <guid isPermaLink="true">https://www.paradigmadigital.com/dev/clustering-redis-8-vs-valkey-8-como-mejorar-rendimiento/</guid>
        <description>En esta comparativa, Redis 8 y Valkey 8 mejoran claramente frente a Redis 7, pero Redis 8 destaca por algo importante: no solo rinde más, también se comporta de forma más estable y consistente cuando cambias la configuración y lo llevas a escenarios reales
</description>
        <content:encoded>
            <![CDATA[
                 <h2 class="block block-header h--h30-15-400 left  add-last-dot">Single-Threading puede ser rápido</h2>
<p>A pesar de usar una implementación mono hilo, <strong>Redis</strong>, el sistema de almacenamiento clave-valor en memoria de alto rendimiento, es <strong>conocido por su increíble velocidad</strong>.</p>
<p><strong>¿Cómo es posible que Redis pueda gestionar cientos de miles de solicitudes por segundo?</strong> Antes que nada, hay que aclarar que Redis sí usa múltiples hilos, no es estrictamente un sistema monohilo.</p>
<p>Aunque es cierto que mantiene un hilo responsable del procesado de las peticiones de cliente y para el manejo de las estructuras de datos, <strong>Redis usa otros hilos de fondo para ejecutar otras tareas</strong> necesarias para su funcionamiento.</p>
<p>Entonces, ¿por qué es tan rápido?</p>
<ul>
<li>Redis mantiene todos los <strong>datos en memoria</strong>, favoreciendo la velocidad de acceso a los mismos.</li>
<li>El uso de un sencillo <strong>modelo de datos clave-valor</strong> permite tener una <a href="https://redis.io/blog/redis-8-0-m03-is-out-even-more-performance-new-features/" target="_blank">complejidad O</a> para las búsquedas de claves.</li>
<li>El uso de <strong>multiplexación de E/S</strong> con <strong>E/S no bloqueante</strong> permite gestionar múltiples operaciones de E/S de forma eficiente.</li>
<li>Uso de <strong>comandos simples</strong> que requieren poco uso de CPU.</li>
<li>Uso de <strong>tipos de datos optimizados</strong> para operaciones en memoria.</li>
</ul>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Optimizaciones multihilo</h2>
<ul>
<li><strong>Asynchronous Memory Release</strong>: a partir de Redis 4.0, se introdujo el mecanismo de liberación diferida (lazy-free mecanismo) para <strong>liberar memoria de forma asíncrona</strong>. La liberación de memoria al eliminar claves de gran tamaño se realiza en un hilo en segundo plano.</li>
<li><strong>Multi-threading</strong>: podemos leer en el blog de Redis que <em>“a partir de la versión 6.0, Redis hace uso de hilos de E/S para gestionar las peticiones de clientes, incluyendo sockets de lectura y escritura, y el parseo de comandos. Sin embargo, la implementación no llega a aprovechar al máximo las ventajas en cuanto a rendimiento.”</em></li>
</ul>
<p>El uso de <strong>ejecución multihilo</strong> permite <strong>reducir la presión</strong> que se tiene en la ejecución monohilo de las peticiones entrantes en escenarios de alta concurrencia. Este proceso multihilo se aplica únicamente al <strong>análisis del protocolo de peticiones de datos</strong>, manteniendo la ejecución monohilo en el procesado de comandos y la manipulación de datos.</p>
<p>Con la publicación de Redis 8.0 llegó una <strong>nueva implementación E/S multihilo</strong> que anunciaba grandes mejoras en la transferencia de datos (entre el 37% y el 112%, según los <a href="https://redis.io/blog/memtier_benchmark-a-high-throughput-benchmarking-tool-for-redis-memcached/" target="_blank">datos publicados por Redis</a>) en CPUs multinúcleo.</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Probando la nueva implementación multihilo</h2>
<p>Como ya hemos comentado, Redis procesa las peticiones en un único hilo, dividiendo la ejecución en los siguientes <strong>4 pasos</strong>:</p>
<ol>
<li><strong>Lectura</strong> de la petición desde el socket</li>
<li><strong>Análisis</strong> de la petición</li>
<li><strong>Procesado</strong> de la petición, ejecutando las operaciones necesarias sobre los datos</li>
<li><strong>Escritura</strong> de la respuesta en el socket</li>
</ol>
<p>No se comenzará a procesar una nueva petición hasta que estos 4 pasos se hayan completado en orden para la petición actual.</p>
<p>La escritura de los resultados en el socket que se realiza en el paso 4 es típicamente una <strong>operación lenta</strong> en cuanto al tiempo necesario para completarla. Es en este punto donde podemos beneficiarnos de la nueva implementación multihilo de la E/S, configurando nuestro Redis para que ejecute las operaciones E/S en un nuevo hilo. De esta forma, <strong>Redis está en disposición de comenzar a procesar una nueva petición en paralelo</strong>, mejorando así el rendimiento.</p>
<p>La propiedad <strong>io-threads</strong> de Redis (esta propiedad es <strong>inmutable</strong>) será la que utilicemos para configurar la escritura multihilo en el socket. Recordemos que esta propiedad se inicializa a 1 por defecto, y que se usa para indicar el <strong>número de hilos máximo</strong> que se podrán crear para las escrituras en el socket.</p>
<p>También tenemos disponible la propiedad de configuración <strong>io-threads-do-reads</strong> en Redis que nos daría la posibilidad de usar ejecuciones multihilo en la lectura y análisis de peticiones desde el socket (pasos 1 y 2 descritos anteriormente). Esta opción, sin embargo, y de acuerdo a la información que dan desde Redis, <strong>no tiene un impacto significativo</strong> sobre el rendimiento.</p>
<p>Por tanto, vamos a centrarnos únicamente en el impacto que tiene la configuración de <strong>io-threads</strong>.</p>
<h2 class="block block-header h--h30-15-400 left  ">Tests sintéticos: ¿cómo se han ejecutado?</h2>
<h2 class="block block-header h--h20-175-500 left  add-last-dot">Herramienta de benchmarking</h2>
<p>Para las pruebas se ha usado <strong>memtier_benchmark</strong>, una herramienta de benchmarking Open Source desarrollada por Redis Labs que integran en sus procesos de desarrollo, principalmente para hacer <strong>tests de no regresión y optimización de rendimiento</strong>.</p>
<p>memtier_benchmark fue presentada en el <a href="https://redis.io/blog/memtier_benchmark-a-high-throughput-benchmarking-tool-for-redis-memcached/" target="_blank">blog oficial de Redis</a> y el <a href="https://github.com/RedisLabs/memtier_benchmark" target="_blank">proyecto está disponible en GitHub</a>.</p>
<h2 class="block block-header h--h20-175-500 left  add-last-dot">Nuestro Redis de pruebas</h2>
<p>Vamos a usar un cluster Redis, desplegado en un <strong>Openshift Container Platform</strong> (OCP), con la siguiente configuración:</p>
<ul>
<li><strong>Nodos del cluster</strong>: 5</li>
<li><strong>CPUs por nodo</strong>: 4</li>
<li><strong>Memoria por nodo</strong>: 4Gi</li>
</ul>
<p>Usaremos <strong>4 imágenes diferentes para montar los nodos</strong>, así podremos hacer una comparativa de rendimiento entre las distintas versiones:</p>
<ul>
<li><strong>redis.redis-stack-server:7.2.0-v10</strong> (imagen basada en la imagen oficial <strong>redis-stack-server</strong> en la que se habilitan algunos módulos)</li>
<li><strong>redis:7-bookworm</strong> (imagen oficial)</li>
<li><strong>valkey/valkey:8-bookworm</strong> (imagen oficial)</li>
<li><strong>redis:8-bookworm</strong> (imagen oficial)</li>
</ul>
<h2 class="block block-header h--h20-175-500 left  add-last-dot">Objetivos de los tests</h2>
<p>Con la ejecución de estos tests perseguimos:</p>
<ul>
<li><strong>Determinar el valor óptimo</strong> del parámetro de configuración <strong>io-threads</strong>.</li>
<li><strong>Decidir</strong> con qué <strong>sabor de Redis</strong> nos quedamos: el viejo y bien conocido Redis o el fresco y joven Valkey</li>
</ul>
<p>Como hemos visto, podemos <strong>establecer cualquier valor por encima del valor por defecto</strong> de un hilo en el parámetro <strong>io-threads</strong>. Nos interesa ver el impacto en el rendimiento que tienen los cambios en esta configuración.</p>
<p>Por otro lado, sabemos que tras el anuncio que hizo Redis en el que se explicaba que <strong>dejaría de ser open source</strong> surgieron unos cuantos forks del proyecto. Tras revisar aquellos que habían tenido más actividad y que más habían crecido en número de contribuidores, <strong>decidimos limitar las pruebas a Valkey</strong>.</p>
<p>También nos interesa <strong>comparar el rendimiento de Valkey frente a las últimas versiones de Redis</strong>. Este último ha recibido muy buenos comentarios en cuanto a la mejora en términos de rendimiento desde la publicación de su versión 8.</p>
<h2 class="block block-header h--h20-175-500 left  add-last-dot">Resultados de los tests</h2>
<p>Cada test se comienza con un <strong>cluster Redis recién creado</strong> en un namespace concreto en nuestro OCP. Igualmente, se crea un <strong>pod nuevo</strong> desde el que se ejecutará la herramienta de benchmarking al comienzo de cada prueba.</p>
<p>Los valores utilizados para <strong>io-threads</strong> fueron: <strong>1, 8, 12 y 16</strong>.</p>
<p>En la siguiente tabla se recogen los <strong>valores obtenidos en los distintos tests</strong>, mostrando la media de operaciones por segundo, para cada imagen y cada una de las configuraciones de io-threads.</p>
<table>
<thead>
<tr>
<th>io-threads</th>
<th style="text-align:center">1</th>
<th style="text-align:center">8</th>
<th style="text-align:center">12</th>
<th style="text-align:center">16</th>
</tr>
</thead>
<tbody>
<tr>
<td>redis-stack-server:7.2.0</td>
<td style="text-align:center">441.316</td>
<td style="text-align:center">446.944</td>
<td style="text-align:center">290.793</td>
<td style="text-align:center">190.601</td>
</tr>
<tr>
<td>redis:7-bookworm</td>
<td style="text-align:center">432.611</td>
<td style="text-align:center">451.702</td>
<td style="text-align:center">289.670</td>
<td style="text-align:center">188.995</td>
</tr>
<tr>
<td>valkey:8-bookworm</td>
<td style="text-align:center">431.714</td>
<td style="text-align:center">860.290</td>
<td style="text-align:center">766.879</td>
<td style="text-align:center">584.707</td>
</tr>
<tr>
<td>redis:8-bookworm</td>
<td style="text-align:center">453.247</td>
<td style="text-align:center">1.027.698</td>
<td style="text-align:center">1.030.549</td>
<td style="text-align:center">1.025.972</td>
</tr>
</tbody>
</table>
<p>Estos mismos datos en <strong>forma de gráfica</strong>:</p>
<figure class="block block-caption  -inline-block -like-text-width -center"><img src="https://www.paradigmadigital.com/assets/img/defaults/lazy-load.svg"
          data-src="https://www.paradigmadigital.com/assets/img/resize/small/grafico_barras_resultados_test_io_threads_f0c640d77f.png"
          data-srcset="https://www.paradigmadigital.com/assets/img/resize/huge/grafico_barras_resultados_test_io_threads_f0c640d77f.png 1920w,https://www.paradigmadigital.com/assets/img/resize/big/grafico_barras_resultados_test_io_threads_f0c640d77f.png 1280w,https://www.paradigmadigital.com/assets/img/resize/medium/grafico_barras_resultados_test_io_threads_f0c640d77f.png 910w,https://www.paradigmadigital.com/assets/img/resize/small/grafico_barras_resultados_test_io_threads_f0c640d77f.png 455w"
          class="lazy-img"  
                  sizes="(max-width: 767px) 80vw, 75vw"
                  alt="Valores io-threads en gráfico de barras" title="undefined"/><figcaption>Valores io-threads en gráfico de barras</figcaption></figure>
<p>Parece que el <strong>punto óptimo</strong> se sitúa en una configuración de <strong>io-threads</strong> correspondiendo a 2 veces el número de CPUs configuradas por nodo de Redis.</p>
<p><strong>A partir de este valor vemos cómo el rendimiento se ve degradado en Valkey 8</strong>, mientras que <strong>Redis 8 mantiene un rendimiento estable</strong> si vamos más allá de este punto óptimo. Por tanto, los resultados de <strong>Redis 8 son más consistentes</strong>.</p>
<p>Como esperábamos, <strong>no se ha observado ninguna mejora de rendimiento en Redis 7</strong> con el incremento de io-threads. Al contrario, nos ha sorprendido observar una degradación.</p>
<p><strong>Redis 8 ha rendido mejor que Valkey 8 en todos los escenarios</strong>. Por tanto, nos quedamos con la regla de <strong>2xCPU como configuración por defecto para io-threads</strong> y, en principio, la balanza se decanta, al menos por ahora, por el uso de <strong>Redis 8 como la imagen</strong> a usar para nuestros clusters de Redis.</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Aplicando el conocimiento adquirido: optimización de recursos en un escenario real</h2>
<p><strong>El escenario</strong>: una aplicación desplegada en Kubernetes, haciendo uso intensivo de un cluster de Redis, requiriendo de tasas realmente altas de peticiones por segundo.</p>
<p>El <strong>cluster de Redis</strong>, en periodos de pico de uso de la aplicación se ha de escalar a 100 nodos para poder soportar el rendimiento requerido. Actualmente, este cluster está formado por nodos instanciados a partir de la imagen Redis Stack 7.2, con 1 CPU por nodo.</p>
<p>Nuestro <strong>objetivo</strong> es intentar <strong>reducir el número de nodos del cluster a la mitad</strong>, pasando de 100 a 50 nodos, usando la <strong>imagen Redis 8</strong>. Para ello, duplicaremos el número de CPUs por nodo, pasando de 1 a 2 CPUs, y estableciendo la configuración de io-threads en 4, como habíamos determinado, con el fin de beneficiarnos de las mejoras que ofrece la nueva implementación del I/O threading.</p>
<p>Para <strong>validar que la plataforma con esta nueva configuración es capaz de soportar el uso en periodos de pico</strong>, se usa un conjunto de <strong>tests complejos</strong> elaborados precisamente para someterla a cargas similares a las previstas en esos periodos y así poder validar que estamos en disposición de aguantar los periodos de demanda extrema.</p>
<p>Estos <strong>tests End-to-End</strong> (E2E) se han desarrollado a medida basándose en Spring Framework, haciendo uso del cliente de [Redis Lettuce(https://github.com/redis/lettuce).</p>
<p>Aprovechando la ventana de disponibilidad de la plataforma, se ejecutó la <strong>suite completa de tests</strong> con las siguientes configuraciones, para poder comparar los resultados:</p>
<ul>
<li><strong>Redis Stack 7.2</strong> - 100 nodos (1 CPU)</li>
<li><strong>Redis 8</strong> -  50 nodos (2 CPU)</li>
<li><strong>Valley 8</strong> - 50 nodos (2 CPU)</li>
</ul>
<p>Aprovechamos que el Operador de Redis desarrollado para gestionar todos los clusters de Redis (<a href="https://github.com/InditexTech/redkeyoperator" target="_blank">actualmente liberado como Open Source</a>) despliega, junto a los pods del propio cluster, un pod encargado de extraer una gran cantidad de métricas y las expone para poder ser recuperadas por Prometheus, junto a las métricas propias de Kubernetes, y mostradas en un panel en Grafana.</p>
<p>Pasemos a <strong>revisar los resultados</strong> obtenidos.</p>
<h2 class="block block-header h--h20-175-500 left  add-last-dot"><strong>Comandos procesados</strong></h2>
<figure class="block block-caption  -inline-block -like-text-width -center"><img src="https://www.paradigmadigital.com/assets/img/defaults/lazy-load.svg"
          data-src="https://www.paradigmadigital.com/assets/img/resize/small/comandos_procesados_redis_stack_100_nodes_2b64192b91.png"
          data-srcset="https://www.paradigmadigital.com/assets/img/resize/huge/comandos_procesados_redis_stack_100_nodes_2b64192b91.png 1920w,https://www.paradigmadigital.com/assets/img/resize/big/comandos_procesados_redis_stack_100_nodes_2b64192b91.png 1280w,https://www.paradigmadigital.com/assets/img/resize/medium/comandos_procesados_redis_stack_100_nodes_2b64192b91.png 910w,https://www.paradigmadigital.com/assets/img/resize/small/comandos_procesados_redis_stack_100_nodes_2b64192b91.png 455w"
          class="lazy-img"  
                  sizes="(max-width: 767px) 80vw, 75vw"
                  alt="Comandos procesados en Redis Stack 7.2 - 100 nodes" title="undefined"/><figcaption>Comandos procesados en Redis Stack 7.2 - 100 nodes</figcaption></figure>
<figure class="block block-caption  -inline-block -like-text-width -center"><img src="https://www.paradigmadigital.com/assets/img/defaults/lazy-load.svg"
          data-src="https://www.paradigmadigital.com/assets/img/resize/small/comandos_procesados_redis_8_50_nodes_9b61edc3a2.png"
          data-srcset="https://www.paradigmadigital.com/assets/img/resize/huge/comandos_procesados_redis_8_50_nodes_9b61edc3a2.png 1920w,https://www.paradigmadigital.com/assets/img/resize/big/comandos_procesados_redis_8_50_nodes_9b61edc3a2.png 1280w,https://www.paradigmadigital.com/assets/img/resize/medium/comandos_procesados_redis_8_50_nodes_9b61edc3a2.png 910w,https://www.paradigmadigital.com/assets/img/resize/small/comandos_procesados_redis_8_50_nodes_9b61edc3a2.png 455w"
          class="lazy-img"  
                  sizes="(max-width: 767px) 80vw, 75vw"
                  alt="Comandos procesados en Redis 8 - 50 nodes" title="undefined"/><figcaption>Comandos procesados en Redis 8 - 50 nodes</figcaption></figure>
<figure class="block block-caption  -inline-block -like-text-width -center"><img src="https://www.paradigmadigital.com/assets/img/defaults/lazy-load.svg"
          data-src="https://www.paradigmadigital.com/assets/img/resize/small/comandos_procesados_valkey_8_50_nodes_c845a40f20.png"
          data-srcset="https://www.paradigmadigital.com/assets/img/resize/huge/comandos_procesados_valkey_8_50_nodes_c845a40f20.png 1920w,https://www.paradigmadigital.com/assets/img/resize/big/comandos_procesados_valkey_8_50_nodes_c845a40f20.png 1280w,https://www.paradigmadigital.com/assets/img/resize/medium/comandos_procesados_valkey_8_50_nodes_c845a40f20.png 910w,https://www.paradigmadigital.com/assets/img/resize/small/comandos_procesados_valkey_8_50_nodes_c845a40f20.png 455w"
          class="lazy-img"  
                  sizes="(max-width: 767px) 80vw, 75vw"
                  alt="Comandos procesados en Valkey 8 - 50 nodes" title="undefined"/><figcaption>Comandos procesados en Valkey 8 - 50 nodes</figcaption></figure>
<p>Vemos como el cluster montado con <strong>Redis 8 aprovecha la ventaja de la configuración de io-threads y la nueva implementación</strong>, llegando prácticamente a alcanzar el número de comandos por unidad de tiempo del cluster de referencia con Redis Strack 7.2. Vemos que cada nodo prácticamente llega a <strong>duplicar el número de comandos procesados por unidad de tiempo</strong> respecto a los valores de Redis Stack 7.2.</p>
<p><strong>Valkey 8 presenta un comportamiento similar a Redis 8</strong>. Lamentablemente, al comienzo del test se produjo el desalojo de el pod de uno de los nodos, lo que explica la pequeña caída que se aprecia en la gráfica.</p>
<h2 class="block block-header h--h20-175-500 left  add-last-dot">Hits</h2>
<figure class="block block-caption  -inline-block -like-text-width -center"><img src="https://www.paradigmadigital.com/assets/img/defaults/lazy-load.svg"
          data-src="https://www.paradigmadigital.com/assets/img/resize/small/hits_redis_stack_100_nodes_88e2908a60.png"
          data-srcset="https://www.paradigmadigital.com/assets/img/resize/huge/hits_redis_stack_100_nodes_88e2908a60.png 1920w,https://www.paradigmadigital.com/assets/img/resize/big/hits_redis_stack_100_nodes_88e2908a60.png 1280w,https://www.paradigmadigital.com/assets/img/resize/medium/hits_redis_stack_100_nodes_88e2908a60.png 910w,https://www.paradigmadigital.com/assets/img/resize/small/hits_redis_stack_100_nodes_88e2908a60.png 455w"
          class="lazy-img"  
                  sizes="(max-width: 767px) 80vw, 75vw"
                  alt="Hits en Redis Stack 7.2 - 100 nodes" title="undefined"/><figcaption>Hits en Redis Stack 7.2 - 100 nodes</figcaption></figure>
<figure class="block block-caption  -inline-block -like-text-width -center"><img src="https://www.paradigmadigital.com/assets/img/defaults/lazy-load.svg"
          data-src="https://www.paradigmadigital.com/assets/img/resize/small/hits_redis_8_50_nodes_9847ef8f70.png"
          data-srcset="https://www.paradigmadigital.com/assets/img/resize/huge/hits_redis_8_50_nodes_9847ef8f70.png 1920w,https://www.paradigmadigital.com/assets/img/resize/big/hits_redis_8_50_nodes_9847ef8f70.png 1280w,https://www.paradigmadigital.com/assets/img/resize/medium/hits_redis_8_50_nodes_9847ef8f70.png 910w,https://www.paradigmadigital.com/assets/img/resize/small/hits_redis_8_50_nodes_9847ef8f70.png 455w"
          class="lazy-img"  
                  sizes="(max-width: 767px) 80vw, 75vw"
                  alt="Hits en Redis 8 - 50 nodes" title="undefined"/><figcaption>Hits en Redis 8 - 50 nodes</figcaption></figure>
<figure class="block block-caption  -inline-block -like-text-width -center"><img src="https://www.paradigmadigital.com/assets/img/defaults/lazy-load.svg"
          data-src="https://www.paradigmadigital.com/assets/img/resize/small/hits_valkey_8_50_nodes_1ca451862c.png"
          data-srcset="https://www.paradigmadigital.com/assets/img/resize/huge/hits_valkey_8_50_nodes_1ca451862c.png 1920w,https://www.paradigmadigital.com/assets/img/resize/big/hits_valkey_8_50_nodes_1ca451862c.png 1280w,https://www.paradigmadigital.com/assets/img/resize/medium/hits_valkey_8_50_nodes_1ca451862c.png 910w,https://www.paradigmadigital.com/assets/img/resize/small/hits_valkey_8_50_nodes_1ca451862c.png 455w"
          class="lazy-img"  
                  sizes="(max-width: 767px) 80vw, 75vw"
                  alt="Hits en Valkey 8 - 50 nodes" title="undefined"/><figcaption>Hits en Valkey 8 - 50 nodes</figcaption></figure>
<p>El mismo comportamiento que vimos en los comandos procesados por unidad de tiempo <strong>se repite en el número de hits</strong>. Se llega casi a alcanzar el <strong>rendimiento de referencia de Redis Stack 7.2 con la mitad de nodos</strong> tanto en Redis 8 como en Valkey 8.</p>
<p>Para dar una idea de la <strong>cantidad de datos</strong> que se manejan durante los tests, se incluyen las siguientes gráficas que muestran el <strong>número de keys almacenadas por nodo</strong>.</p>
<h2 class="block block-header h--h20-175-500 left  add-last-dot">Cache entries</h2>
<figure class="block block-caption  -inline-block -like-text-width -center"><img src="https://www.paradigmadigital.com/assets/img/defaults/lazy-load.svg"
          data-src="https://www.paradigmadigital.com/assets/img/resize/small/cache_entries_redis_stack_100_nodes_079c96b8ad.png"
          data-srcset="https://www.paradigmadigital.com/assets/img/resize/huge/cache_entries_redis_stack_100_nodes_079c96b8ad.png 1920w,https://www.paradigmadigital.com/assets/img/resize/big/cache_entries_redis_stack_100_nodes_079c96b8ad.png 1280w,https://www.paradigmadigital.com/assets/img/resize/medium/cache_entries_redis_stack_100_nodes_079c96b8ad.png 910w,https://www.paradigmadigital.com/assets/img/resize/small/cache_entries_redis_stack_100_nodes_079c96b8ad.png 455w"
          class="lazy-img"  
                  sizes="(max-width: 767px) 80vw, 75vw"
                  alt="Cache entries Redis Stack 7.2 - 100 nodes" title="undefined"/><figcaption>Cache entries Redis Stack 7.2 - 100 nodes</figcaption></figure>
<figure class="block block-caption  -inline-block -like-text-width -center"><img src="https://www.paradigmadigital.com/assets/img/defaults/lazy-load.svg"
          data-src="https://www.paradigmadigital.com/assets/img/resize/small/cache_entries_redis_8_50_nodes_f1e5831e15.png"
          data-srcset="https://www.paradigmadigital.com/assets/img/resize/huge/cache_entries_redis_8_50_nodes_f1e5831e15.png 1920w,https://www.paradigmadigital.com/assets/img/resize/big/cache_entries_redis_8_50_nodes_f1e5831e15.png 1280w,https://www.paradigmadigital.com/assets/img/resize/medium/cache_entries_redis_8_50_nodes_f1e5831e15.png 910w,https://www.paradigmadigital.com/assets/img/resize/small/cache_entries_redis_8_50_nodes_f1e5831e15.png 455w"
          class="lazy-img"  
                  sizes="(max-width: 767px) 80vw, 75vw"
                  alt="Cache entries Redis 8 - 50 nodes" title="undefined"/><figcaption>Cache entries Redis 8 - 50 nodes</figcaption></figure>
<figure class="block block-caption  -inline-block -like-text-width -center"><img src="https://www.paradigmadigital.com/assets/img/defaults/lazy-load.svg"
          data-src="https://www.paradigmadigital.com/assets/img/resize/small/cache_entries_valkey_8_50_nodes_7af9009820.png"
          data-srcset="https://www.paradigmadigital.com/assets/img/resize/huge/cache_entries_valkey_8_50_nodes_7af9009820.png 1920w,https://www.paradigmadigital.com/assets/img/resize/big/cache_entries_valkey_8_50_nodes_7af9009820.png 1280w,https://www.paradigmadigital.com/assets/img/resize/medium/cache_entries_valkey_8_50_nodes_7af9009820.png 910w,https://www.paradigmadigital.com/assets/img/resize/small/cache_entries_valkey_8_50_nodes_7af9009820.png 455w"
          class="lazy-img"  
                  sizes="(max-width: 767px) 80vw, 75vw"
                  alt="Cache entries Valkey 8 - 50 nodes" title="undefined"/><figcaption>Cache entries Valkey 8 - 50 nodes</figcaption></figure>
<p>Si echamos un vistazo al <strong>uso de CPU</strong>, vemos <strong>resultados más consistentes en Redis 8</strong> que en Valkey 8.</p>
<h2 class="block block-header h--h20-175-500 left  add-last-dot">CPU usage</h2>
<figure class="block block-caption  -inline-block -like-text-width -center"><img src="https://www.paradigmadigital.com/assets/img/defaults/lazy-load.svg"
          data-src="https://www.paradigmadigital.com/assets/img/resize/small/cpu_usage_redis_stack_100_nodes_0eee7410f9.png"
          data-srcset="https://www.paradigmadigital.com/assets/img/resize/huge/cpu_usage_redis_stack_100_nodes_0eee7410f9.png 1920w,https://www.paradigmadigital.com/assets/img/resize/big/cpu_usage_redis_stack_100_nodes_0eee7410f9.png 1280w,https://www.paradigmadigital.com/assets/img/resize/medium/cpu_usage_redis_stack_100_nodes_0eee7410f9.png 910w,https://www.paradigmadigital.com/assets/img/resize/small/cpu_usage_redis_stack_100_nodes_0eee7410f9.png 455w"
          class="lazy-img"  
                  sizes="(max-width: 767px) 80vw, 75vw"
                  alt="CPU usage Redis Stack 7.2 - 100 nodes" title="undefined"/><figcaption>CPU usage Redis Stack 7.2 - 100 nodes</figcaption></figure>
<figure class="block block-caption  -inline-block -like-text-width -center"><img src="https://www.paradigmadigital.com/assets/img/defaults/lazy-load.svg"
          data-src="https://www.paradigmadigital.com/assets/img/resize/small/cpu_usage_redis_8_50_nodes_f1f6d2d4e1.png"
          data-srcset="https://www.paradigmadigital.com/assets/img/resize/huge/cpu_usage_redis_8_50_nodes_f1f6d2d4e1.png 1920w,https://www.paradigmadigital.com/assets/img/resize/big/cpu_usage_redis_8_50_nodes_f1f6d2d4e1.png 1280w,https://www.paradigmadigital.com/assets/img/resize/medium/cpu_usage_redis_8_50_nodes_f1f6d2d4e1.png 910w,https://www.paradigmadigital.com/assets/img/resize/small/cpu_usage_redis_8_50_nodes_f1f6d2d4e1.png 455w"
          class="lazy-img"  
                  sizes="(max-width: 767px) 80vw, 75vw"
                  alt="CPU usage Redis 8 - 50 nodes" title="undefined"/><figcaption>CPU usage Redis 8 - 50 nodes</figcaption></figure>
<p>Para finalizar la comparativa de las métricas obtenidas, echemos un vistazo a la <strong>tasa de transferencia de salida de red</strong> de los nodos.</p>
<h2 class="block block-header h--h20-175-500 left  add-last-dot">Network out throughput</h2>
<figure class="block block-caption  -inline-block -like-text-width -center"><img src="https://www.paradigmadigital.com/assets/img/defaults/lazy-load.svg"
          data-src="https://www.paradigmadigital.com/assets/img/resize/small/network_out_throughput_redis_stack_100_nodes_f6d43d0c2e.png"
          data-srcset="https://www.paradigmadigital.com/assets/img/resize/huge/network_out_throughput_redis_stack_100_nodes_f6d43d0c2e.png 1920w,https://www.paradigmadigital.com/assets/img/resize/big/network_out_throughput_redis_stack_100_nodes_f6d43d0c2e.png 1280w,https://www.paradigmadigital.com/assets/img/resize/medium/network_out_throughput_redis_stack_100_nodes_f6d43d0c2e.png 910w,https://www.paradigmadigital.com/assets/img/resize/small/network_out_throughput_redis_stack_100_nodes_f6d43d0c2e.png 455w"
          class="lazy-img"  
                  sizes="(max-width: 767px) 80vw, 75vw"
                  alt="Network out throughput Redis Stack 7.2 - 100 nodes" title="undefined"/><figcaption>Network out throughput Redis Stack 7.2 - 100 nodes</figcaption></figure>
<figure class="block block-caption  -inline-block -like-text-width -center"><img src="https://www.paradigmadigital.com/assets/img/defaults/lazy-load.svg"
          data-src="https://www.paradigmadigital.com/assets/img/resize/small/network_out_throughput_redis_8_50_nodes_0d1240ce7a.png"
          data-srcset="https://www.paradigmadigital.com/assets/img/resize/huge/network_out_throughput_redis_8_50_nodes_0d1240ce7a.png 1920w,https://www.paradigmadigital.com/assets/img/resize/big/network_out_throughput_redis_8_50_nodes_0d1240ce7a.png 1280w,https://www.paradigmadigital.com/assets/img/resize/medium/network_out_throughput_redis_8_50_nodes_0d1240ce7a.png 910w,https://www.paradigmadigital.com/assets/img/resize/small/network_out_throughput_redis_8_50_nodes_0d1240ce7a.png 455w"
          class="lazy-img"  
                  sizes="(max-width: 767px) 80vw, 75vw"
                  alt="Network out throughput Redis 8 - 50 nodes" title="undefined"/><figcaption>Network out throughput Redis 8 - 50 nodes</figcaption></figure>
<figure class="block block-caption  -inline-block -like-text-width -center"><img src="https://www.paradigmadigital.com/assets/img/defaults/lazy-load.svg"
          data-src="https://www.paradigmadigital.com/assets/img/resize/small/network_out_throughput_valkey_8_50_nodes_b5cfe805c8.png"
          data-srcset="https://www.paradigmadigital.com/assets/img/resize/huge/network_out_throughput_valkey_8_50_nodes_b5cfe805c8.png 1920w,https://www.paradigmadigital.com/assets/img/resize/big/network_out_throughput_valkey_8_50_nodes_b5cfe805c8.png 1280w,https://www.paradigmadigital.com/assets/img/resize/medium/network_out_throughput_valkey_8_50_nodes_b5cfe805c8.png 910w,https://www.paradigmadigital.com/assets/img/resize/small/network_out_throughput_valkey_8_50_nodes_b5cfe805c8.png 455w"
          class="lazy-img"  
                  sizes="(max-width: 767px) 80vw, 75vw"
                  alt="Network out throughput Valkey 8 - 50 nodes" title="undefined"/><figcaption>Network out throughput Valkey 8 - 50 nodes</figcaption></figure>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Conclusiones finales</h2>
<p>La nueva implementación de <strong>I/O threading</strong> incluida en Redis 8 y Valkey 8 realmente <strong>marca la diferencia con las antiguas implementaciones</strong>. Haciendo uso de múltiples hilos para hacer la escritura de los resultados de los comandos al socket se alivia significativamente la carga en el hilo principal, permitiendo un <strong>incremento impresionante del rendimiento por nodo</strong>.</p>
<p>De los datos de los tests podemos extraer que se ha alcanzado una <strong>mejora de rendimiento del 90-95%</strong>.</p>
<p>Usando <strong>Redis 8</strong>, con las mejoras que introduce y, sobre todo, con la implementación de I/O Threading, podemos llegar a una <strong>reducción considerable de recursos</strong>. Tras las pruebas pudimos pasar los periodos de pico con la mitad de nodos por cluster, subiendo la CPU de 1 a 2.</p>
<p>Si nos basamos únicamente en las <strong>métricas de Redis aquí expuestas</strong> (y algunas más que no se han incluido por no resultar tan interesantes) Redis 8 y Valkey 8 presentan rendimientos muy similares. Sin embargo, también revisamos logs y métricas de la aplicación cliente. En estas observamos que <strong>Redis 8 se comportó de forma más estable que Valkey 8</strong>. Consiguió mantener tasas de transferencia durante todos los tests más estables, mientras que Valkey 8 mostró algunas fluctuaciones.</p>
<p><strong>Redis 8</strong>, tras su vuelta al mundo Open Source, ha demostrado un <strong>rendimiento impecable</strong>. También ha mostrado tener un <strong>mayor nivel de optimización</strong>, además de comportarse <strong>más estable y más consistente</strong> antes las distintas configuraciones de io-thread.</p>
<p>Por todo esto, <strong>nos quedamos con Redis 8</strong>, al menos por ahora.</p>
<p><strong>Referencias</strong></p>
<ul>
<li><a href="https://redis.io/blog/redis-8-0-m03-is-out-even-more-performance-new-features/" target="_blank">Redis 8.0-M03 is out. Even more performance &amp; new features</a>, Blog de Redis</li>
<li><a href="https://redis.io/blog/memtier_benchmark-a-high-throughput-benchmarking-tool-for-redis-memcached/" target="_blank">memtier_benchmark: A High-Throughput Benchmarking Tool for Redis &amp; Memcached</a>, Blog de Redis</li>
<li><a href="https://github.com/RedisLabs/memtier_benchmark" target="_blank">Github RedisLabs</a></li>
<li><a href="https://github.com/redis/lettuce" target="_blank">Github Redis Lettuce</a></li>
</ul>

            ]]>
        </content:encoded>
    </item><item>
        <dc:creator>
            <![CDATA[ Pablo Salvador ]]>
        </dc:creator>
        <title>Mentalidad de producto: propósito, usuario y valor</title>
        <link>https://www.paradigmadigital.com/transformacion-organizacional-rev/mentalidad-producto-proposito-usuario-valor/</link>
        <pubDate>Wed, 06 May 2026 06:00:00 GMT</pubDate>
        <guid isPermaLink="true">https://www.paradigmadigital.com/transformacion-organizacional-rev/mentalidad-producto-proposito-usuario-valor/</guid>
        <description>Hay una pregunta que ayuda a detectar si una iniciativa tiene foco: qué cambia, para quién cambia y cómo sabremos que ha cambiado. Cuando eso no está claro, el riesgo es empezar a construir, llenar el backlog y avanzar en entregables sin tener una visión nítida del impacto que queremos generar. Te contamos cómo enfocar la mentalidad de producto en este post
</description>
        <content:encoded>
            <![CDATA[
                <p>Si tuviera 30 segundos para saber si una iniciativa va bien encaminada, haría esta pregunta:</p>
<p><strong>¿Qué cambia, para quién cambia y cómo sabremos que ha cambiado?</strong></p>
<p>Cuando eso no está claro, suele pasar que hemos arrancado con energía, el backlog crece, entregamos cosas… y a las pocas semanas alguien pregunta: <em>“vale, ¿y esto para qué era?”</em> Y no suele ser un problema de esfuerzo, sino <strong>un problema de enfoque</strong>.</p>
<p>Para mí, la mentalidad de producto no va de roles, ceremonias o herramientas. Se trata de poner el <strong>foco</strong> en tres cosas antes de lanzarnos a construir: <strong>qué problema queremos resolver, para quién y qué valor esperamos generar</strong>.</p>
<p><strong>El error más habitual es arrancar por el “qué”</strong>. Las primeras conversaciones giran alrededor de lo que hay que construir, los entregables que se esperan, para cuándo, quién lo hace y dónde lo seguimos. Son preguntas válidas. El problema es que, si arrancamos así, corremos el riesgo de organizarnos en torno a la ejecución de algo que quizá no era lo más importante.</p>
<p>Por eso, antes de bajar a la operativa, conviene <strong>aterrizar el propósito, el usuario y el valor</strong> con estas preguntas:</p>
<ul>
<li>¿Por qué hacemos esto? ¿Qué problema estamos intentando resolver?</li>
<li>¿Quién es el usuario real?</li>
<li>¿Qué mejora esperamos ver y cómo la vamos a notar?</li>
</ul>
<p>Si esto no está claro, bajar al backlog demasiado pronto no nos va a ayudar. Esto sucede con frecuencia con iniciativas que ya llegan formuladas de esta forma:</p>
<ul>
<li>“Necesitamos un dashboard.”</li>
<li>“Hay que automatizar este proceso.”</li>
<li>“Queremos una nueva pantalla.”</li>
</ul>
<p>Ahí el riesgo es <strong>aceptar la solución sin haber entendido bien la necesidad</strong>. Pasa, por ejemplo, con peticiones como esta: <em>“automatizar la aprobación de solicitudes”</em>. Hasta ahí, lo que tenemos es una solución. La conversación útil empieza cuando preguntas: <em>“vale, ¿para qué?”</em>. Y entonces aparece el problema real: <strong>reducir tiempos de respuesta y evitar errores</strong>. A partir de ahí ya puedes concretar mejor:</p>
<ul>
<li><strong>Usuario</strong>: el equipo operativo que gestiona las solicitudes y el cliente final que sufre las esperas.</li>
<li><strong>Valor esperado</strong>: pasar de 5 días a 24 horas y reducir retrabajo.</li>
<li><strong>Decisión</strong>: quizá antes de automatizar es recomendable eliminar validaciones redundantes, aclarar criterios y definir excepciones.</li>
</ul>
<p>La necesidad de fondo no ha cambiado. <strong>Lo que cambia es la calidad de la decisión</strong>.</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Producto es el compendio de propósito, usuario y valor</h2>
<p>Cuando hablamos de <strong>producto</strong>, para mí hay <strong>tres elementos</strong> que no pueden faltar: <strong>propósito, usuario y valor</strong>. Si falta uno de estos tres, es fácil caer en una dinámica peligrosa donde trabajamos mucho pero con un impacto difuso.</p>
<article class="block block-image  -inline-block -like-text-width -center lazy-true"><img src="https://www.paradigmadigital.com/assets/img/defaults/lazy-load.svg"
          data-src="https://www.paradigmadigital.com/assets/img/resize/small/proposito_usuario_valor_a13e75c318.png"
          data-srcset="https://www.paradigmadigital.com/assets/img/resize/huge/proposito_usuario_valor_a13e75c318.png 1920w,https://www.paradigmadigital.com/assets/img/resize/big/proposito_usuario_valor_a13e75c318.png 1280w,https://www.paradigmadigital.com/assets/img/resize/medium/proposito_usuario_valor_a13e75c318.png 910w,https://www.paradigmadigital.com/assets/img/resize/small/proposito_usuario_valor_a13e75c318.png 455w"
          class="lazy-img"  
                  sizes="(max-width: 767px) 80vw, 75vw"
                  alt="triángulo conformado por propósito, usuario y valor formando el conjunto del producto" title="undefined"/></article>
<ul>
<li><strong>Sin usuario, el valor se vuelve abstracto</strong>: no sabemos para quién estamos mejorando algo ni qué cambio queremos provocar. Y esto aplica también cuando el usuario es interno. Que el usuario esté en Operaciones, Tecnología, Riesgos o Finanzas no cambia nada de fondo: también ahí hay que concretar quién es, qué fricción tiene y qué mejora sería realmente valiosa para esa persona.</li>
<li><strong>Sin valor, el usuario se queda en una descripción vacía</strong>. En este post no vamos a entrar en detalle en qué se entiende por valor, pero sí quiero aclarar que cuando hablo de <a href="https://www.paradigmadigital.com/techbiz/los-productos-digitales-lo-importante-valor/" target="_blank">valor</a>, no me refiero solo a negocio. Puede aparecer en varias capas, ya sea:
<ul>
<li><strong>Valor para el usuario</strong>: menos fricción, más claridad, menos esperas, menos errores.</li>
<li><a href="https://www.paradigmadigital.com/techbiz/podcast-metricas-valor-negocio" target="_blank">Valor para el negocio</a>: más adopción, menos coste, menos riesgo, mejor conversión.</li>
<li><a href="https://www.paradigmadigital.com/techbiz/podcast-metricas-produccion-time-to-market" target="_blank">Valor para el sistema de entrega</a>: más calidad, más estabilidad, menos retrabajo, menos urgencias artificiales.</li>
</ul>
</li>
<li><strong>Sin propósito, todo suena razonable, pero cuesta priorizar</strong>. Aquí hay una distinción que me parece útil y que conecta con el <a href="https://www.youtube.com/watch?v=Ppd4BxcbbNI" target="_blank">Círculo Dorado de Simon Sinek</a>: no es lo mismo hablar del <strong>porqué</strong> que del <strong>para qué</strong>. El <strong>porqué</strong> habla del propósito de la iniciativa. El <strong>para qué</strong> aterriza ese propósito en impacto, en el cambio que queremos provocar.</li>
</ul>
<p>Lo importante es que <strong>algo cambie de forma observable</strong>. Si no cambia nada visible, probablemente no estamos generando valor; únicamente estamos haciendo cosas.</p>
<p>Una buena pregunta para aterrizarlo es: <em>¿Qué mejora real se producirá para el usuario si esto funciona?</em></p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Cómo aterrizar esto en el día a día</h2>
<ol>
<li><strong>Arrancar por problema y valor, no por entregable</strong>.</li>
</ol>
<p>Antes de hablar de solución, deja claro qué dolor quieres resolver, para quién y qué mejora esperas ver. Herramientas como una <a href="https://www.paradigmadigital.com/transformacion-organizacional-rev/agile-si-implica-planificar/" target="_blank">Inception</a> bien enfocada ayudan justo a eso: alinear propósito, usuario, valor y cómo sabremos si vamos bien.</p>
<p>Para ese arranque ayuda de forma sustancial <strong>dejar por escrito</strong> algo tan simple como:</p>
<ul>
<li><strong>Nuestro objetivo</strong>: estamos aquí para...</li>
<li><strong>El problema actual:</strong> hoy en día pasa que...</li>
<li><strong>A quién afecta</strong>: esto afecta sobre todo a...</li>
<li><strong>Lo que esperamos</strong>: si todo va bien, debería cambiar...</li>
<li><strong>Cómo lo sabremos</strong>: lo notaremos porque veremos...</li>
</ul>
<p>No lo veas como burocracia. Tómalo como una manera de alinear mejor y de evitar que el backlog se convierta en lista de tareas.</p>
<ol start="2">
<li><strong>Conectar estrategia, foco y backlog</strong>.</li>
</ol>
<p>Si una iniciativa no está conectada con una prioridad real, el backlog acaba lleno de trabajo, pero no necesariamente de valor. Por eso conviene enlazar bien estrategia, <a href="https://www.paradigmadigital.com/transformacion-organizacional-rev/desbloqueando-potencial-priorizacion-frameworks-mas-importantes" target="_blank">priorización</a> y <a href="https://www.paradigmadigital.com/transformacion-organizacional-rev/vision-accion-construye-primer-roadmap" target="_blank">roadmap</a>.</p>
<ol start="3">
<li><strong>Traducir intención en seguimiento real</strong>.</li>
</ol>
<p>Si dices que buscas impacto, luego tienes que revisarlo. Y ahí ayuda formular bien los objetivos y acompañarlos de resultados observables, sin confundir actividad con impacto. Para eso, puedes complementar bien con el uso de <a href="https://www.paradigmadigital.com/techbiz/okrs-agile-producto-valor/" target="_blank">OKRs</a>, prestando atención a sus <a href="https://www.paradigmadigital.com/transformacion-organizacional-rev/odiosos-ocho-antipatrones-okr/" target="_blank">anti-patrones</a>.</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">En conclusión</h2>
<p>Trabajar con <strong>mentalidad de producto</strong> va de <strong>tomar mejores decisiones desde el principio</strong>. La próxima vez que arranques una iniciativa, yo me pararía un minuto en estas tres preguntas:</p>
<ul>
<li><strong>¿Qué valor concreto queremos generar?</strong></li>
<li><strong>¿Para quién, exactamente?</strong></li>
<li><strong>¿Y cómo sabremos que lo estamos consiguiendo?</strong></li>
</ul>
<p>Porque el valor no aparece al final. Se decide desde el inicio y se revisa durante el camino.</p>
<p><strong>Tu backlog no debería demostrar que trabajas. Debería demostrar que estás cambiando algo valioso para alguien.</strong> ¡Te leo en comentarios! 👇</p>

            ]]>
        </content:encoded>
    </item><item>
        <dc:creator>
            <![CDATA[ Santiago López ]]>
        </dc:creator>
        <title>Podcast - Green QA: calidad, eficiencia y sostenibilidad</title>
        <link>https://www.paradigmadigital.com/dev/podcast-green-qa-calidad-eficiencia-y-sostenibilidad/</link>
        <pubDate>Tue, 05 May 2026 06:00:00 GMT</pubDate>
        <guid isPermaLink="true">https://www.paradigmadigital.com/dev/podcast-green-qa-calidad-eficiencia-y-sostenibilidad/</guid>
        <description>Optimiza el consumo de infraestructura y mide la huella de carbono del software con Green QA, integrando métricas de eficiencia energética.
</description>
        <content:encoded>
            <![CDATA[
                <p>Hasta hace poco, hablar de testing en el desarrollo de software era hablar de calidad funcional, rendimiento o seguridad. Sin embargo, ese enfoque se está quedando corto.</p>
<p>Las compañías ya no solo tienen que garantizar que sus productos funcionen bien, sino también que sean sostenibles, medibles y alineados con nuevas exigencias regulatorias y sociales.</p>
<p>En este contexto surge <strong>Green QA, un enfoque que amplía el concepto tradicional de calidad incorporando variables como la eficiencia energética, la huella de carbono y la trazabilidad ambiental del software</strong>.</p>
<iframe id="" class="block block-iframe -like-text-width" src="https://open.spotify.com/embed/episode/5rhpCnbehedV7v1g4F2q9M?utm_source=generator&amp;theme=0" style="height:240px;  width:100%;"></iframe>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Más allá del testing: qué es Green QA y por qué importa</h2>
<p>Green QA parte de una idea sencilla pero potente: <strong>no basta con validar que un sistema funciona, también hay que entender cómo se ha construido y qué impacto ha generado en el proceso</strong>.</p>
<p>Tradicionalmente, los equipos de calidad se han centrado en verificar entregables. Pero rara vez se ha tenido en cuenta el coste energético de ejecutar pruebas, el consumo de infraestructura o la huella de carbono asociada a todo el ciclo de desarrollo. <strong>Green QA introduce precisamente esa capa de conciencia</strong>.</p>
<p>Este cambio no es solo conceptual, también responde a dos grandes fuerzas. Por un lado, <strong>el creciente peso de la regulación</strong>, con normativas como la directiva europea CSRD o las leyes nacionales de sostenibilidad empresarial.</p>
<p>Por otro lado, <strong>la propia competitividad del mercado</strong>: las empresas que integran sostenibilidad en su ciclo de desarrollo no solo cumplen, también se diferencian.</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">ESG y software: una relación cada vez más directa</h2>
<p>El auge de los criterios ESG (Environmental, Social &amp; Governance) ha llevado a las empresas a medir su impacto más allá de lo financiero. En este marco, <strong>Green QA se convierte en una pieza clave para trasladar esos principios al desarrollo de software</strong>.</p>
<p>Desde el punto de vista ambiental, <strong>permite medir y optimizar aspectos como el consumo energético de servidores o la eficiencia del código</strong>. En la dimensión social, <strong>introduce variables como la accesibilidad o la ética en el uso de datos</strong>.</p>
<p>Y en el ámbito de la gobernanza, <strong>aporta trazabilidad, auditoría y cumplimiento normativo en los procesos de desarrollo</strong>. En otras palabras, <strong>Green QA traduce los principios ESG en métricas técnicas accionables dentro del ciclo de vida del software</strong>.</p>
<p>Este enfoque está redefiniendo profundamente el papel del QA. Ya no se trata solo de probar más, sino de probar mejor.</p>
<p>Uno de los cambios más relevantes es el paso de un testing exhaustivo a un testing contextual. <strong>Ejecutar todas las pruebas posibles ya no es siempre la mejor opción</strong>, especialmente si implica un coste energético elevado. En su lugar, <strong>se busca optimizar qué se prueba, cuándo y cómo</strong>.</p>
<p>Además, aparecen nuevos indicadores en los cuadros de mando: <strong>la eficiencia energética pasa a ser un KPI más, junto a los tradicionales de calidad o rendimiento</strong>. También <strong>cobra importancia la gestión del “desperdicio digital”</strong>, es decir, el uso innecesario de recursos en automatizaciones, datos o infraestructuras.</p>
<p>A esto se suma un cambio cultural: <strong>la sostenibilidad debe integrarse desde el inicio del desarrollo, no añadirse al final como una capa adicional</strong>.</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Impacto real en el ciclo de vida del software</h2>
<p>Green QA no es una teoría, es un enfoque con impacto tangible en todas las fases del desarrollo. Desde la validación, donde ya no solo se verifica el funcionamiento sino también el impacto ambiental, hasta el diseño del código, que se optimiza para ser más eficiente y mantenible.</p>
<p><strong>Un código más limpio no solo es más fácil de entender, sino que reduce costes y consumo a largo plazo</strong>.</p>
<p>También influye en la infraestructura, promoviendo entornos temporales y bajo demanda frente a sistemas permanentemente activos. Incluso en la gestión de datos, donde se pone el foco en eliminar información innecesaria que consume recursos sin aportar valor.</p>
<p>Un dato ilustrativo: almacenar información sin uso durante días puede tener un impacto energético comparable al de mantener dispositivos encendidos de forma continua. <strong>El software también consume, aunque no siempre lo veamos</strong>.</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Medir para mejorar: las nuevas métricas de la calidad sostenible</h2>
<p>Uno de los grandes retos de este enfoque es la medición. Sin embargo, <strong>cada vez existen más herramientas que permiten cuantificar el impacto del software</strong>.</p>
<p>Algunas de las métricas que empiezan a cobrar relevancia incluyen el <strong>consumo energético por ciclo de pruebas, las emisiones de CO₂ por despliegue o la eficiencia en el uso de CPU y memoria</strong>. Estos datos permiten detectar anomalías, optimizar procesos y tomar decisiones informadas.</p>
<p>Lo importante no es solo medir, también hacerlo de forma continua y automatizada, integrando estas métricas en los pipelines y en los sistemas de observabilidad del proyecto.</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Cómo empezar: de la conciencia a la estrategia</h2>
<p><strong>Adoptar Green QA no ocurre de un día para otro</strong>. Requiere un proceso progresivo que comienza con la formación y la concienciación de los equipos. En una primera fase, muchas organizaciones ni siquiera son conscientes del impacto ambiental de sus procesos de testing. A medida que avanzan, empiezan a identificar recursos, incorporar métricas y definir procesos más eficientes.</p>
<p>El siguiente paso es la estandarización, con KPIs claros y prácticas sostenibles integradas en el día a día. Posteriormente, se alcanza un nivel en el que la medición es continua y automatizada, y finalmente, las compañías más maduras alinean completamente su estrategia de software con los objetivos ESG.</p>
<p><strong>Green QA representa un cambio profundo en la forma de entender la calidad</strong>. Ya no se trata solo de entregar software que funcione, sino de hacerlo de manera responsable, eficiente y alineada con el entorno: <strong>la sostenibilidad no es un coste añadido, es una oportunidad para ser más eficientes, reducir gastos y mejorar la competitividad</strong>.</p>
<p>En un contexto donde la tecnología es responsable de una parte creciente del consumo energético global, integrar este enfoque no es solo una ventaja estratégica: empieza a ser una necesidad.</p>

            ]]>
        </content:encoded>
    </item><item>
        <dc:creator>
            <![CDATA[ Juan Martínez Cortés ]]>
        </dc:creator>
        <title>Analizando el mercado energético: ¿qué hacemos con la deuda técnica?</title>
        <link>https://www.paradigmadigital.com/techbiz/analizando-mercado-energetico-que-hacemos-deuda-tecnica/</link>
        <pubDate>Mon, 04 May 2026 06:00:00 GMT</pubDate>
        <guid isPermaLink="true">https://www.paradigmadigital.com/techbiz/analizando-mercado-energetico-que-hacemos-deuda-tecnica/</guid>
        <description>La tecnología correcta mal integrada puede ser peor que una tecnología imperfecta bien ejecutada. En 2026, el sector energético está demostrando que el liderazgo no depende solo de innovar, sino de tener la disciplina técnica y organizativa para llevar esa innovación a producción.
</description>
        <content:encoded>
            <![CDATA[
                <p>Llevamos meses escuchando hablar del futuro de la energía. De la IA que lo cambiará todo. De los datos como el nuevo petróleo. De la transformación digital como imperativo estratégico.</p>
<p>El futuro ya está aquí. <strong>Y está lleno de deuda técnica</strong>.</p>
<p>Lo que el mercado está revelando en este segundo trimestre de 2026 no es una historia de promesas tecnológicas. Es una historia de ejecución y de quién es capaz de acometerla y quién no. Las compañías energéticas líderes no se diferencian hoy por el modelo de IA que han elegido ni por el proveedor de nube que firman en sus contratos. <strong>Se diferencian por</strong> algo mucho más prosaico y mucho más difícil: <strong>la capacidad de poner en producción sistemas complejos en entornos operativos que llevan décadas acumulando parches</strong>.</p>
<p>Analizando el comportamiento del mercado en lo que va de año, emergen <strong>cinco perspectivas</strong> que dictan quién liderará la segunda mitad de esta década. No son tendencias. Son diagnósticos.</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Perspectiva 1: tu IA agéntica tiene un problema de fontanería, no de algoritmos</h2>
<p>Hasta hace poco, la Inteligencia Artificial en el sector energético vivía en presentaciones de PowerPoint y en proyectos piloto aislados. En 2026, <strong>la conversación ha madurado hacia la IA Agéntica</strong>: sistemas autónomos integrados en los flujos de trabajo críticos que no solo recomiendan decisiones, sino que las ejecutan, hacen balanceo de carga en milisegundos, mantenimiento predictivo coordinado o gestión de carteras de recursos distribuidos.</p>
<p>La realidad operativa que hemos constatado en 2026 es esta: <strong>no te frena el algoritmo. Te frena la arquitectura de datos</strong> sobre la que intentas ejecutarlo.</p>
<p>Las organizaciones que han fracasado en escalar sus agentes no lo han hecho por elegir el modelo equivocado. Lo han hecho porque <strong>intentaron automatizar sobre un ecosistema de datos fragmentado, con silos heredados, con pipelines que nadie documenta y con gobernanza que existe en teoría pero no en producción</strong>. Automatizar un proceso roto no lo repara, lo escala. Y el fracaso escala con él.</p>
<p>Los líderes del sector están obligados a dar el paso que nadie quiere dar: <strong>rediseñar los cimientos</strong>. No parchear. Rediseñar. Eso significa abandonar los enfoques de integración cosmética y construir arquitecturas verdaderamente AI-Native: lagos de datos unificados, gobernanza real, pipelines con observabilidad end-to-end. Solo desde ahí puede un agente reducir los tiempos de inactividad en doble dígito. <strong>Solo desde ahí la IA deja de ser un coste y se convierte en un motor de eficiencia financiera</strong>.</p>
<p>El problema no es de ciencia. Es ingeniería. Y la ingeniería es trabajo duro.</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Perspectiva 2: la soberanía del dato no es una opción regulatoria, es una condición de negocio</h2>
<p>La <strong>transición energética</strong> exige orquestación a una escala que ninguna compañía puede resolver sola. La integración de la red eléctrica con la movilidad eléctrica, con los sistemas de climatización, con los mercados intradiarios de flexibilidad: todo ello requiere un intercambio de información fluido entre actores que son, simultáneamente, socios y competidores.</p>
<p>Mientras tanto, los <strong>ataques a infraestructuras críticas</strong> no han dejado de crecer. La soberanía digital ha dejado de ser un debate jurídico para convertirse en un <strong>imperativo de seguridad nacional y europea</strong>.</p>
<p>Iniciativas como <strong>energy data-X o los proyectos V2G (Vehicle-to-Grid)</strong> lo están demostrando en la práctica: es posible <strong>conectar contadores inteligentes, puntos de recarga y mercados de flexibilidad</strong> sin ceder el control sobre los activos de información propios. La arquitectura que lo hace posible separa el plano de control (quién accede, bajo qué condiciones, con qué contrato) del plano de datos. El estándar abierto como condición de interoperabilidad. El conector como mecanismo de soberanía.</p>
<p>La conclusión para los tomadores de decisiones es directa: participar en la economía energética descentralizada va a requerir infraestructura federada. Las compañías que no construyan esa capacidad hoy no podrán monetizar sus activos de información mañana. <strong>El mercado de la nube soberana no es una apuesta tecnológica, es la única vía de entrada</strong>.</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Perspectiva 3: la eficiencia energética ya no se reporta, se contabiliza</h2>
<p>2026 marca el año en que la sostenibilidad dejó de ser un ejercicio de reputación corporativa para convertirse en una operación financiera de alto impacto. No es retórica, es aritmética.</p>
<p>El sistema de <strong>Certificados de Ahorro Energético (CAE)</strong> en España ha alcanzado una madurez suficiente para que los ahorros energéticos verificables se conviertan en activos líquidos y monetizables. Cada kilovatio-hora ahorrado mediante modernización de infraestructuras, optimización de procesos industriales o implantación de tecnología eficiente genera un certificado que las comercializadoras están obligadas a adquirir. El ROI es inmediato, es medible y está auditado.</p>
<p>En paralelo, la directiva CSRD exige este año una <strong>contabilidad del carbono tan rigurosa como la contabilidad financiera tradicional</strong>. No es una fecha futura, es ahora.</p>
<p>Las compañías que carezcan de <strong>plataformas software capaces de automatizar</strong> la captura de datos de consumo, simular escenarios de descarbonización antes de comprometer el CAPEX, e integrar la toma de decisiones ambiental en el comité de dirección, no van a perder puntos de sostenibilidad, van a perder competitividad financiera. La eficiencia energética ya no se gestiona desde el departamento de medio ambiente. Se gestiona desde la dirección de negocio. Y se ejecuta con herramientas de datos.</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Perspectiva 4: tu red necesita un gemelo que piense, no uno que represente</h2>
<p>Las redes eléctricas están operando al límite. La <strong>electrificación masiva, la generación intermitente de renovables y el auge de los centros de datos</strong>, paradójicamente impulsado por la misma IA que debería optimizar la red, han convertido la infraestructura de transporte y distribución en el principal <strong>cuello de botella de la transición energética</strong>.</p>
<p>La respuesta del mercado ha sido el <strong>Gemelo Digital</strong>. La realidad de 2026 nos demuestra que el Gemelo Digital como representación 3D es condición necesaria, pero no suficiente. Lo que los operadores necesitan hoy son <strong>Gemelos de Simulación</strong>: motores de decisión que ingieran datos de dispositivos IoT en tiempo real y permitan probar escenarios de forma predictiva. ¿Qué ocurre si un macrocentro de datos en el polígono industrial demanda un pico bestial en cuatro horas? ¿Cómo responde la red ante una ola de calor con penetración fotovoltaica a un tanto por ciento muy por encima de lo normal? ¿Dónde rompería el sistema?</p>
<p>Para llegar ahí, los operadores están obligados a <strong>modernizar sus plataformas legacy</strong>, no hay alternativa. Una infraestructura rígida diseñada para flujos unidireccionales no puede procesar transacciones bidireccionales masivas ni dialogar con la nube con la latencia que exigen los mercados intradiarios. La modernización no es un proyecto de TI, es el único camino para gestionar activos de forma resiliente sin depender exclusivamente de ampliaciones físicas que tardan años y cuestan cientos de millones. Los que lo resuelvan con ingeniería de plataformas ganarán margen de maniobra operativo y los que no, dependerán del hierro.</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Perspectiva 5: la tecnología que nadie adopta no existe</h2>
<p>Podemos desplegar la arquitectura más sofisticada del mercado pero si la organización que debe operarla sigue funcionando con lógicas de hace diez años, <strong>el valor se evapora</strong> antes de llegar a producción.</p>
<p>Abril de 2026 lo confirma con claridad: <strong>la volatilidad geopolítica, los cuellos de botella en la cadena de suministro y la velocidad de la innovación en IA no perdonan a las organizaciones lentas</strong>. No es un problema de talento ni de presupuesto sino de diseño organizacional.</p>
<p>La transformación digital en el sector energético no se resuelve con metodologías, se resuelve con cultura operativa. <strong>Equipos multidisciplinares</strong> donde la ingeniería, la ciberseguridad y el negocio trabajan en el mismo sprint, con el mismo objetivo y con visibilidad compartida sobre los datos. Estructuras que priorizan el flujo de valor por encima de la jerarquía. Organizaciones capaces de absorber un cambio regulatorio, una disrupción tecnológica o una crisis de suministro sin paralizarse.</p>
<p>Esta capacidad tiene un nombre y no se consigue comprando una herramienta. Se construye rediseñando la forma en que los equipos toman decisiones, priorizan el trabajo y entregan valor. Las compañías que lo han entendido están reduciendo su deuda técnica de forma sistemática, acelerando su time-to-market y construyendo estructuras que no se rompen ante la próxima disrupción. Las que no lo han entendido seguirán automatizando procesos rotos y llamándolo transformación digital.</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Conclusión: el riesgo no es tecnológico, es de integración</h2>
<p>Si el panorama de 2026 deja una lección clara, es esta: <strong>la tecnología correcta mal integrada es peor que la tecnología imperfecta bien ejecutada</strong>.</p>
<p>Las fuerzas que moldean el mercado hoy, la IA agéntica, la soberanía del dato, la monetización de la eficiencia, la simulación predictiva y la agilidad organizacional, no son independientes. <strong>Se refuerzan o se anulan mutuamente</strong>. Una compañía con una IA agéntica excelente sobre datos fragmentados fracasa. Una compañía con una plataforma de datos impecable y una organización incapaz de iterar sobre ella también fracasa.</p>
<p>El éxito en esta industria ya no pertenece a quien tiene la mejor tecnología. Pertenece a quien tiene la disciplina de integrarla, la ingeniería para sostenerla y la cultura para adaptarla. No hay atajo y tampoco hay misterio.</p>
<p>Es el momento de liderar el presente para asegurar la energía del mañana.</p>

            ]]>
        </content:encoded>
    </item><item>
        <dc:creator>
            <![CDATA[ Emilia    y Matías     ]]>
        </dc:creator>
        <title>Podcast - GPT-5.5, Mythos y Claude Design: el salto definitivo a los agentes autónomos</title>
        <link>https://www.paradigmadigital.com/dev/podcast-gpt-5-5-mythos-claude-design-salto-definitivo-agentes-autonomos/</link>
        <pubDate>Thu, 30 Apr 2026 06:00:00 GMT</pubDate>
        <guid isPermaLink="true">https://www.paradigmadigital.com/dev/podcast-gpt-5-5-mythos-claude-design-salto-definitivo-agentes-autonomos/</guid>
        <description>GPT-5.5, Mythos y Claude Design: análisis del salto a agentes autónomos que ya ejecutan procesos de ingeniería de software y seguridad.
</description>
        <content:encoded>
            <![CDATA[
                <p>Abril de 2026 ha sido un mes clave para entender hacia dónde se dirige la inteligencia artificial.</p>
<p><a href="https://open.spotify.com/episode/4i8E9mkbOwjfO000jU6J0L?si=F8eewzl9SOmukNQUqxJo5Q" target="_blank">Si marzo estuvo marcado por la consolidación de los agentes</a>, en abril hemos visto cómo esa tendencia madura y se combina con otra igualmente relevante: <strong>la convergencia entre modelos avanzados y herramientas creativas profesionales, especialmente en imagen, vídeo y diseño</strong>.</p>
<p>Además, el sector ha entrado en una nueva fase de competencia directa. Los grandes actores ya no compiten solo en benchmarks, sino en algo mucho más tangible: <strong>casos de uso reales, integración en workflows y valor práctico para empresas</strong>.</p>
<iframe id="" class="block block-iframe -like-text-width" src="https://open.spotify.com/embed/episode/2ANqZKGM2TEtAzW1mweTeN?utm_source=generator&amp;theme=0" style="height:240px;  width:100%;"></iframe>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Modelos: hacia una IA más autónoma y especializada</h2>
<p>Uno de los lanzamientos más relevantes del mes ha sido <strong>GPT-5.5, con el que OpenAI sigue avanzando hacia sistemas más autónomos</strong>. Más allá de mejoras incrementales en calidad de respuesta, lo verdaderamente significativo es el cambio de comportamiento: <strong>el modelo empieza a funcionar como un sistema capaz de ejecutar tareas complejas de forma prolongada</strong>.</p>
<p>Este salto se nota especialmente en programación avanzada, automatización de tareas de oficina, investigación inicial y ejecución de workflows largos. Ya no se trata solo de responder mejor, sino de mantener contexto, tomar decisiones y avanzar en procesos de múltiples pasos.<br>
En otras palabras, <strong>se acerca cada vez más a un agente continuo</strong>.</p>
<p>En paralelo, <strong>Anthropic ha presentado Claude Mythos</strong>, un modelo que marca un punto de inflexión, no solo por sus capacidades, sino por su estrategia de lanzamiento. A diferencia de iteraciones anteriores, <strong>Mythos no está disponible públicamente</strong>. Se encuentra en fase de acceso restringido para un grupo selecto de socios, debido a los riesgos asociados a su potencial uso en ciberseguridad ofensiva.</p>
<p>Este modelo <strong>destaca por su capacidad para identificar vulnerabilidades desconocidas y generar exploits funcionales en tiempos extremadamente reducidos</strong>.</p>
<p>También <strong>supone un salto notable en benchmarks de ingeniería de software</strong> y muestra un comportamiento claramente agéntico, capaz de ejecutar secuencias complejas de acciones para alcanzar un objetivo.</p>
<p>Paradójicamente, cuanto más potente es el modelo, más evidente se vuelve la necesidad de controlarlo: <strong>Anthropic reconoce que cualquier desviación, por pequeña que sea, puede tener consecuencias significativas</strong>.</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Agentes: integración real en herramientas profesionales</h2>
<p>Otra de las tendencias más claras del mes es <strong>la integración de la IA en herramientas de trabajo reales</strong>. Un buen ejemplo es <strong>Claude Design, que lleva los agentes directamente al flujo de trabajo creativo</strong>.</p>
<p>La diferencia frente a generaciones anteriores es importante. Ya no hablamos de herramientas que sugieren ideas o generan propuestas aisladas, sino de sistemas que participan activamente en el proceso. <strong>Claude Design puede iterar sobre diseños</strong>, ajustar interfaces, trabajar con sistemas de diseño completos y evolucionar propuestas dentro de un flujo continuo.</p>
<p>Este enfoque posiciona a la IA no como un asistente puntual, sino también como una pieza integrada en el proceso creativo, compitiendo directamente con herramientas profesionales tradicionales.</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Imagen: OpenAI entra de lleno en la competición</h2>
<p>En el terreno de la imagen, <strong>abril marca un punto de inflexión con el lanzamiento de ChatGPT Images 2.0</strong>. OpenAI entra así de lleno en un espacio donde otros modelos llevaban meses liderando, y lo hace con una propuesta claramente orientada a uso profesional.</p>
<p>Las mejoras son evidentes: <strong>mejor renderizado de texto, mayor coherencia visual, capacidad de trabajar con múltiples estilos y generación consistente de imágenes a partir de un mismo prompt</strong>. A esto se suma un modo de “razonamiento visual” que introduce una capa adicional de control en la generación.</p>
<p>El resultado es <strong>un modelo capaz de producir imágenes hiperrealistas que, en muchos casos, son difíciles de distinguir de fotografías reales</strong>. Esto no solo abre nuevas oportunidades en diseño, marketing o generación de contenido, sino también <strong>debates relevantes sobre veracidad, autenticidad y uso responsable</strong>.</p>
<p>Lo importante es que la generación de imagen deja de ser una curiosidad para convertirse en una herramienta útil en contextos de negocio: campañas, mockups, contenido para redes o diseño de producto.</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Vídeo: consolidación y reajustes estratégicos</h2>
<p>En contraste con el avance en imagen, el vídeo ha vivido un mes más complejo. <strong>OpenAI ha decidido cerrar Sora, su herramienta de generación de vídeo</strong>, alegando altos costes computacionales, baja adopción y un cambio en su estrategia de producto.</p>
<p>Este movimiento deja una lectura clara: no basta con demostrar capacidad técnica. Para que un modelo sobreviva, necesita encajar en un modelo de negocio viable.</p>
<p>Mientras tanto, <strong>otros actores como Google, ByteDance o Kuaishou continúan avanzando en este ámbito</strong>. La evolución sigue una dirección clara: mayor realismo, mejor control de escena y una integración más profunda en flujos de trabajo profesionales.</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Conclusión: la IA deja de impresionar para empezar a ser útil</h2>
<p>Abril de 2026 deja una conclusión bastante contundente: <strong>la inteligencia artificial está dejando atrás la fase de “demo impresionante” para entrar en una etapa centrada en la utilidad real</strong>.</p>
<p>Los modelos ya no compiten solo en calidad, sino en su capacidad para ejecutar tareas, integrarse en herramientas y aportar valor continuo. La generación de imagen alcanza un nivel cercano a producción profesional, mientras que los agentes empiezan a formar parte activa de los procesos de trabajo.</p>
<p>En este contexto, la pregunta ya no es qué modelo es mejor, sino cuál encaja mejor en cada caso de uso. Y esa es, probablemente, la señal más clara de que la IA ha empezado a madurar.</p>

            ]]>
        </content:encoded>
    </item><item>
        <dc:creator>
            <![CDATA[ David García Luna ]]>
        </dc:creator>
        <title>La paradoja de la velocidad: por qué XP (y no la IA) es lo que evitará que tu equipo se queme</title>
        <link>https://www.paradigmadigital.com/transformacion-organizacional-rev/paradoja-velocidad-xp-no-ia-evitara-equipo-se-queme/</link>
        <pubDate>Wed, 29 Apr 2026 06:00:00 GMT</pubDate>
        <guid isPermaLink="true">https://www.paradigmadigital.com/transformacion-organizacional-rev/paradoja-velocidad-xp-no-ia-evitara-equipo-se-queme/</guid>
        <description>La IA puede acelerar la entrega, pero no debería convertir a los equipos en máquinas. En este nuevo contexto, XP vuelve a ser relevante por algo más que sus prácticas técnicas: porque pone límites sanos al ritmo y protege la sostenibilidad del equipo. Te contamos cómo en este post.
</description>
        <content:encoded>
            <![CDATA[
                 <h2 class="block block-header h--h30-15-400 left  add-last-dot">La carrera de la rata digital</h2>
<p>La promesa de la Inteligencia Artificial Generativa es seductora: código instantáneo, soluciones en segundos y una productividad que se dispara. Pero para el perfil de gestión de proyectos, esto plantea una pregunta incómoda: <strong>si las máquinas no se cansan, ¿esperamos que nuestros equipos humanos sigan ese ritmo?</strong> En el boom de la productividad, el &quot;ritmo sostenible&quot; de XP es la única garantía de que tu equipo no implosione por agotamiento.</p>
<article class="block block-image  -inline-block -like-text-width -center lazy-true"><img src="https://www.paradigmadigital.com/assets/img/defaults/lazy-load.svg"
          data-src="https://www.paradigmadigital.com/assets/img/resize/small/carrera_rata_digital_ia_52b5b15ddb.jpg"
          data-srcset="https://www.paradigmadigital.com/assets/img/resize/huge/carrera_rata_digital_ia_52b5b15ddb.jpg 1920w,https://www.paradigmadigital.com/assets/img/resize/big/carrera_rata_digital_ia_52b5b15ddb.jpg 1280w,https://www.paradigmadigital.com/assets/img/resize/medium/carrera_rata_digital_ia_52b5b15ddb.jpg 910w,https://www.paradigmadigital.com/assets/img/resize/small/carrera_rata_digital_ia_52b5b15ddb.jpg 455w"
          class="lazy-img"  
                  sizes="(max-width: 767px) 80vw, 75vw"
                  alt="la carrera de la rata digital: trabajo, innovación, presión financiera, burnout" title="Carrera de la rata digital"/></article>
<p>Aquí es donde <a href="https://www.paradigmadigital.com/transformacion-organizacional-rev/ai-xp-manifiesto-craftsmanship-era-ia/" target="_blank">Extreme Programming (XP) vuelve a la escena</a>, no como una metodología de ingeniería, sino como un <strong>manifiesto de sostenibilidad humana</strong>. Paradójicamente, para ir a la velocidad de la IA, necesitamos los <strong>frenos de seguridad</strong> y el <strong>bienestar psicológico</strong> que Kent Beck diseñó en los ‘90.</p>
<h2 class="block block-header h--h30-15-400 left  ">¿Cómo garantiza XP el bienestar en entornos de &quot;alta velocidad&quot;?</h2>
<p>A diferencia de otros marcos ágiles que a veces se convierten en una &quot;fábrica de tickets&quot;, <strong>XP tiene principios explícitos sobre la salud mental del equipo</strong>. No son sugerencias de recursos humanos, son reglas técnicas estrictas.</p>
<ul>
<li><strong>La regla del ritmo sostenible (Sustainable Pace)</strong></li>
</ul>
<p>XP prohíbe explícitamente el heroísmo. La premisa es simple: una persona cansada introduce más <em>bugs</em> en una hora que los que puede arreglar en dos. XP dicta que si hay horas extra una semana, es una excepción. Si ocurre dos semanas seguidas, el problema es del plan, no del equipo.</p>
<ul>
<li><strong>Seguridad psicológica (el valor del &quot;coraje&quot;)</strong></li>
</ul>
<p>XP exige coraje para decir <em>&quot;no&quot;</em> o <em>&quot;no sé&quot;</em>, pero también exige el respeto de la dirección para escuchar esa verdad. Al eliminar la estimación basada en el miedo y reemplazarla por la &quot;responsabilidad aceptada&quot;, donde quien hace el trabajo estima el trabajo, se reduce drásticamente la ansiedad por fechas límite irreales.</p>
<ul>
<li><strong>El fin del concepto de &quot;lobo solitario&quot;</strong></li>
</ul>
<p>Mediante la <em>Propiedad Colectiva del Código</em>, XP elimina el estrés de ser la &quot;única persona que sabe cómo funciona esto&quot;. Si alguien enferma o necesita vacaciones, el proyecto no se detiene y nadie tiene que recibir llamadas de emergencia en la playa.</p>
<article class="block block-image  -inline-block -like-text-width -center lazy-true"><img src="https://www.paradigmadigital.com/assets/img/defaults/lazy-load.svg"
          data-src="https://www.paradigmadigital.com/assets/img/resize/small/bienestar_entornos_alta_velocidad_2d2956b5fc.jpg"
          data-srcset="https://www.paradigmadigital.com/assets/img/resize/huge/bienestar_entornos_alta_velocidad_2d2956b5fc.jpg 1920w,https://www.paradigmadigital.com/assets/img/resize/big/bienestar_entornos_alta_velocidad_2d2956b5fc.jpg 1280w,https://www.paradigmadigital.com/assets/img/resize/medium/bienestar_entornos_alta_velocidad_2d2956b5fc.jpg 910w,https://www.paradigmadigital.com/assets/img/resize/small/bienestar_entornos_alta_velocidad_2d2956b5fc.jpg 455w"
          class="lazy-img"  
                  sizes="(max-width: 767px) 80vw, 75vw"
                  alt="bienestar en entornos de alta velocidad" title="Bienestar en entornos de alta velocidad"/></article>
<h2 class="block block-header h--h30-15-400 left  ">¿Es la IA el fin del Pair Programming o su resurgimiento?</h2>
<p>Una de las prácticas más polémicas de XP siempre ha sido el <em>Pair Programming</em> (dos personas, un ordenador). Con la llegada de Copilot, ChatGPT, Windsurf, Cursor u otro sin fin de opciones, muchas personas en gestión se preguntan: <em>&quot;¿Para qué pagar a dos personas si tengo una IA?&quot;</em>.</p>
<p>A la pregunta de <strong>si la IA sustituirá al perfil de desarrollo en la programación</strong> podría responderse con otra analogía: <em>“El piloto automático en los aviones lleva décadas funcionando, optimizando el trabajo, pero nunca ha reemplazado al piloto. ¿Por qué sigue siendo necesario el factor humano?”.</em><br>
En el caso de los equipos de programación, no podemos depender del <em>Vibe Coding</em> (de la misma forma que no podemos depender únicamente del piloto automático en los vuelos).</p>
<p>El <em>Vibe Coding</em> genera código que aparenta ser funcional, pero que es incomprensible y a la larga imposible de mantener, lo que puede provocar <strong>fallos en producción por falta de supervisión humana</strong>, con un coste e impacto a la larga mucho mayores.</p>
<p>Para evitar este escenario, XP propone una <strong>evolución crucial</strong>:</p>
<ul>
<li><strong>De &quot;Driver y Navigator&quot; a &quot;Cyborg Pairing&quot;</strong>. La IA no reemplaza a nadie; eleva el nivel de la pareja. En el nuevo modelo, la IA actúa como un &quot;acelerador de aprendizaje&quot; para los perfiles junior, reduciendo el tiempo que tardan en buscar información, pero (y esto es crítico) <strong>sin eliminar la necesidad de validación humana</strong>.</li>
<li><strong>El peligro del &quot;Vibe Coding&quot;</strong>. Martin Fowler y Kent Beck advierten sobre el riesgo de aceptar código de IA porque &quot;parece que funciona&quot; (<em>vibe coding</em>). XP actúa como contrapeso: el <em>Pair Programming</em> humano sigue siendo vital para la estrategia y el diseño arquitectónico, áreas donde la IA tiende a alucinar o crear deuda técnica compleja. La IA escribe, el ser humano navega y XP pone las reglas de tráfico.</li>
</ul>
<article class="block block-image  -inline-block -like-text-width -center lazy-true"><img src="https://www.paradigmadigital.com/assets/img/defaults/lazy-load.svg"
          data-src="https://www.paradigmadigital.com/assets/img/resize/small/pair_programming_06934ea815.png"
          data-srcset="https://www.paradigmadigital.com/assets/img/resize/huge/pair_programming_06934ea815.png 1920w,https://www.paradigmadigital.com/assets/img/resize/big/pair_programming_06934ea815.png 1280w,https://www.paradigmadigital.com/assets/img/resize/medium/pair_programming_06934ea815.png 910w,https://www.paradigmadigital.com/assets/img/resize/small/pair_programming_06934ea815.png 455w"
          class="lazy-img"  
                  sizes="(max-width: 767px) 80vw, 75vw"
                  alt="Pair Programming con IA" title="Pair Programming con IA"/></article>
<h2 class="block block-header h--h30-15-400 left  ">TDD, ¿por qué trabajar el doble para ir más rápido?</h2>
<p>XP exige escribir el test <em>antes</em> que el código (Test-Driven Development).</p>
<ul>
<li><strong>TDD no es una técnica de testing, es una técnica de gestión de ansiedad</strong>. Saber que tienes una red de seguridad automatizada que te avisa en segundos si rompiste algo da una confianza &quot;extrema&quot; al equipo.</li>
<li><strong>La IA es excelente generando tests</strong>. Utilizar la IA para generar la batería de pruebas TDD antes de generar el código es el &quot;truco&quot; definitivo de productividad segura. Convierte a la IA en el guardián de calidad más estricto.</li>
</ul>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">La muerte de la documentación (tal como la conocemos)</h2>
<p>XP tiene fama de no documentar, lo cual es falso, pero se debe a que rompe (con el manifiesto ágil) a seguir haciendo la documentación tal y como la conocíamos en los años 80’s (páginas y páginas de información que rara vez se llegaban a consultar).</p>
<ul>
<li><strong>XP se apoya en prácticas de clean code y código autoexplicativo</strong> que sea más fácil de entender por otra persona sin contexto.</li>
<li><strong>Hoy, disponemos de herramientas con IA que pueden leer ese <em>clean code</em> de XP y generar la documentación para negocio automáticamente</strong>. Pero esto solo funciona si el equipo ha seguido la disciplina de &quot;Simplicidad&quot; y &quot;Nombrado&quot; de XP. Si el código es un desastre, la IA documentará un desastre.</li>
</ul>
<article class="block block-image  -inline-block -like-text-width -center lazy-true"><img src="https://www.paradigmadigital.com/assets/img/defaults/lazy-load.svg"
          data-src="https://www.paradigmadigital.com/assets/img/resize/small/bienestar_xp_paradoja_velocidad_ca354d4bc4.png"
          data-srcset="https://www.paradigmadigital.com/assets/img/resize/huge/bienestar_xp_paradoja_velocidad_ca354d4bc4.png 1920w,https://www.paradigmadigital.com/assets/img/resize/big/bienestar_xp_paradoja_velocidad_ca354d4bc4.png 1280w,https://www.paradigmadigital.com/assets/img/resize/medium/bienestar_xp_paradoja_velocidad_ca354d4bc4.png 910w,https://www.paradigmadigital.com/assets/img/resize/small/bienestar_xp_paradoja_velocidad_ca354d4bc4.png 455w"
          class="lazy-img"  
                  sizes="(max-width: 767px) 80vw, 75vw"
                  alt="Bienestar en XP: la paradoja de la velocidad" title="Bienestar en XP: la paradoja de la velocidad"/></article>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Conclusión: volver a lo humano para sobrevivir a lo artificial</h2>
<p>En la era de la IA, la velocidad es una <em>commodity</em>. Cualquiera puede generar código rápido. La ventaja competitiva de un equipo ya no es <strong>cuánto</strong> código produce, sino su capacidad para <strong>mantenerlo, adaptarlo</strong> y, sobre todo, no implosionar por agotamiento en el proceso. XP es la metodología que nos recuerda que el software lo hacen personas, para personas.</p>

            ]]>
        </content:encoded>
    </item><item>
        <dc:creator>
            <![CDATA[ 4 autores ]]>
        </dc:creator>
        <title>Podcast - Las primeras impresiones del Google Next 2026</title>
        <link>https://www.paradigmadigital.com/dev/podcast-primeras-impresiones-google-next-2026/</link>
        <pubDate>Tue, 28 Apr 2026 06:00:00 GMT</pubDate>
        <guid isPermaLink="true">https://www.paradigmadigital.com/dev/podcast-primeras-impresiones-google-next-2026/</guid>
        <description>El equipo de Goodly analiza el Google Cloud Next 2026: Gemini Enterprise Agent Platform, era agéntica, ciberdefensa y mejoras en Cloud Run.
</description>
        <content:encoded>
            <![CDATA[
                <p>El Google Cloud Next de este año ha dejado un mensaje muy claro: <strong>hemos superado la fase de experimentación con la inteligencia artificial para adentrarnos de lleno en la &quot;era agéntica&quot;</strong>.</p>
<p>La IA ya no es solo una herramienta de consulta, sino un ecosistema de agentes autónomos listos para tomar el control y operar en la nube.</p>
<p>En el episodio de hoy, <strong>el equipo de Goodly se reúne en su particular <em>sanedrín</em> para desgranar, ordenar y dar sentido a todos los anuncios, rebrandings y novedades</strong> que nos ha dejado este evento tecnológico de Google.</p>
<iframe id="" class="block block-iframe -like-text-width" src="https://open.spotify.com/embed/episode/7ckUDv7EGBOfFlV2nEH6fP?utm_source=generator" style="height:240px;  width:100%;"></iframe>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Gemini Enterprise Agent Platform, la gran apuesta de Google</h2>
<p>Si te has perdido un poco con la sopa de letras y los cambios de nombres, no te preocupes, no te ha pasado solo a ti. <strong>El gran protagonista del evento ha sido Gemini Enterprise Agent Platform</strong>, el nuevo centro de mando que viene a reorganizar lo que antes conocíamos como Vertex AI.</p>
<p>El enfoque ha cambiado: ya no se trata únicamente de entrenar modelos, sino de ofrecer <strong>una plataforma empresarial centralizada para gobernar, monitorizar y desplegar nuestros agentes de IA</strong>, facilitando además su conexión a través de múltiples integraciones (MCPs).</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">La apuesta de Google por la ciberdefensa: agentes autónomos para mitigar amenazas en tiempo real</h2>
<p>Pero tener ejércitos de agentes operando en la nube requiere un pilar fundamental: la seguridad. Por ello, <strong>Google ha dado un golpe en la mesa presentando nuevos agentes autónomos especializados en ciberdefensa</strong>, capaces de buscar amenazas de forma activa (<em>Threat Hunting</em>) y mitigarlas en tiempo real.</p>
<p>Esto, sumado a las esperadas mejoras en el entorno de Google Workspace (que por fin incorpora <em>skills</em> y un contexto unificado de usuario para hacer frente a la competencia) demuestra que <strong>la estabilización de la IA en el entorno corporativo ya es una realidad</strong>.</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Cloud Run y BigQuery siguen encandilando a los perfiles tech</h2>
<p>Más allá de la fiebre agéntica, las grandes superestrellas clásicas de GCP no se han quedado atrás y han reclamado su cuota de pantalla. <strong>Cloud Run sigue enamorando a los equipos de desarrollo</strong> introduciendo entornos aislados (<em>sandbox</em>), montajes directos de volúmenes y, lo más aclamado, límites estrictos de facturación para evitar sustos en la tarjeta.</p>
<p>Por su parte, <strong>BigQuery mejora su ecosistema de compatibilidad</strong> y nos sorprende integrando consultas continuas impulsadas por IA que reaccionan a flujos de eventos en tiempo real.</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Más allá de lanzamientos y novedades</h2>
<p>Como en todo buen evento, <strong>también ha habido espacio para el &quot;salseo&quot;</strong>: desde el inoportuno lanzamiento de un nuevo modelo por parte de la competencia en pleno Next, hasta el gran misterio de por qué seguimos esperando la versión GA de Gemini 3.1 en Europa.</p>
<p>Si quieres enterarte de lo bueno, lo malo y de todo lo que echamos en falta, ponte los cascos y escucha este nuevo episodio de “Cómo conocí a nuestro cloud”. ¡No te lo pierdas!</p>

            ]]>
        </content:encoded>
    </item><item>
        <dc:creator>
            <![CDATA[ Vanessa Davo Parreño ]]>
        </dc:creator>
        <title>Cómo usar GSAP para crear efectos de partículas en el DOM</title>
        <link>https://www.paradigmadigital.com/dev/como-usar-gsap-para-crear-efectos-particulas-dom/</link>
        <pubDate>Mon, 27 Apr 2026 06:00:00 GMT</pubDate>
        <guid isPermaLink="true">https://www.paradigmadigital.com/dev/como-usar-gsap-para-crear-efectos-particulas-dom/</guid>
        <description>No hace falta llenar una web de animaciones para mejorar la experiencia. A veces basta con un buen feedback visual en el momento justo. Un botón, una explosión de partículas y GSAP pueden convertir una acción simple como dar “like” en algo mucho más memorable. Te contamos cómo hacerlo paso a paso en este post.
</description>
        <content:encoded>
            <![CDATA[
                <p>Admítelo: tú también has pulsado mil veces a un botón de &quot;Like&quot; solo porque, al hacerlo, soltaba una explosión de color o una lluvia de corazones. No te culpo, a mí también me ha pasado. Son este tipo de microinteracciones las que nos generan esa sensación tan satisfactoria de que <strong>la interfaz está viva</strong>.</p>
<p>Este detalle, que puede parecer una tontería, es precisamente lo que separa un producto digital bien cuidado y pensado de una aplicación genérica y aburrida.</p>
<p>Ojo, tampoco hace falta llenar tu web de animaciones innecesarias. Pero cuando las usas en el lugar justo (como en ese botón de acción principal) consigues algo muy potente: que el usuario reciba un feedback inmediato y satisfactorio.<br>
Y en realidad, hacer este tipo de animaciones es mucho más sencillo de lo que parece. Así que en el post de hoy vamos a hacer, paso a paso, <strong>una microinteracción de partículas en un botón de like</strong>.</p>
<article class="block block-image  -inline-block -like-text-width -center lazy-true"><img data-src="https://www.paradigmadigital.com/assets/cms/like_liked_transicion_b54a037d63.gif" class="lazy-img" title="Botón like" alt="transición botón de like a liked"></article>
<h2 class="block block-header h--h30-15-400 left  ">¿Qué herramientas vamos a necesitar?</h2>
<p>Para este proyecto usaremos <strong>HTML, CSS y JavaScript</strong>, pero el verdadero motor de la animación será <a href="https://gsap.com/" target="_blank">GSAP</a>.</p>
<p>Si no has oído hablar de GSAP, es una de las <strong>herramientas más conocidas para animar casi cualquier cosa en la web</strong>. Nos ahorra un montón de tiempo (y de líneas de código) en comparación con la forma nativa de hacerlo.</p>
<p>He preparado un ejemplo en CodePen para que puedas probarlo y ver el resultado final ahora mismo, pero aún así lo vamos a ver paso a paso. Puedes ver el ejemplo pulsando sobre el siguiente enlace: <a href="https://codepen.io/editor/vanessadavo/pen/019d7c5e-bd13-744a-b078-08f91a48f5f8" target="_blank">Like Button (GSAP)</a></p>
<iframe id="" class="block block-iframe -like-text-width" src="https://codepen.io/editor/vanessadavo/pen/019d7c5e-bd13-744a-b078-08f91a48f5f8" style="height:300px;  width:100%;"></iframe>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Estructura HTML: definiendo la estructura semántica del botón</h2>
<p>Para empezar, vamos a <strong>configurar una estructura básica de HTML</strong>. Lo más importante aquí, además de enlazar nuestros archivos locales de estilos y lógica, es <strong>importar las librerías necesarias</strong> para que la animación de las partículas sea posible.</p>
<pre><code class="language-html">&lt;html&gt;
  &lt;head&gt;
    &lt;meta charset=&quot;UTF-8&quot;&gt;
    &lt;link rel=&quot;stylesheet&quot; href=&quot;./style.css&quot;&gt;
    &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;
    &lt;title&gt;Like Button&lt;/title&gt;
  &lt;/head&gt;
  &lt;body&gt;
    &lt;!-- GSAP --&gt;
    &lt;script src=&quot;https://unpkg.com/gsap@3/dist/gsap.min.js&quot;&gt;&lt;/script&gt;
    &lt;script src=&quot;https://assets.codepen.io/16327/Physics2DPlugin3.min.js&quot;&gt;&lt;/script&gt;

    &lt;!-- SCRIPT --&gt;
    &lt;script src=&quot;./script.js&quot;&gt;&lt;/script&gt;
  &lt;/body&gt;
&lt;/html&gt;
</code></pre>
<p>Para que este efecto funcione correctamente, necesitamos importar <strong>dos piezas clave</strong> del ecosistema de GSAP:</p>
<ul>
<li><strong>GSAP Core</strong>: es el motor principal de la librería. Es lo que nos permite crear las líneas de tiempo (timelines) y gestionar las propiedades básicas de los elementos que vamos a animar.</li>
<li><strong>Physics2DPlugin</strong>: este plugin es el motor de simulación física de la animación. Nos permite definir parámetros como la gravedad, la velocidad y el ángulo de dispersión, delegando en GSAP todos los cálculos matemáticos complejos necesarios para lograr trayectorias realistas.</li>
</ul>
<p><em><strong>Nota:</strong> el plugin Physics2D es una herramienta premium de GSAP. En este ejemplo lo utilizamos mediante la URL específica para uso en CodePen, pero requiere una licencia si tienes pensado implementarlo en un proyecto comercial.</em></p>
<p>Ahora, dentro de nuestro &lt;body&gt; (y siempre antes de las etiquetas &lt;script&gt;), añadiremos la <strong>estructura del botón</strong>.</p>
<pre><code class="language-html">&lt;button id=&quot;like-btn&quot;&gt;
  &lt;div id=&quot;emitter&quot;&gt;
    &lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; fill=&quot;none&quot; viewBox=&quot;0 0 24 24&quot; stroke-width=&quot;2&quot; stroke=&quot;currentColor&quot;&gt;
      &lt;path stroke-linecap=&quot;round&quot; stroke-linejoin=&quot;round&quot; d=&quot;M21 8.25c0-2.485-2.099-4.5-4.688-4.5-1.935 0-3.597 1.126-4.312 2.733-.715-1.607-2.377-2.733-4.313-2.733C5.1 3.75 3 5.765 3 8.25c0 7.22 9 12 9 12s9-4.78 9-12Z&quot; /&gt;
    &lt;/svg&gt;
  &lt;/div&gt;
  &lt;span&gt;Like&lt;/span&gt;
&lt;/button&gt;
</code></pre>
<p>En este esquema hemos definido <strong>dos identificadores importantes</strong>:</p>
<ul>
<li><strong>like-btn</strong>: es el ID del botón principal. Lo utilizaremos en JavaScript para escuchar el evento de clic y para gestionar los cambios de estilo o texto cuando se interactúe con él.</li>
<li><strong>emitter</strong>: este elemento es esencial. Actúa como el contenedor del icono, pero su función principal es servir de &quot;punto de origen&quot; para las partículas. Al tenerlo separado, podemos controlar que la explosión nazca exactamente desde la posición del corazón y no desde cualquier parte del botón.</li>
</ul>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Estilos CSS: preparando la estética y el contenedor</h2>
<p>Para definir los estilos, crearemos un archivo llamado <strong>style.css</strong>. El primer paso será importar la tipografía y definir una serie de variables CSS (<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/Guides/Cascading_variables/Using_custom_properties" target="_blank">Custom Properties</a>). Esto nos permitirá <strong>gestionar los colores y valores reutilizables</strong> desde un solo lugar, haciendo que nuestro diseño sea mucho más fácil de mantener.</p>
<pre><code class="language-css">@import url('https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,100..1000;1,9..40,100..1000&amp;display=swap');

:root{
  --color-bg: #e9ecef;
  --color-primary: #495057;
  --color-accent: #ff3562;
  --color-on-accent: #ffffff;

  --text-sm: 1.1em;
  --text-md: 1.8rem;
    
  --transition-default: all 0.25s ease;
}
</code></pre>
<p>A continuación definiremos el <strong>estilo global</strong> para limpiar márgenes y centrar nuestro botón en pantalla.</p>
<pre><code class="language-css">*{
  font-family: &quot;DM Sans&quot;, sans-serif;
}

body,
html {
  height: 100%;
  margin: 0;
  padding: 0;
  overflow: hidden;
}

body {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  min-height: 100vh;
    background-color: var(--color-bg);
}
</code></pre>
<p>Además, prepararemos la clase <strong>.particles-container</strong>. Aunque este contenedor lo crearemos dinámicamente en JavaScript, por claridad del código, el estilo lo definiremos aquí:</p>
<pre><code class="language-css">.particles-container {
  position: absolute;
  left: 0;
  top: 0;
  overflow: visible;
  z-index: 2;
  pointer-events: none;
  opacity: 0;
}
</code></pre>
<p>En la clase .particles-container, hay un par de propiedades que merecen especial atención:</p>
<ul>
<li><strong>z-index: 2:</strong> el z-index es la propiedad que controla el orden de apilamiento de los elementos en el eje Z (profundidad). Por defecto, los elementos tienen un valor de 1 (o auto). Si queremos que las partículas exploten por encima del botón y no queden ocultas detrás de él, debemos asignarles un valor superior, en este caso 2.</li>
<li><strong>pointer-events: none:</strong> esta propiedad es clave. Evita que las partículas interfieran con el ratón. De esta forma, aunque una partícula pase por encima del cursor, el usuario podrá seguir haciendo clic en el botón sin problemas.</li>
<li><strong>opacity: 0:</strong> inicialmente, el contenedor es invisible. Solo lo mostraremos mediante GSAP en el momento exacto de la animación.</li>
</ul>
<p>El siguiente paso es <strong>definir el estilo de nuestro botón</strong>. Verás que aquí hacemos uso de las <strong>variables CSS que definimos al principio</strong>, lo que nos permite mantener el código más limpio y coherente.</p>
<p>Además, prepararemos el estado <strong>.clicked</strong>. Esta clase la añadiremos mediante JavaScript en el momento del clic para modificar el estilo del botón y sus elementos internos (como el icono y el texto):</p>
<pre><code class="language-css">button{
  border-radius: 8px;
  cursor: pointer;
  padding: 12px 26px;
  font-size: var(--text-md);
  border: 2px solid var(--color-primary);
  display: flex;
  align-items: center;
  gap: 12px;
  color: var(--color-primary);
  background-color: #e9ecef;
  transition: var(--transition-default);
}

button.clicked{
  border-color: var(--color-accent);
  background-color: var(--color-accent);
  color: var(--color-on-accent);
}

button svg{
  width: var(--text-sm);
  fill: var(--color-primary);
  stroke: var(--color-primary);
  transition: var(--transition-default);
}

button.clicked svg{
  fill: var(--color-on-accent);
  stroke: var(--color-on-accent);
}
</code></pre>
<p>Por último, necesitamos <strong>definir el aspecto de la partícula</strong>. En este ejemplo se ha optado por un diseño de puntos circulares. No obstante, este estilo lo puedes ajustar como más te guste.</p>
<pre><code class="language-css">.dot {
  position: absolute;
  border-radius: 50%;
}
</code></pre>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Lógica con JavaScript: creando el sistema de partículas con GSAP</h2>
<p>Es hora de pasar a la acción. Ahora configuraremos la <strong>lógica necesaria para que el botón responda a nuestros clics</strong> y genere la explosión de partículas. Todo este proceso lo gestionaremos desde nuestro archivo <strong>script.js</strong>.</p>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">Paso 1. Registrar los plugins de GSAP</h3>
<p>Lo primero que debemos hacer es <strong>registrar el plugin al motor principal de GSAP</strong>. Esto es fundamental para que la librería reconozca las propiedades físicas que vamos a usar más adelante.</p>
<pre><code class="language-javascript">gsap.registerPlugin(Physics2DPlugin);
</code></pre>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">Paso 2. Declarar los elementos</h3>
<p>En este paso vamos a <strong>capturar los elementos del DOM</strong> con los que vamos a interactuar. También aprovecharemos para crear, de forma dinámica, el contenedor donde vivirán nuestras partículas:</p>
<pre><code class="language-javascript">// Main emitter element (used as explosion origin)
const emitter = document.getElementById(&quot;emitter&quot;);

// Like button + text
const likeBtn = document.getElementById(&quot;like-btn&quot;);
const text = likeBtn.querySelector(&quot;span&quot;);

// Container that holds all particles
const container = document.createElement(&quot;div&quot;);
container.className = &quot;particles-container&quot;;
document.body.appendChild(container);
</code></pre>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">Paso 3. Configuración de GSAP y estados</h3>
<p>En este punto <strong>definiremos las variables que controlan el comportamiento de nuestra animación</strong>. Lo interesante de este enfoque es que, simplemente modificando estos valores, puedes transformar por completo el efecto.</p>
<p>Te animo a que pruebes a cambiar los parámetros como la <strong>velocidad o la gravedad</strong> para ver cómo cambia la física del movimiento. Además, en este paso, aprovecharemos para <strong>declarar el estado inicial</strong> del botón:</p>
<pre><code class="language-javascript">const emitterSize = 2;        // spawn area radius
const dotQuantity = 12;     // number of particles
const dotSizeMax = 12;      // max particle size
const dotSizeMin = 4;       // min particle size
const speed = 0.6;            // initial velocity multiplier
const gravity = 0.1;          // gravity strength

// Toggle state (liked / not liked)
let liked = false;
</code></pre>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">Paso 4. Configuración de la explosión</h3>
<p>En este paso crearemos una <strong>función reutilizable</strong> que se encargará de generar la &quot;explosión&quot; cada vez que sea llamada. La idea es crear un <strong>timeline de GSAP</strong> que contenga las animaciones individuales de cada partícula.</p>
<pre><code class="language-javascript">const explosion = createExplosion(container);

function createExplosion(container) {
  const tl = gsap.timeline({ paused: true });

  for (let i = 0; i &lt; dotQuantity; i++) {

    // Create particle element
    const dot = document.createElement(&quot;div&quot;);
    dot.className = &quot;dot&quot;;

    // Assign random color
    const colors = [&quot;#ff4d6d&quot;, &quot;#fb6f92&quot;, &quot;#ff8fab&quot;, &quot;#ffb3c1&quot;, &quot;#cdb4db&quot;, &quot;#a2d2ff&quot;];
    dot.style.backgroundColor = colors[Math.floor(Math.random() * colors.length)];

    container.appendChild(dot);

    // Random size &amp; direction (angle in radians)
    const size = gsap.utils.random(dotSizeMin, dotSizeMax, 1);
    const angle = Math.random() * Math.PI * 2;

    // Initial offset inside emitter radius
    const length = Math.random() * (emitterSize / 2 - size / 2);


    gsap.set(dot, {
      x: Math.cos(angle) * length,
      y: Math.sin(angle) * length,
      width: size,
      height: size,
      xPercent: -50,
      yPercent: -50,
      force3D: true,
      scale: gsap.utils.random(0.8, 1.2)
    });

    tl.to(
      dot,
      {
        physics2D: {
          angle: (angle * 180) / Math.PI, // convert to degrees
          velocity: (120 + Math.random() * 200) * speed,
          gravity: 500 * gravity
        },
        duration: 1 + Math.random()
      },
      0
    )
    .to(
      dot,
      {
        opacity: 0,
        scale: 0.5,
        duration: 0.3,
        ease: &quot;power2.in&quot;,
      },
      0.3
    );
  }

  return tl;
}
</code></pre>
<p>En esta función hay algunos <strong>conceptos técnicos</strong> que debemos entender:</p>
<ol>
<li><strong>Bucle de creación</strong>. Usamos un for basado en la variable dotQuantity para generar todas las partículas de golpe. Cada una recibe un color y un tamaño aleatorio para que la explosión no parezca artificial ni repetitiva.</li>
<li><strong>Cálculo de trayectoria</strong>. Utilizamos funciones matemáticas (Math.cos y Math.sin) para posicionar las partículas en un círculo alrededor del punto central. Es lo que permite que salgan disparadas en todas las direcciones (360 grados).</li>
<li><strong>El poder de Physics2D</strong>. En lugar de animar manualmente las coordenadas x e y, simplemente le pasamos al plugin un ángulo, una velocidad y una gravedad. GSAP se encarga de dibujar la parábola perfecta de caída.</li>
<li><strong>Sincronización (parámetros de posición)</strong>. Verás que las funciones .to() tienen un 0 o un 0.3 al final. En GSAP, esto se llama <a href="https://gsap.com/resources/position-parameter/" target="_blank">Position Parameter</a>.</li>
</ol>
<ul>
<li><strong>El &quot;0&quot;</strong>: obliga a todas las partículas a empezar su animación exactamente en el segundo cero del cronómetro. Sin este &quot;0&quot;, las partículas saldrían una detrás de otra y gracias a él, todas saltan a la vez creando la sensación de explosión.</li>
<li><strong>El &quot;0.3&quot;</strong>: indica que la partícula debe empezar a desvanecerse (opacidad 0) cuando el cronómetro llegue a los 0.3 segundos, permitiendo que la partícula desaparezca mientras todavía se está moviendo, logrando un efecto mucho más fluido y natural.</li>
</ul>
<h3 class="block block-header h--h20-175-500 left  add-last-dot">Paso 5. Función de la explosión</h3>
<p>Una vez que tenemos la lógica de la animación preparada, necesitamos una <strong>función que &quot;coloque&quot; el contenedor de partículas en el lugar correcto y active el movimiento</strong>. Sin este paso, las partículas podrían aparecer en una esquina de la pantalla en lugar de nacer desde el centro del botón.</p>
<pre><code class="language-javascript">function explode(element) {
  const bounds = element.getBoundingClientRect();

  // Move container to element center
  gsap.set(container, {
    x: bounds.left + bounds.width / 2,
    y: bounds.top + bounds.height / 2,
    opacity: 1
  });

  // Restart animation from the beginning
  explosion.restart();
}
</code></pre>
<p>Esta función se encarga de <strong>posicionar el efecto en el espacio</strong>: primero, utilizamos <strong>getBoundingClientRect()</strong> para calcular las coordenadas exactas del botón en la pantalla y, mediante <strong>gsap.set()</strong>, movemos instantáneamente el contenedor de partículas a su centro.</p>
<p>Finalmente, ejecutamos <strong>explosion.restart()</strong> para que el timeline de la animación vuelva al inicio y se reproduzca desde cero con cada nuevo clic, asegurando que la explosión nazca siempre desde el lugar correcto.</p>
<h2 class="block block-header h--h20-175-500 left  add-last-dot">Paso 6. Evento de clic e interacción final</h2>
<p>Para terminar, necesitamos <strong>detectar cuándo el usuario interactúa con el botón y disparar toda la lógica que hemos programado</strong>. Con el siguiente código, gestionamos el cambio de estado, la actualización visual y el lanzamiento de las partículas:</p>
<pre><code class="language-javascript">likeBtn.addEventListener(&quot;click&quot;, () =&gt; {

  // Toggle like state
  liked = !liked;
  text.textContent = liked ? &quot;Liked&quot; : &quot;Like&quot;;

  // Toggle active class (for styling)
  likeBtn.classList.toggle(&quot;clicked&quot;, liked);

  // Button press animation (quick scale feedback)
  gsap.fromTo(
    likeBtn,
    { scale: 1 },
    { scale: 0.9, duration: 0.1, yoyo: true, repeat: 1 }
  );

  // Trigger particle explosion
  liked &amp;&amp; explode(emitter);
});
</code></pre>
<p>En este bloque final <strong>ocurren dos cosas clave</strong>:</p>
<ul>
<li><strong>Feedback táctil</strong>: mediante gsap.fromTo, creamos una sensación de pulsación real haciendo que el botón se escale ligeramente. El uso de yoyo: true hace que el botón vuelva a su tamaño original automáticamente.</li>
<li><strong>Lógica condicional</strong>: gracias al operador &amp;&amp;, la función explode solo se ejecuta cuando el usuario da &quot;Like&quot;, evitando que las partículas salten también al deshacer la acción.</li>
</ul>
<p>Espero que este post te haya ayudado a entender mejor cómo funcionan este tipo de efectos y que, a partir de ahora, te sientas capaz de <strong>implementar tus propias animaciones de partículas</strong> para dar un toque extra de &quot;magia&quot; a tus interfaces. ¡A experimentar!</p>

            ]]>
        </content:encoded>
    </item><item>
        <dc:creator>
            <![CDATA[ José Luis Palomino ]]>
        </dc:creator>
        <title>La importancia de la ingeniería de prompts</title>
        <link>https://www.paradigmadigital.com/dev/importancia-ingenieria-prompts/</link>
        <pubDate>Wed, 22 Apr 2026 06:00:00 GMT</pubDate>
        <guid isPermaLink="true">https://www.paradigmadigital.com/dev/importancia-ingenieria-prompts/</guid>
        <description>El prompt no es un texto bonito ni una instrucción improvisada: es código. Y como cualquier otro, necesita pruebas, versionado, evaluación continua y una estrategia clara de operación. Sobre todo cuando trabajamos con sistemas agénticos, múltiples modelos y flujos donde un pequeño error puede disparar la latencia, el coste y la complejidad. Te lo contamos en este post
</description>
        <content:encoded>
            <![CDATA[
                <p>Muchos piensan que la inteligencia artificial generativa consiste en lanzar preguntas al aire y cruzar los dedos para que la respuesta sea acertada. Pero, ¿te has parado a pensar si la respuesta que arroja el modelo es verdaderamente correcta? ¿Te has parado a pensar si el proceso de ejecución es eficiente? ¿Si estás utilizando el modelo adecuado?.</p>
<p>En este post te contamos la realidad. <strong>¿Qué sucede si no mides la latencia, el coste por token y la trazabilidad de cada llamada?</strong> Simplemente, tendrías un experimento poco útil para un entorno profesional. Integrar LLMs en producción requiere una mentalidad de ingeniería donde el prompt es solo la punta del iceberg de un sistema complejo y auditable.</p>
<h2 class="block block-header h--h30-15-400 left  ">¿Es el prompting una moda o una disciplina de ingeniería?</h2>
<p>Existe una idea equivocada que simplifica el rol de ingeniería de prompts a saber redactar instrucciones a modelos de lenguaje con buenos modales. La realidad en los equipos de desarrollo es otra muy distinta. Cuando intentas escalar un sistema agéntico, te das cuenta de que <strong>el prompt es código</strong> y, como tal, <strong>necesita versionado, pruebas y monitorización constante</strong>.</p>
<p>Nos hemos encontrado con organizaciones que lanzan prompts directamente en su código fuente, creando un infierno operativo cada vez que quieren ajustar una coma o probar un modelo nuevo. <strong>Tratar el prompt como un activo externo y gestionado</strong> permite iterar sin desplegar de nuevo toda la infraestructura de microservicios.</p>
<p>El problema real surge cuando pasamos de un simple chat a una malla de agentes especializados. Aquí, un <strong>error de interpretación</strong> en el &quot;agente supervisor&quot; puede derivar en un bucle sin fin de llamadas a la API que disparen la factura a final de mes. Diseñar un sistema de IA robusto implica controlar qué modelo responde a cada tarea según su complejidad.</p>
<figure class="block block-caption  -inline-block -like-text-width -center"><img src="https://www.paradigmadigital.com/assets/img/defaults/lazy-load.svg"
          data-src="https://www.paradigmadigital.com/assets/img/resize/small/enrutado_agente_supervisor_73bd2f94ba.png"
          data-srcset="https://www.paradigmadigital.com/assets/img/resize/huge/enrutado_agente_supervisor_73bd2f94ba.png 1920w,https://www.paradigmadigital.com/assets/img/resize/big/enrutado_agente_supervisor_73bd2f94ba.png 1280w,https://www.paradigmadigital.com/assets/img/resize/medium/enrutado_agente_supervisor_73bd2f94ba.png 910w,https://www.paradigmadigital.com/assets/img/resize/small/enrutado_agente_supervisor_73bd2f94ba.png 455w"
          class="lazy-img"  
                  sizes="(max-width: 767px) 80vw, 75vw"
                  alt="Figura 1: enrutado del agente supervisor hacia el resto de agentes especializados desde Langfuse." title="undefined"/><figcaption>Figura 1: enrutado del agente supervisor hacia el resto de agentes especializados desde Langfuse.</figcaption></figure>
<h2 class="block block-header h--h30-15-400 left  ">¿Cuánto te cuesta realmente cada palabra que genera tu modelo?</h2>
<p>Si no tienes <strong>visibilidad sobre el consumo de tokens</strong>, estás navegando a ciegas. La elección del modelo es una cuestión de economía de procesos. Utilizar modelos de alto rendimiento para tareas de clasificación simple es un desperdicio de recursos que penaliza tanto el presupuesto como la experiencia de usuario por la latencia acumulada. En nuestras implementaciones, <strong>segmentamos las tareas</strong>: dejamos los modelos más pesados para el razonamiento complejo y recurrimos a versiones &quot;Flash&quot; o modelos locales para la extracción de metadatos o la categorización de intenciones.</p>
<p>¿Por qué conformarse con la respuesta que sale a la primera? La optimización del prompt mediante <strong>técnicas avanzadas de Few-Shot o Chain of Thought</strong> mejora la precisión y  reduce la necesidad de reintentos. Cada llamada fallida o alucinada es tiempo de espera para el usuario y dinero tirado a la basura en llamadas innecesarias. La <strong>trazabilidad end-to-end</strong> se vuelve obligatoria para entender en qué paso de la cadena se está perdiendo la eficiencia o dónde el modelo está empezando a divagar.</p>
<figure class="block block-caption  -inline-block -like-text-width -center"><img src="https://www.paradigmadigital.com/assets/img/defaults/lazy-load.svg"
          data-src="https://www.paradigmadigital.com/assets/img/resize/small/uso_tecnicas_avanzadas_langfuse_2d233c7a42.png"
          data-srcset="https://www.paradigmadigital.com/assets/img/resize/huge/uso_tecnicas_avanzadas_langfuse_2d233c7a42.png 1920w,https://www.paradigmadigital.com/assets/img/resize/big/uso_tecnicas_avanzadas_langfuse_2d233c7a42.png 1280w,https://www.paradigmadigital.com/assets/img/resize/medium/uso_tecnicas_avanzadas_langfuse_2d233c7a42.png 910w,https://www.paradigmadigital.com/assets/img/resize/small/uso_tecnicas_avanzadas_langfuse_2d233c7a42.png 455w"
          class="lazy-img"  
                  sizes="(max-width: 767px) 80vw, 75vw"
                  alt="Figura 2: muestra del uso de técnicas avanzadas de prompting desde Langfuse." title="undefined"/><figcaption>Figura 2: muestra del uso de técnicas avanzadas de prompting desde Langfuse.</figcaption></figure>
<h2 class="block block-header h--h30-15-400 left  ">¿Por qué seguir operando una caja negra sin métricas reales?</h2>
<p>La <a href="https://www.paradigmadigital.com/dev/abecedario-observabilidad-vida-proyecto-a-i/" target="_blank">observabilidad</a> es el gran talón de Aquiles de muchos proyectos de IA. Aquí es donde herramientas como <strong>Langfuse</strong> entran en juego para dar luz sobre lo que ocurre tras cada petición. No basta con saber que el sistema respondió, necesitamos saber <strong>cuánto tardó cada nodo del grafo de ejecución, qué versión del prompt se utilizó y si el contexto recuperado (<a href="https://www.paradigmadigital.com/techbiz/generacion-aumentada-recuperacion-uso-empresarial/" target="_blank">RAG</a>) fue realmente útil para la respuesta final</strong>. Contar con un repositorio centralizado de prompts con políticas de caché nos permite reducir la latencia de recuperación, garantizando que el sistema sea escalable en entornos de alta demanda.</p>
<figure class="block block-caption  -inline-block -like-text-width -center"><img src="https://www.paradigmadigital.com/assets/img/defaults/lazy-load.svg"
          data-src="https://www.paradigmadigital.com/assets/img/resize/small/trazabilidad_observabilidad_langfuse_cacfdb0025.png"
          data-srcset="https://www.paradigmadigital.com/assets/img/resize/huge/trazabilidad_observabilidad_langfuse_cacfdb0025.png 1920w,https://www.paradigmadigital.com/assets/img/resize/big/trazabilidad_observabilidad_langfuse_cacfdb0025.png 1280w,https://www.paradigmadigital.com/assets/img/resize/medium/trazabilidad_observabilidad_langfuse_cacfdb0025.png 910w,https://www.paradigmadigital.com/assets/img/resize/small/trazabilidad_observabilidad_langfuse_cacfdb0025.png 455w"
          class="lazy-img"  
                  sizes="(max-width: 767px) 80vw, 75vw"
                  alt="Figura 3: trazabilidad y observabilidad desde Langfuse." title="undefined"/><figcaption>Figura 3: trazabilidad y observabilidad desde Langfuse.</figcaption></figure>
<p>La <strong>evaluación no puede ser subjetiva</strong>. Implementamos sistemas de &quot;LLM-as-a-judge&quot; y datasets de prueba para calificar automáticamente la toxicidad, la concisión y la fidelidad de las respuestas, entre otros evaluadores, frente a una &quot;verdad absoluta&quot;. <strong>Automatizar la evaluación del rendimiento</strong> nos permite detectar regresiones de calidad antes de que el usuario final se encuentre con una respuesta incoherente.</p>
<figure class="block block-caption  -inline-block -like-text-width -center"><img src="https://www.paradigmadigital.com/assets/img/defaults/lazy-load.svg"
          data-src="https://www.paradigmadigital.com/assets/img/resize/small/pruebas_evaluacion_prompts_e4b61b9b3b.png"
          data-srcset="https://www.paradigmadigital.com/assets/img/resize/huge/pruebas_evaluacion_prompts_e4b61b9b3b.png 1920w,https://www.paradigmadigital.com/assets/img/resize/big/pruebas_evaluacion_prompts_e4b61b9b3b.png 1280w,https://www.paradigmadigital.com/assets/img/resize/medium/pruebas_evaluacion_prompts_e4b61b9b3b.png 910w,https://www.paradigmadigital.com/assets/img/resize/small/pruebas_evaluacion_prompts_e4b61b9b3b.png 455w"
          class="lazy-img"  
                  sizes="(max-width: 767px) 80vw, 75vw"
                  alt="Figura 4: pruebas de evaluación de prompts con diferentes modelos y temperaturas." title="undefined"/><figcaption>Figura 4: pruebas de evaluación de prompts con diferentes modelos y temperaturas.</figcaption></figure>
<h2 class="block block-header h--h30-15-400 left  ">¿Cómo influye el tamaño del modelo en la estructura de tus instrucciones?</h2>
<p><strong>No todos los LLMs procesan la información con el mismo nivel de agudeza</strong>, y aquí es donde la eficiencia de costes choca con la realidad técnica.</p>
<p>En nuestra arquitectura orquestamos versiones flash, mini, nano o pro dependiendo de la tarea, lo que nos ha llevado a confirmar una regla inversamente proporcional: <strong>a mayor tamaño del modelo, menor esfuerzo de prompting necesitas</strong>. Si disparas contra un modelo pesado, rara vez te hará falta montar una estructura laberíntica para obtener un resultado decente, ya que el sistema lo resuelve por pura fuerza bruta.</p>
<p>El problema llega cuando necesitas optimizar la latencia al milisegundo y configuras modelos con menos parámetros. <strong>Esta exigencia técnica crece de forma exponencial: cuanto más ligero es el modelo, más te obliga a diseñar un prompt avanzado y sin ambigüedades para evitar que devuelva respuestas inconsistentes</strong>.</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Conclusiones</h2>
<p>El éxito de una implementación de IA generativa no depende de encontrar el &quot;prompt mágico&quot;, depende de <strong>construir un ecosistema de ingeniería a su alrededor</strong>. Controlar la latencia, optimizar los costes mediante la selección inteligente de modelos y medir cada interacción con herramientas de observabilidad son los pasos obligatorios para cualquier equipo que quiera salir de la fase de prototipo. La <strong>transparencia operativa</strong> es la única forma de generar confianza en sistemas que, por definición, son probabilísticos.</p>
<p>Por si te ha quedado alguna duda de que cualquier perfil puede trabajar como ingeniero/a de prompts, te dejo este bonus extra:</p>
<h3 class="block block-header h--h20-175-500 left  ">¿Hablas con el motor real o con la versión edulcorada?</h3>
<p>Existe un choque de realidad cuando pasas de interactuar con un modelo de lenguaje desde su interfaz conversacional a integrarlo mediante código. La interfaz que consumes a diario esconde un prompt de sistema inmenso que condiciona todo. Esa cortesía artificial y la tendencia a dar explicaciones extensas son producto de una capa diseñada específicamente para el usuario final. <strong>Al conectar tu sistema directamente contra la API, te estrellas contra un entorno crudo que no asume absolutamente nada por ti</strong>. Aquí desaparecen los asistentes proactivos y te topas con sistemas vagos. Operar a este nivel te obliga a construir tus propias barreras de contención. Cada detalle marca la diferencia.<br>
Si sigues pensando que este perfil no es necesario en un equipo de IA y te atreves a intentarlo, ¡SUERTE🍀!. Te leo en comentarios 👇.</p>
<p><strong>Referencias y enlaces</strong></p>
<ul>
<li><a href="https://langfuse.com/docs" target="_blank">Documentación de integración con Langfuse</a></li>
<li><a href="https://langfuse.com/docs/prompts/get-started" target="_blank">Guía de gestión de prompts y caché de dos niveles</a></li>
<li><a href="https://langfuse.com/docs/evaluation/evaluation-methods/scores-via-sdk" target="_blank">Sistemas de evaluación de calidad y fidelidad en LLMs</a></li>
<li><a href="https://langchain-ai.github.io/langgraph/" target="_blank">Arquitectura de orquestación agéntica con LangGraph</a></li>
</ul>

            ]]>
        </content:encoded>
    </item><item>
        <dc:creator>
            <![CDATA[ 4 autores ]]>
        </dc:creator>
        <title>Podcast - Predicciones Google Next 2026: ¿golpe sobre la mesa o más de lo mismo?</title>
        <link>https://www.paradigmadigital.com/dev/podcast-predicciones-google-next-2026-golpe-sobre-la-mesa-o-mas-de-lo-mismo/</link>
        <pubDate>Tue, 21 Apr 2026 06:00:00 GMT</pubDate>
        <guid isPermaLink="true">https://www.paradigmadigital.com/dev/podcast-predicciones-google-next-2026-golpe-sobre-la-mesa-o-mas-de-lo-mismo/</guid>
        <description>Nuestro equipo de Goodly disecciona el Google Next 2026: predicciones sobre el dominio de la IA y principales novedades en el ecosistema Google Cloud.
</description>
        <content:encoded>
            <![CDATA[
                <p>Los días son más largos, los árboles florecen y las personas alérgicas ya sufren las consecuencias de la primavera... ¡Eso solo puede significar que <strong>el Google Next 2026 está a la vuelta de la esquina</strong>!</p>
<p>Del 22 al 24 de abril, <strong>el mundo cloud mirará hacia Google para ver qué cartas tiene bajo la manga</strong>. En este episodio de &quot;Cómo conocí a nuestro cloud&quot;, nos mojamos y <strong>abrimos la veda de las predicciones para adivinar qué veremos en el evento más importante del año para el ecosistema de Google Cloud</strong>.</p>
<iframe id="" class="block block-iframe -like-text-width" src="https://open.spotify.com/embed/episode/5V4QOd0riWIypyx1LAkzpH?utm_source=generator" style="height:240px;  width:100%;"></iframe>
<p>Tras un año marcado por la consolidación de Gemini 3 y la resaca de la fiebre de la IA generativa, <strong>la gran pregunta es si este Next servirá para afianzar el dominio de Google o si seguiremos en una fase de &quot;anuncios en preview&quot;</strong>.</p>
<p>Analizamos la agenda del evento y los datos son claros: <strong>la IA sigue devorándolo todo</strong>. Con apenas un 10% de sesiones que no mencionan palabras como GenAI o Gemini, parece que la infraestructura tradicional ha quedado relegada a ser el soporte silencioso de la inteligencia artificial.</p>
<p>Debatimos sobre el futuro de los protocolos de integración, con el dilema entre cuándo usar MCPs y cuándo usar A2A, y cómo <strong>la incertidumbre tecnológica está frenando la adopción masiva en el mundo enterprise</strong>.</p>
<p>También ponemos el foco en el hardware: <strong>¿veremos una nueva versión de las TPUs (Ironwood) que logre romper el monopolio de NVIDIA?</strong> Además, exploramos la necesidad de que Google &quot;cierre el círculo&quot; integrando de verdad la IA en el flujo de trabajo diario de Workspace, para que generar una presentación de slides deje de ser una batalla contra imágenes estáticas.</p>
<p>Para terminar, no podíamos cerrar sin nuestra clásica sección de triples. Desde apuestas arriesgadas por el mundo multimedia y la generación de mundos, hasta la posible explosión de Project Astra o la integración total de conectores externos en la App de Gemini.</p>
<p><strong>¿Cuántos de nuestros vaticinios se harán realidad?</strong> No te pierdas esta tertulia con la &quot;aristocracia&quot; del programa: José Berenguer, Andrés Navidad, Óscar Ferrer y Tomás Calleja.</p>
<p>Como todo en la nube, <strong>el Next promete emociones fuertes y algún que otro suflé que puede desinflarse</strong>.</p>
<p>¡Escucha el episodio completo y prepárate para el evento del año!</p>

            ]]>
        </content:encoded>
    </item><item>
        <dc:creator>
            <![CDATA[ David García Luna ]]>
        </dc:creator>
        <title>AI-XP: del manifiesto del craftsmanship a la era de la IA</title>
        <link>https://www.paradigmadigital.com/transformacion-organizacional-rev/ai-xp-manifiesto-craftsmanship-era-ia/</link>
        <pubDate>Mon, 20 Apr 2026 06:00:00 GMT</pubDate>
        <guid isPermaLink="true">https://www.paradigmadigital.com/transformacion-organizacional-rev/ai-xp-manifiesto-craftsmanship-era-ia/</guid>
        <description>La IA acelera la producción de software, pero también puede acelerar la deuda técnica, la confusión y la pérdida de control. Por eso tiene sentido hablar de AI-XP: usar la velocidad que aporta la IA dentro de un marco que garantice calidad, aprendizaje y sostenibilidad. Te contamos cómo aprovechar su potencial con la IA
</description>
        <content:encoded>
            <![CDATA[
                <p>En el ecosistema del desarrollo de software, cuando hablamos de <strong>metodologías ágiles</strong>, Scrum y Kanban suelen ser los protagonistas indiscutibles, dejando a menudo a <strong>Extreme Programming (XP) como &quot;el gran olvidado&quot;</strong>.</p>
<p>Sin embargo, para el perfil de Manager/Scrum Master/ Flow Master que busca no solo organizar tareas, sino <strong>garantizar la excelencia técnica y la sostenibilidad del equipo</strong>, pasar por alto XP es un error estratégico. Mientras otros marcos se centran en el flujo de gestión, XP pone el foco en la trinchera, en <strong>cómo se construye el producto para que sea robusto, flexible y rentable</strong>.</p>
<h2 class="block block-header h--h30-15-400 left  ">¿Qué es XP?</h2>
<p>Si nunca has profundizado en XP, piensa en ello no como una invención radical, sino como una <strong>recopilación de aquello que funciona</strong>. Del mismo modo que J.R.R. Tolkien no inventó los mitos de elfos y enanos, sino que recopiló y sistematizó siglos de folclore europeo para crear una mitología coherente y funcional, Kent Beck hizo lo mismo con la ingeniería de software a finales de los ‘90.</p>
<article class="block block-image  -inline-block -like-text-width -center lazy-true"><img src="https://www.paradigmadigital.com/assets/img/defaults/lazy-load.svg"
          data-src="https://www.paradigmadigital.com/assets/img/resize/small/que_es_extreme_programming_7b616f493f.jpg"
          data-srcset="https://www.paradigmadigital.com/assets/img/resize/huge/que_es_extreme_programming_7b616f493f.jpg 1920w,https://www.paradigmadigital.com/assets/img/resize/big/que_es_extreme_programming_7b616f493f.jpg 1280w,https://www.paradigmadigital.com/assets/img/resize/medium/que_es_extreme_programming_7b616f493f.jpg 910w,https://www.paradigmadigital.com/assets/img/resize/small/que_es_extreme_programming_7b616f493f.jpg 455w"
          class="lazy-img"  
                  sizes="(max-width: 767px) 80vw, 75vw"
                  alt="gráfico circular. el punto de inicio es &quot;on site customer&quot; y podemos ir hacia la derecha o hacia la izquierda. hacia la derecha vamos a test driven development (tdd), two linked minds, sustainable pace, code as documentation, collective code ownership. hacia la izquierda, vamos a pair programming y a collective code ownership" title="Qué es Extreme Programming"/></article>
<p>Beck no inventó las pruebas, ni la revisión de código, ni la comunicación con el cliente. Lo que hizo XP fue <strong>recopilar estas &quot;buenas prácticas&quot; aisladas</strong>, que la industria ya sabía que mejoraban la calidad, <strong>y llevarlas al extremo de su efectividad</strong>, ordenándolas bajo un criterio unificado.</p>
<p>A parte de la excelencia en las buenas prácticas técnicas, en XP también destacó la <strong>importancia de tener lo que hoy entendemos por Product Owner</strong> presencialmente junto al equipo (<a href="http://www.extremeprogramming.org/rules/customer.html" target="_blank">on-site customer</a>) para mejorar la conversación entre negocio y desarrollo (en aquel momento denominado “cliente”). Además, una de las aportaciones de XP al Agilismo, y la que tal vez sea la más recordada, son las <strong>Historias de Usuario</strong> tal y como las conocemos hoy (con las <a href="https://ronjeffries.com/xprog/articles/expcardconversationconfirmation/" target="_blank">3 C’s</a>) para tumbar los requisitos pesados y difíciles de entender por el Dev Team.</p>
<p>En definitiva XP es un marco diseñado para <strong>reducir el riesgo en proyectos con requisitos vagos o cambiantes</strong> aplicando buenas prácticas técnicas, favoreciendo la comunicación entre las partes y descartando aquello que no se necesita en este momento. En resumen: <strong>priorizando la satisfacción del cliente y la calidad del software</strong>.</p>
<p>Hasta aquí el <strong>resumen rápido</strong> de lo que es XP para aquellos que no fueron a clase ese día.<br>
<strong>Pero cuidado</strong>: creer que XP es <em>solo</em> esto (un puñado de buenas prácticas de programación) es como leer la siguiente sinopsis: <em>&quot;es la historia de una familia disfuncional en el espacio&quot;</em> y creer que ya conoces la saga de Star Wars.</p>
<p>Lo que esa sinopsis omite es el verdadero valor para quien lidera el equipo. <strong>XP es un sistema de gestión de riesgos y seguridad psicológica</strong>.<br>
XP asume que <strong>la agilidad sin excelencia técnica acaba convirtiéndose en una fábrica de deuda técnica</strong>. Por eso, crea una red de seguridad inquebrantable (a través de pruebas automatizadas, integración continua y diseño simple) que garantiza que el equipo pueda ir rápido, adaptar cambios constantes y no sufrir burnout en el proceso. Es la garantía de que la velocidad no destruya la calidad.</p>
<p>Y es precisamente este <strong>dilema entre velocidad y seguridad</strong> el que nos golpea de lleno en la actualidad.</p>
<p>Hoy tenemos en nuestras manos el <strong>mayor acelerador de producción de la historia: la Inteligencia Artificial Generativa</strong>. Pero generar código a una velocidad vertiginosa no es lo mismo que generar código mantenible o correcto. <strong>¿Cómo gobernamos esta nueva hiper-velocidad sin quemar al equipo ni romper el producto?</strong> La respuesta lleva casi 30 años inventada.</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Una nueva esperanza: evolucionando XP con Inteligencia Artificial</h2>
<p>¿Cómo encaja este marco de los ‘90 en la era de la IA Generativa? La realidad es que la irrupción de la IA no hace que XP sea obsoleto, al contrario, lo convierte en la <strong>estructura de seguridad necesaria</strong> para esta nueva velocidad. Estamos ante el <strong>nacimiento del AI-XP</strong> (<a href="https://dev.to/dev3l/ai-concept-to-code-integrating-ai-into-agile-development-5ai8" target="_blank">término usado por Justin Beall</a>).</p>
<p>La integración de la IA en XP no es solo usar herramientas de autocompletado, es una <strong>evolución sistémica</strong> que potencia los principios originales del marco a través de tres bucles de retroalimentación modernizados. Según Justin Beall, estos bucles son:</p>
<ol>
<li><strong>VISION (Planificación)</strong>. Donde antes dependíamos solo de la intuición humana para definir objetivos a largo plazo, ahora la IA puede analizar datos de mercado para alinear el &quot;Planning Game&quot; de XP con necesidades reales y predicciones de tendencias.</li>
<li><strong>ADAPT (Iteraciones ágiles)</strong>. La IA actúa como un facilitador que mejora la capacidad de respuesta. Puede ayudar a descomponer historias de usuario complejas y asegurar que todo el equipo entienda los criterios de aceptación, eliminando la ambigüedad en la comunicación.</li>
<li><strong>LEAP (Ejecución diaria)</strong>. Aquí es donde la práctica clásica del <em>Pair Programming</em> evoluciona hacia el <strong>&quot;AI Pairing&quot;</strong>. La IA asume las tareas rutinarias y de generación de código base, permitiendo que la persona de desarrollo, que llamaremos &quot;navegante&quot;, se centre en la estrategia, la seguridad y el diseño.</li>
</ol>
<article class="block block-image  -inline-block -like-text-width -center lazy-true"><img src="https://www.paradigmadigital.com/assets/img/defaults/lazy-load.svg"
          data-src="https://www.paradigmadigital.com/assets/img/resize/small/ai_xp_futuro_desarrollo_agil_inteligencia_artificial_d2346e0317.png"
          data-srcset="https://www.paradigmadigital.com/assets/img/resize/huge/ai_xp_futuro_desarrollo_agil_inteligencia_artificial_d2346e0317.png 1920w,https://www.paradigmadigital.com/assets/img/resize/big/ai_xp_futuro_desarrollo_agil_inteligencia_artificial_d2346e0317.png 1280w,https://www.paradigmadigital.com/assets/img/resize/medium/ai_xp_futuro_desarrollo_agil_inteligencia_artificial_d2346e0317.png 910w,https://www.paradigmadigital.com/assets/img/resize/small/ai_xp_futuro_desarrollo_agil_inteligencia_artificial_d2346e0317.png 455w"
          class="lazy-img"  
                  sizes="(max-width: 767px) 80vw, 75vw"
                  alt="AI-XP: el futuro del desarrollo ágil con inteligencia artificial" title="AI-XP"/></article>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Las nuevas paradojas del AI-XP</h2>
<p>Antes de cantar victoria y asumir que la IA más las prácticas de los '90 resolverán todos nuestros problemas, como líderes técnicos y de gestión debemos pararnos a reflexionar. La adopción de este nuevo modelo trae consigo <strong>paradojas e incertidumbres</strong> que cambiarán las reglas del juego:</p>
<ul>
<li><strong>La paradoja de las historias de usuario</strong></li>
</ul>
<p>En su origen, XP nos liberó de los tediosos documentos de requisitos de cientos de páginas creando las historias de usuario (promesas de una conversación escritas en un par de líneas). Sin embargo, hoy, para que un modelo de IA no alucine y genere código útil, necesitamos nutrirlo con un contexto profundísimo (SPECs hiper-detalladas, prompts exhaustivos, reglas de negocio escritas). <strong>¿Estamos volviendo a la era de la hiper-documentación técnica solo para que la máquina nos entienda?</strong> El reto será que el exceso de especificaciones para la IA no mate la conversación entre humanos.</p>
<ul>
<li><strong>La redefinición del &quot;equipo híbrido&quot;</strong></li>
</ul>
<p>Hace apenas un par de años, el gran debate en el management era cómo gestionar equipos híbridos, refiriéndonos exclusivamente a la dicotomía entre trabajo presencial y 100% remoto. Hoy, el concepto ha mutado radicalmente: <strong>un equipo híbrido moderno es el formado por mentes humanas y agentes de Inteligencia Artificial</strong>. Gestionar la confianza, las expectativas y el flujo de trabajo en esta nueva convivencia es el verdadero desafío del Agile Coach de esta década.</p>
<ul>
<li><strong>La IA como el nuevo &quot;silo de conocimiento&quot;</strong></li>
</ul>
<p>XP promovía la Propiedad Colectiva del Código para evitar que el conocimiento residiera en una sola persona (el temido &quot;bus factor&quot;). Pero, ¿qué ocurre si la IA escribe la mayor parte de la base de código y los equipos de desarrollo se limitan a hacer aprobaciones rápidas? Corremos el riesgo de <strong>convertir a la IA en una &quot;caja negra&quot;</strong>, perdiendo el control y la comprensión profunda de nuestro propio producto.</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Retorno a la humanidad</h2>
<p>Como conclusión, <strong>la IA tiene el potencial de acelerar la producción de software, pero también de acelerar el caos si no hay gobierno</strong>, y XP proporciona ese gobierno. Al automatizar la complejidad técnica y la generación de código rutinaria, la IA permite que XP cumpla su promesa original más ambiciosa: <strong>humanidad y respeto</strong>.</p>
<p>Al liberarnos de la tarea mecánica de &quot;picar código&quot; repetitivo, los equipos pueden centrarse en lo que XP siempre valoró más: la <strong>creatividad</strong>, la <strong>resolución de problemas complejos</strong> y la <strong>colaboración humana de alto valor</strong>. XP no ha muerto, simplemente ha encontrado, treinta años después, la herramienta perfecta para alcanzar su máximo potencial.</p>

            ]]>
        </content:encoded>
    </item><item>
        <dc:creator>
            <![CDATA[ Raúl Martínez ]]>
        </dc:creator>
        <title>Pipeline NLP para análisis de riesgos: de documentos no estructurados a JSON estructurado</title>
        <link>https://www.paradigmadigital.com/dev/pipeline-nlp-analisis-riesgos-documentos-no-estructurados-json-estructurado/</link>
        <pubDate>Wed, 15 Apr 2026 06:00:00 GMT</pubDate>
        <guid isPermaLink="true">https://www.paradigmadigital.com/dev/pipeline-nlp-analisis-riesgos-documentos-no-estructurados-json-estructurado/</guid>
        <description>La información crítica no suele venir en una tabla SQL. Llega en PDFs, correos urgentes o informes caóticos. En este post contamos cómo un pipeline de NLP puede clasificar, extraer contexto y convertir todo eso en JSON estructurado para analizar riesgos en tiempo real.
</description>
        <content:encoded>
            <![CDATA[
                <p>En el mundo real (y sobre todo en banca o seguros), <strong>la información crítica no viene en una tabla de SQL</strong>. Viene en PDFs, correos urgentes o informes de incidencias escritos a mano alzada. Si tienes que analizar 2.000 de estos al día, o tienes un ejército de personas leyendo o te montas algo automático.</p>
<p>En este post os quiero enseñar <strong>cómo diseñé un pipeline de NLP</strong> para atacar este problema. No es solo &quot;meter IA por meter&quot;, sino crear un flujo lógico que clasifica, extrae y limpia la información por nosotros. Lo bueno de este enfoque es que, con un par de ajustes, te sirve igual para riesgos que para clasificar tickets de soporte o contratos legales.</p>
<p>Lo que vamos a construir hace cuatro cosas clave:</p>
<ul>
<li><strong>Prioriza</strong>. ¿Esto es un incendio o un aviso rutinario?</li>
<li><strong>Etiqueta</strong>. ¿Es fraude, un fallo técnico o un tema legal?</li>
<li><strong>Detecta datos</strong>. Saca IPs, cuentas, correos... lo &quot;duro&quot;.</li>
<li><strong>Entiende el contexto</strong>. Identifica qué leyes o empresas se mencionan.</li>
</ul>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">La arquitectura del flujo (Keep it simple)</h2>
<p>No hace falta complicarse la vida con modelos gigantes para todo. Aquí combinamos <strong>lógica de negocio (reglas)</strong> con <strong>modelos estadísticos</strong>.</p>
<p>El <strong>flujo</strong> es este:</p>
<p>Documento bruto → Clasificador de Urgencia → Etiquetado de Riesgos → Extractor de Datos Técnicos → NER (Entidades) → <strong>JSON Estructurado</strong>.</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Un caso real para probarlo</h2>
<p>Para que no sea todo teoría, vamos a usar este <strong>aviso de incidencia</strong> (me lo he inventado, pero es muy parecido a lo que te podrías encontrar en un sistema real):</p>
<p><strong>ALERTA DE RIESGO OPERACIONAL - ID-2026-00142</strong> Se ha detectado un fallo crítico en el sistema de procesamiento de transacciones... afecta a tarjetas de crédito. Empezó a las 14:23 UTC y afecta a unos 15.000 clientes. <strong>Datos</strong>: IP 192.168.1.50 | Error: ERR-DB-TIMEOUT | TXNs: TXN-A7B3C9D2, TXN-F4E8A1B6. <strong>Ojo</strong>: Supera el umbral del 0.5% de la MiFID II. Hay que avisar a la CNMV.</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Clasificando la quemazón: criticidad</h2>
<p>Lo primero es saber si tenemos que mandar un mensaje al jefe o si puede esperar a mañana. Para esto, usamos un <strong>sistema de pesos</strong>. Si aparecen palabras como &quot;sanción&quot; o &quot;fraude&quot;, el score sube como la espuma.</p>
<pre><code class="language-python">class CriticalityClassifier:
    def __init__(self):
        # Aquí definimos qué nos quita el sueño
        self.keywords_critico = {'fraude': 10, 'pérdida': 10, 'incumplimiento': 10, 'multa': 10}
        self.keywords_alto = {'riesgo': 7, 'alerta': 6, 'fallo': 5}
        # ... (otros niveles)

    def _calculate_scores(self, text: str):
        text_lower = text.lower()
        # Sumamos puntos según lo que encontremos
        return {
            'critico': sum(w for k, w in self.keywords_critico.items() if k in text_lower),
            'alto': sum(w for k, w in self.keywords_alto.items() if k in text_lower),
            # ...
        }
</code></pre>
<p><strong>Resultado</strong>: en nuestro ejemplo, nos daría un nivel <strong>ALTO</strong> con una confianza del 57%. Suficiente para disparar una alerta automática.</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">¿De qué estamos hablando? (Categorías)</h2>
<p>Un documento puede ser de varias cosas a la vez. Por ejemplo: <strong>tecnológico</strong> (caída de servidor) y <strong>cumplimiento</strong> (incumplimos una norma). He usado patrones de Regex precompilados porque, sinceramente, para palabras clave específicas son mucho más rápidos y baratos que una red neuronal.</p>
<pre><code class="language-python"># Un pequeño mapa de qué buscar para cada riesgo
self.category_keywords = {
    'operacional': ['fallo', 'error', 'caída', 'incidencia técnica'],
    'cumplimiento': ['normativa', 'sanción', 'cnmv', 'mifid'],
    'ciberseguridad': ['ataque', 'malware', 'hackeo', 'brecha']
}
</code></pre>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Extracción de &quot;hilos&quot; técnicos</h2>
<p>Aquí es donde el <strong>NLP brilla ahorrando tiempo</strong>. En lugar de que un analista copie y pegue las IPs o los códigos de error, dejamos que las expresiones regulares hagan el trabajo sucio.</p>
<p>Sacamos a la vez:</p>
<ul>
<li><strong>IPs</strong>: 192.168.1.50</li>
<li><strong>IDs de transacción</strong>: TXN-A7B3C9D2</li>
<li><strong>Emails</strong>: incidencias@banco-ejemplo.com</li>
</ul>
<h2 class="block block-header h--h30-15-400 left  ">NER. ¿Quién es quién?</h2>
<p>Para extraer entidades (organizaciones, leyes, productos), uso <strong>spaCy</strong>. Es la navaja suiza para esto. Le añadimos un diccionario personalizado porque spaCy sabe qué es una &quot;persona&quot;, pero a veces le cuesta entender qué es la &quot;MiFID II&quot; o la &quot;CNMV&quot; si no se lo decimos.</p>
<pre><code class="language-python"># Combinamos spaCy con nuestras propias reglas de dominio
self.custom_entities = {
    'normativas': ['mifid ii', 'gdpr', 'pci dss'],
    'organismos': ['cnmv', 'bce', 'banco de españa']
}
</code></pre>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">El resultado final: JSON</h2>
<p>Al final, el pipeline nos escupe algo así de limpio:</p>
<pre><code class="language-json">{
  &quot;criticality&quot;: &quot;alto&quot;,
  &quot;categories&quot;: [&quot;operacional&quot;, &quot;cumplimiento&quot;, &quot;tecnológico&quot;],
  &quot;indicators&quot;: {
    &quot;ipv4&quot;: [&quot;192.168.1.50&quot;],
    &quot;error_code&quot;: [&quot;ERR-DB-TIMEOUT&quot;]
  },
  &quot;entities&quot;: {
    &quot;normativas&quot;: [&quot;MiFID II&quot;],
    &quot;organismos&quot;: [&quot;CNMV&quot;]
  }
}
</code></pre>
<h2 class="block block-header h--h30-15-400 left  ">¿Esto escala?</h2>
<p>Si lo lanzas de forma secuencial, te puede dar el sueño. Pero usando ThreadPoolExecutor en Python, he conseguido procesar unos <strong>1.500 documentos por minuto</strong>. Para la mayoría de empresas, eso sobra para procesar todo el flujo de entrada en tiempo real.</p>
<ul>
<li><strong>Métricas reales:</strong></li>
<li><strong>Latencia</strong>: 38ms (vuela).</li>
<li><strong>Precisión</strong>: ~95% (el 5% restante suele ser lenguaje muy ambiguo que requiere ojo humano).</li>
</ul>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Conclusión</h2>
<p>Automatizar esto no es solo por ahorrar costes, es por <strong>reacción</strong>. Si un sistema detecta un incumplimiento normativo en 40 milisegundos, puedes mitigar el riesgo antes de que se convierta en una multa millonaria.</p>
<p>¿Qué opináis? ¿Meteríais modelos más pesados tipo Transformer (BERT/LLMs) o creéis que para clasificación de riesgos este enfoque híbrido es más estable? Os leo en comentarios.</p>

            ]]>
        </content:encoded>
    </item><item>
        <dc:creator>
            <![CDATA[ Sergio Recio ]]>
        </dc:creator>
        <title>Podcast - Desarrollo de software con IA: SDD y la gobernanza del conocimiento corporativo</title>
        <link>https://www.paradigmadigital.com/dev/podcast-desarrollo-software-ia-sdd-y-gobernanza-conocimiento-corporativo/</link>
        <pubDate>Tue, 14 Apr 2026 06:00:00 GMT</pubDate>
        <guid isPermaLink="true">https://www.paradigmadigital.com/dev/podcast-desarrollo-software-ia-sdd-y-gobernanza-conocimiento-corporativo/</guid>
        <description>Cómo integrar IA en arquitecturas complejas con RAG y MCP: pasa del prompt al conocimiento corporativo para escalar el desarrollo de software.
</description>
        <content:encoded>
            <![CDATA[
                <p>La generación de código con inteligencia artificial ha dejado de ser una curiosidad para convertirse en una herramienta cotidiana dentro del desarrollo de software.</p>
<p><strong>Hoy es difícil encontrar un equipo técnico que no utilice asistentes como GitHub Copilot, Cursor o modelos conversacionales como Claude para acelerar tareas, resolver dudas o construir fragmentos de código con mayor rapidez</strong>.</p>
<iframe id="" class="block block-iframe -like-text-width" src="https://open.spotify.com/embed/episode/1FYEhKHqD7Z4IkXXFsl3ie?utm_source=generator&amp;theme=0" style="height:240px;  width:100%;"></iframe>
<p>La promesa inicial se ha cumplido en buena medida: <strong>escribir código es hoy más rápido que hace apenas dos años</strong>. Sin embargo, cuando el desarrollo sale del terreno individual y entra en el contexto de una gran organización, aparecen límites muy claros.</p>
<p>Porque una cosa es generar código que funciona y otra muy distinta generar código que encaja dentro de una arquitectura empresarial compleja, respeta estándares internos y sigue reglas técnicas que muchas veces no están escritas en un prompt.</p>
<p>Ese es precisamente uno de los grandes debates actuales en torno al llamado <em>vibe coding</em>: la idea de interactuar con la IA de forma casi conversacional, describiendo lo que se necesita y dejando que el modelo complete el resto.</p>
<p><strong>En proyectos pequeños o prototipos rápidos puede resultar extremadamente eficaz</strong>, pero <strong>en sistemas corporativos con años de evolución</strong>, múltiples equipos y dependencias cruzadas, <strong>el contexto local ya no basta</strong>.</p>
<p>El problema de fondo es que <strong>estos asistentes trabajan, en la mayoría de los casos, con una visión parcial del sistema</strong>. Ven el archivo abierto, algunas referencias cercanas y las instrucciones inmediatas del desarrollador/a, pero <strong>no tienen acceso real a la fotografía completa de la organización</strong>: ni conocen las librerías aprobadas, ni distinguen qué patrones arquitectónicos son obligatorios, ni saben qué decisiones previas condicionan una implementación concreta.</p>
<p>Por eso, <strong>uno de los riesgos más frecuentes es que la IA produzca código técnicamente correcto, pero incompatible con el ecosistema real de la compañía</strong>.</p>
<p>Puede introducir dependencias no autorizadas, repetir soluciones ya resueltas internamente o romper convenciones críticas de diseño. <strong>A medida que crece el tamaño del sistema, también crece la entropía del software generado si no existe una guía estructurada</strong>.</p>
<p>En ese punto, la conversación deja de ser puramente sobre productividad y pasa a ser una cuestión de gobernanza tecnológica.</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Del prompt aislado al conocimiento corporativo estructurado</h2>
<p>La respuesta que muchas organizaciones están empezando a explorar consiste en <strong>dejar de tratar la IA como un simple asistente conversacional y empezar a integrarla dentro de una arquitectura de conocimiento empresarial</strong>.</p>
<p>Aquí es donde aparecen conceptos como <strong>RAG, MCP y SDD</strong>, tres piezas que juntas cambian completamente el enfoque.</p>
<p>El primero, <strong>Retrieval-Augmented Generation o RAG, permite que el modelo no dependa únicamente de su entrenamiento general</strong>, sino que consulte conocimiento interno antes de responder. Pero no basta con almacenar código sin más. La diferencia real aparece cuando ese conocimiento se organiza con jerarquía.</p>
<p><strong>No todo el código tiene el mismo valor</strong>. Hay documentación, librerías comunes, aplicaciones históricas y, sobre todo, proyectos de referencia que representan cómo debe hacerse realmente una implementación dentro de la organización.</p>
<p>La IA necesita distinguir entre cualquier fragmento heredado y aquello que verdaderamente define el estándar interno.</p>
<p><strong>Ese conocimiento estructurado es lo que permite que una respuesta deje de ser genérica y pase a parecerse al modo real de construir software dentro de una compañía</strong>.</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">MCP: el estándar que conecta la IA con el ecosistema real de desarrollo</h2>
<p>La segunda pieza es <strong>MCP</strong>, un protocolo que está ganando protagonismo porque <strong>resuelve uno de los grandes problemas actuales: cómo conectar modelos de IA con herramientas corporativas sin crear integraciones frágiles</strong>.</p>
<p>En lugar de enlazar cada modelo con cada sistema interno de forma individual, MCP actúa como una capa estándar de conexión. Eso <strong>permite que distintos modelos puedan consultar las mismas fuentes sin depender de integraciones duplicadas</strong>.</p>
<p>En la práctica, esto significa que un modelo puede consultar información funcional de Jira, recuperar ejemplos del repositorio interno, acceder a convenciones por lenguaje o framework y mantener sesiones de trabajo consistentes sin que importe demasiado si detrás está Claude, GPT o cualquier otro modelo.</p>
<p><strong>La clave no es solo conectar herramientas, sino desacoplar el conocimiento del modelo concreto que se esté utilizando</strong>.</p>
<p>Eso aporta algo especialmente valioso en entornos corporativos: flexibilidad tecnológica sin rehacer toda la arquitectura cada vez que cambia el modelo dominante.</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">El gran cambio: dejar de pedir código y empezar pidiendo intención</h2>
<p>Donde realmente cambia el paradigma es en el flujo de trabajo. En el enfoque tradicional de asistentes, el/la desarrollador/a abre el IDE, redacta una instrucción y espera código.</p>
<p>Todo ocurre dentro de una conversación más o menos sofisticada. Pero cuando se trabaja con especificaciones guiadas, el proceso empieza antes del código.</p>
<p><strong>Lo primero no es generar una implementación, sino una propuesta de cambio</strong>. A partir de una necesidad funcional o de una historia de usuario, el sistema construye una cadena de artefactos: especificaciones, diseño técnico, escenarios concretos y tareas de implementación. La IA deja de improvisar y empieza a trabajar sobre una intención formalizada.</p>
<p>Esto tiene una consecuencia importante: <strong>el contexto deja de depender de una conversación efímera y pasa a convertirse en un activo persistente</strong>.</p>
<p>Uno de los grandes límites del llamado <em>context engineering</em> es precisamente su fragilidad. Cada desarrollador/a construye manualmente el contexto que entrega al modelo, decide qué archivos incluir, qué ejemplos mostrar y qué instrucciones reforzar. <strong>Ese contexto desaparece cuando termina la sesión y no deja rastro verificable</strong>.</p>
<p>Además, cuando el volumen crece demasiado, aparece un fenómeno cada vez más conocido: <strong>la saturación de contexto</strong>. El modelo empieza a priorizar unas señales sobre otras, atiende menos a ciertas restricciones y pequeños ajustes pueden desalinear requisitos previamente bien resueltos. La IA no se vuelve inconsistente por azar: simplemente compite por atención dentro de una ventana finita.</p>
<p><strong>Por eso el enfoque basado en especificaciones gana fuerza</strong>. Porque las <em>specs</em> se convierten en el verdadero contexto: estructurado, persistente, versionado y auditable.</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Cuando el código no es la única fuente de verdad</h2>
<p>En este modelo, <strong>el código ya no es el único artefacto importante</strong>. Cada decisión queda acompañada de su intención original, su diseño técnico y su validación funcional. Si algo cambia, no se corrige directamente el código: se actualiza la especificación y la implementación evoluciona desde ahí.</p>
<p>Esto transforma también el proceso de revisión. En un <em>pull request</em>, el revisor ya no ve únicamente líneas nuevas o modificadas. Ve también por qué se hizo ese cambio, qué problema resuelve y qué criterios guiaron la implementación.</p>
<p><strong>El contexto viaja junto al código</strong>, y eso mejora radicalmente tanto la calidad del review como el onboarding de nuevos perfiles en el proyecto.</p>
<h2 class="block block-header h--h30-15-400 left  ">¿Funciona de verdad en sistemas complejos?</h2>
<p><strong>La pregunta crítica es si todo esto resiste cuando el entorno deja de ser controlado y aparece la complejidad real</strong>: monolitos heredados, migraciones cloud, plataformas híbridas, integraciones con Kubernetes, Terraform o Apache Kafka. Y <strong>precisamente ahí es donde más sentido cobra</strong>.</p>
<p>En un sistema heredado de cientos de clases, el contexto manual simplemente deja de ser viable. No cabe en la ventana del modelo ni es razonable esperar que un/a desarrollador/a decida manualmente qué partes son relevantes en cada momento.</p>
<p><strong>Una de las aplicaciones más interesantes de este enfoque es la modernización de software legacy</strong>. La IA puede analizar módulos antiguos y generar especificaciones formales de comportamiento. No captura todo desde el primer momento, pero sí una parte muy significativa que luego puede refinarse iterativamente.</p>
<p>Esas especificaciones pasan a ser el puente entre el sistema heredado y la nueva arquitectura. Lo importante es que el conocimiento extraído persiste. <strong>Un prompt desaparece, una especificación permanece</strong>.</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">El “100% automático” sigue sin ser realista</h2>
<p>A pesar del avance, <strong>el objetivo NO es que la IA entregue software listo para producción sin intervención humana</strong>. Actualmente, <strong>incluso en los mejores escenarios, el resultado suele situarse en torno al 80% o 90% del trabajo útil</strong>. El resto sigue requiriendo criterio técnico, validación y comprensión profunda del sistema.</p>
<p>Existe además un riesgo menos visible: el <em>knowledge lag</em>. Si todo lo hace la IA y el/la desarrollador/a deja de recorrer mentalmente el código, termina perdiendo conocimiento real sobre el sistema que mantiene.</p>
<p><strong>Ese último tramo que todavía exige intervención humana no es una limitación accidental: es también una garantía de control</strong>.</p>
<h2 class="block block-header h--h30-15-400 left  add-last-dot">Lo que probablemente veremos en los próximos años</h2>
<p>El debate ahora no es si habrá agentes autónomos o no, sino dónde encajan mejor. <strong>En tareas repetitivas, scaffolding masivo o migraciones mecánicas, la orquestación pura de agentes tiene mucho sentido</strong>.</p>
<p>Pero cuando entra en juego lógica de negocio compleja, auditoría, cumplimiento normativo o arquitectura crítica, el enfoque cambia. Porque <strong>en una gran empresa no basta con que el código funcione, también debe poder explicarse, trazarse, revisarse y sostenerse en el tiempo</strong>.</p>
<p>Y ahí es donde modelos basados en especificaciones, conocimiento corporativo y control arquitectónico parecen estar marcando ya el camino de 2026.</p>

            ]]>
        </content:encoded>
    </item>
</channel>
</rss>
