<?xml version="1.0" encoding="UTF-8"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es"><title>Chemaclass - xp</title><subtitle>Tech Lead compartiendo ideas prácticas sobre artesanía del software, TDD, liderazgo, Bitcoin e IA. Artículos, resúmenes de libros y charlas.</subtitle><link rel="self" type="application/atom+xml" href="https://chemaclass.com/es/tags/xp/atom.xml"/><link rel="alternate" type="text/html" href="https://chemaclass.com"/><generator uri="https://www.getzola.org/">Zola</generator><updated>2024-05-30T00:00:00+00:00</updated><id>https://chemaclass.com/es/tags/xp/atom.xml</id><entry xml:lang="es"><title>¿Qué Mata la Agilidad?</title><subtitle>¿Por qué Agile si ya haces Scrum, Kanban, SAFe o Waterfall?</subtitle><category term="agile" scheme="https://chemaclass.com/tags/agile/" label="Agile"/><category term="xp" scheme="https://chemaclass.com/tags/xp/" label="Xp"/><category term="leadership" scheme="https://chemaclass.com/tags/leadership/" label="Leadership"/><category term="team-management" scheme="https://chemaclass.com/tags/team-management/" label="Team Management"/><category term="communication" scheme="https://chemaclass.com/tags/communication/" label="Communication"/><published>2024-05-30T00:00:00+00:00</published><updated>2024-05-30T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/what-kills-agility/"/><id>https://chemaclass.com/es/blog/what-kills-agility/</id><summary type="html">¿Por qué Agile, si ya haces Scrum, Kanban, SAFe o Waterfall? Cómo gestionamos una organización define su calidad. Una excelente gestión es crucial para evitar la trampa del Waterfall si buscamos construir un entorno Agile. Pero ¿por qué querríamos eso? ¿Qué hay de malo en la forma en que ya trabajamos?</summary><content type="html">&lt;p>Docenas de documentos y hojas de cálculo, reuniones tras reuniones, y sin embargo sin mucho impacto, resultan en desalineaciones del equipo, descubiertas demasiado tarde.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;p>Cómo gestionamos una organización define su calidad. Una excelente gestión es crucial para evitar la trampa del Waterfall si buscamos construir un entorno Agile. Pero ¿por qué querríamos eso? ¿Qué hay de malo en la forma en que ya trabajamos?&lt;/p>
&lt;p>Si ya estás feliz con cómo tú y tu equipo trabajan juntos, está bien. Sin embargo, ¿qué hay de reevaluar cómo trabajas para buscar mejoras potenciales?&lt;/p>
&lt;p>Me refiero a evaluar tu sistema y cómo tú y las personas a tu alrededor actúan dentro de él. Lo que funcionó hace meses o años podría diferir de lo que podríamos descubrir hoy, como parte de la mejora continua.&lt;/p>
&lt;p>No me gusta la política en el lugar de trabajo, donde cada equipo va a lo suyo en lugar de tener una dirección compartida más grande. Esto resulta en trabajo diario lleno de miedo desde arriba, pasado a las personas de abajo, manteniendo un &lt;a href="/es/blog/unhealthy-working-environment">ambiente de trabajo no saludable&lt;/a>. Game of Thrones es genial como serie de ficción, pero no algo con lo que lidiar en el negocio diario.&lt;/p>
&lt;p>Agile nació precisamente como respuesta al desperdicio excesivo generado por la política y la microgestión organizacional.&lt;/p>
&lt;p>Controlar y el “rendimiento lento” necesitaba un enfoque más flexible. Cuando las personas adoptan una mentalidad fija, resisten el cambio, temen al fracaso y priorizan procesos rígidos y jerarquías. Esto entra en conflicto con las ideas centrales de Agile de abrazar el cambio, entrega continua con desarrollo iterativo, planificación flexible y fomentar la colaboración e innovación.&lt;/p>
&lt;p>Una mentalidad fija lleva al miedo a la experimentación y una reticencia a desafiar el statu quo, reduciendo el progreso y el potencial de aprendizaje y crecimiento.&lt;/p>
&lt;hr />
&lt;h2 id="que-mata-la-agilidad">¿Qué mata la agilidad?
&lt;a class="heading-anchor" href="#que-mata-la-agilidad" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>Mentalidad fija&lt;/strong>: Resistencia al cambio, miedo al fracaso y priorizar procesos rígidos sobre aprendizaje y adaptación estrangula la innovación y flexibilidad.&lt;/li>
&lt;li>&lt;strong>Burocracia excesiva&lt;/strong>: Procesos complejos y documentación excesiva ralentizan la toma de decisiones y la capacidad de respuesta.&lt;/li>
&lt;li>&lt;strong>Microgestión&lt;/strong>: Liderazgo demasiado controlador socava la autonomía del equipo.&lt;/li>
&lt;li>&lt;strong>Falta de colaboración&lt;/strong>: Mala comunicación y trabajo en equipo dificultan el progreso.&lt;/li>
&lt;li>&lt;strong>Bucles de retroalimentación inefectivos&lt;/strong>: Impiden ajustes y mejora continua.&lt;/li>
&lt;li>&lt;strong>Miedo a la experimentación&lt;/strong>: Una cultura que castiga el fracaso desalienta la experimentación y el aprendizaje de errores.&lt;/li>
&lt;li>&lt;strong>Procesos inflexibles&lt;/strong>: Adherencia estricta sin adaptarse a las necesidades del proyecto.&lt;/li>
&lt;li>&lt;strong>Objetivos desalineados&lt;/strong>: Prioridades conflictivas reducen la eficiencia.&lt;/li>
&lt;li>&lt;strong>Falta de apoyo del liderazgo&lt;/strong>: Sin respaldo de la alta dirección, las iniciativas Agile pueden tener dificultades para obtener los recursos y el compromiso necesarios.&lt;/li>
&lt;li>&lt;strong>Malas prácticas técnicas&lt;/strong>: Descuidar la excelencia técnica y el buen diseño puede llevar a una base de código frágil que es difícil de adaptar y extender.&lt;/li>
&lt;/ul>
&lt;h3 id="que-puedes-hacer-al-respecto">¿Qué puedes hacer al respecto?
&lt;a class="heading-anchor" href="#que-puedes-hacer-al-respecto" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Aprende los básicos de Extreme Programming (XP) y Lean Software Development.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>XP&lt;/strong>: Enfocado en prácticas de desarrollo de software y excelencia técnica, con prácticas específicas como pair programming y Test-Driven Development (TDD).&lt;/li>
&lt;li>&lt;strong>Lean&lt;/strong>: Toma un enfoque más amplio, enfocándose en eliminar desperdicio, optimizar flujo y mejorar procesos en toda la organización.&lt;/li>
&lt;/ul>
&lt;p>&lt;img src="/images/blog/2024-05-30/footer.webp" alt="blog-cover" />&lt;/p></content></entry><entry xml:lang="es"><title>Pair Programming Efectivo</title><subtitle>Abrazando prácticas de calidad en tu cultura de ingeniería</subtitle><category term="pair-programming" scheme="https://chemaclass.com/tags/pair-programming/" label="Pair Programming"/><category term="xp" scheme="https://chemaclass.com/tags/xp/" label="Xp"/><category term="tdd" scheme="https://chemaclass.com/tags/tdd/" label="Tdd"/><category term="communication" scheme="https://chemaclass.com/tags/communication/" label="Communication"/><category term="clean-code" scheme="https://chemaclass.com/tags/clean-code/" label="Clean Code"/><published>2024-03-28T00:00:00+00:00</published><updated>2024-03-28T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/effective-pair-programming/"/><id>https://chemaclass.com/es/blog/effective-pair-programming/</id><summary type="html">Guía práctica de pair programming que funciona: roles, rotación, cuándo hacerlo, errores comunes y cómo hacer sesiones productivas.</summary><content type="html">&lt;p>¿Qué es el pair programming? Dos personas trabajando juntas en el mismo problema, al mismo tiempo.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;p>No se trata de que una persona muestre sus habilidades frente a otra, ni de que una persona tenga miedo de cometer errores debido al síndrome del impostor.&lt;/p>
&lt;p>Cada persona tendrá un rol:&lt;/p>
&lt;ul>
&lt;li>Navegador: prestará atención al panorama general; ej: arquitectura, relación entre colaboradores, diseño de objetos, etc.&lt;/li>
&lt;li>Conductor: prestará atención a los pequeños detalles; ej: naming, convenciones de código, sintaxis de escritura, diseño de objetos, etc.&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>La pareja podría, y debería, intercambiar roles ocasionalmente; ej: cada X commits pusheados, cada 10 min,… depende de ellos.&lt;/p>
&lt;/blockquote>
&lt;p>El pair programming no debería considerarse una práctica solo para “seniors” hacia juniors, sino independientemente del nivel de experiencia de los miembros del equipo.&lt;/p>
&lt;p>Se trata del &lt;strong>flujo de colaboración&lt;/strong>, la comunicación de calidad, la ausencia de sentirse juzgado y la idea de dar la bienvenida a la vulnerabilidad con tus compañeros, sabiendo que te apoyarán y ayudarán.&lt;/p>
&lt;p>Se trata de desafiarse constantemente mutuamente, buscando la solución más pragmática mientras se mantiene simple. Siempre buscando &lt;strong>retroalimentación rápida&lt;/strong> al hablar entre ustedes, pero también sobre la solución que acordaron implementar y su dirección.&lt;/p>
&lt;p>Se trata del bucle de retroalimentación corto, rápido e inmediato mientras hablas con tu compañero, quien &lt;strong>revisa tu código sobre la marcha&lt;/strong>. Puedes guiar como navegador o ayudar al conductor a validar sus ideas en un panorama más amplio.&lt;/p>
&lt;p>Se trata de la atmósfera constante de &lt;strong>compartir conocimiento&lt;/strong> por defecto, reduciendo bus-factors y áreas de conocimiento aislado al máximo. Aumentando el enfoque al tener dos mentes trabajando en la misma tarea simultáneamente.&lt;/p>
&lt;p>Se trata de &lt;strong>cohesión de equipo&lt;/strong> y afilar el sentimiento de que pertenecemos. Cuando entendemos las fortalezas y debilidades de cada uno, nos daremos cuenta de cuánto podemos ayudarnos a crecer mutuamente.&lt;/p>
&lt;p>&lt;img src="/images/blog/2024-03-28/footer.webp" alt="blog-img" />&lt;/p>
&lt;h2 id="como-puedes-practicar-pair-programming">¿Cómo puedes practicar pair programming?
&lt;a class="heading-anchor" href="#como-puedes-practicar-pair-programming" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>El pair programming puede hacerse de diferentes maneras:&lt;/p>
&lt;ul>
&lt;li>Puedes empezar y terminar una tarea con pairing. Puedes limitarlo a 30, 60, 90 minutos. De cualquier manera, se recomienda tener pausas en el medio - Pomodoro.&lt;/li>
&lt;li>Puedes empezar la tarea juntos y parar cuando uno de tus compañeros se sienta lo suficientemente confiado para continuar solo.&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>Depende del equipo, y de la tarea en contexto, decidir cuándo y cómo aplicar pairing para sacar lo mejor de ello.&lt;/p>
&lt;/blockquote>
&lt;p>Esto no significa que debas trabajar constantemente “sin importar qué” en pareja. No se trata de crear reglas; por el contrario, se trata de abrazar esta práctica hasta el punto de que te sientas confiado para elegir cuándo y cómo usarla para sacar lo mejor de ella.&lt;/p>
&lt;p>El pair programming podría convertirse en una de las mejores herramientas en la caja de herramientas de tu equipo para las interacciones diarias. No porque lo hayas leído en algún lugar, sino por los beneficios que tú y tu equipo encontrarán.&lt;/p>
&lt;h3 id="patrones-comunes">Patrones Comunes
&lt;a class="heading-anchor" href="#patrones-comunes" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;h4 id="diferentes-estrategias-para-pairing-efectivo">Diferentes estrategias para pairing efectivo
&lt;a class="heading-anchor" href="#diferentes-estrategias-para-pairing-efectivo" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h4>
&lt;ul>
&lt;li>&lt;strong>Driver-Navigator&lt;/strong>: Una persona está conduciendo el código (con el teclado), enfocándose en el aspecto de detalle de la tarea en sí. La otra es navegadora (sin teclado), teniendo una imagen más abstracta de la tarea en mente.&lt;/li>
&lt;li>&lt;strong>Ping-Pong&lt;/strong>: Cambio frecuente de roles driver-navigator en pequeñas interacciones, ej: cada N minutos, cada N commits, etc.&lt;/li>
&lt;li>&lt;strong>Backseat driver&lt;/strong>: El navegador se involucra activamente con el conductor.&lt;/li>
&lt;li>&lt;strong>Tourist guide&lt;/strong>: El navegador aprende pasivamente con el conductor.&lt;/li>
&lt;/ul>
&lt;p>&lt;img src="/images/blog/2024-03-28/good-pair-prog.jpg" alt="patrones de pair programming efectivo" />&lt;/p>
&lt;h4 id="anti-patrones-mientras-haces-pairing">Anti-patrones mientras haces pairing
&lt;a class="heading-anchor" href="#anti-patrones-mientras-haces-pairing" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h4>
&lt;ul>
&lt;li>&lt;strong>The silent partner&lt;/strong>: El navegador no participa, está en silencio.&lt;/li>
&lt;li>&lt;strong>The solo act&lt;/strong>: El conductor ignora todas las aportaciones del navegador.&lt;/li>
&lt;li>&lt;strong>Distracted pair&lt;/strong>: La pareja no se enfoca en el problema a resolver.&lt;/li>
&lt;li>&lt;strong>The Dictator&lt;/strong>: Una persona está diciendo qué hacer, ignorando las aportaciones del otro.&lt;/li>
&lt;li>&lt;strong>Philosophical pair&lt;/strong>: La pareja está haciendo &lt;a href="/es/blog/bikeshedding/">bikeshedding&lt;/a> en temas irrelevantes.&lt;/li>
&lt;li>&lt;strong>The code war&lt;/strong>: La pareja no llega a un acuerdo y comienza una guerra innecesaria, que desperdicia tiempo y esfuerzo.&lt;/li>
&lt;/ul>
&lt;p>&lt;img src="/images/blog/2024-03-28/anti-pair-prog.jpg" alt="anti-patrones de pair programming" />&lt;/p>
&lt;p>&lt;strong>¿Quieres más?&lt;/strong> Mira esto: &lt;a rel="external" href="https://www.figma.com/file/FCmGwRPIO8cLowDRraJhgr/Learning-TDD">Learning Through KATAS&lt;/a>&lt;/p>
&lt;p>&lt;img src="/images/blog/2024-03-28/learning-through-katas.jpg" alt="aprendiendo a través de katas" />&lt;/p>
&lt;h2 id="la-conclusion">La conclusión
&lt;a class="heading-anchor" href="#la-conclusion" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>El pairing no es una regla que imponer, es una herramienta a la que recurrir. Úsalo cuando la tarea es compleja, el
conocimiento está aislado o lo que está en juego es importante. Sáltalo cuando el trabajo es trivial. El objetivo nunca
es “hacer siempre pairing”, es &lt;strong>mejor software y un equipo más fuerte&lt;/strong>. Elige una tarea real esta semana, hazla en
pareja e intercambia roles a menudo. Los beneficios aparecen más rápido de lo que esperas.&lt;/p>
&lt;aside class="kudos">
&lt;span class="kudos__icon" aria-hidden="true">🧠&lt;/span>
&lt;div class="kudos__content">
&lt;p>Gracias a mi amigo &lt;a rel="external" href="https://x.com/evrtrabajo">Manu&lt;/a>, quien me ayudó con este post. Incluso compartimos un &lt;a rel="external" href="https://phpconference.com/agile-culture/practical-tdd-workshop/">taller&lt;/a> sobre este tema.&lt;/p>
&lt;/div>
&lt;/aside></content></entry><entry xml:lang="es"><title>Despliegues los Viernes</title><subtitle>¿Por qué "no deberíamos" desplegar a producción los viernes?</subtitle><category term="agile" scheme="https://chemaclass.com/tags/agile/" label="Agile"/><category term="xp" scheme="https://chemaclass.com/tags/xp/" label="Xp"/><category term="leadership" scheme="https://chemaclass.com/tags/leadership/" label="Leadership"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><published>2024-02-25T00:00:00+00:00</published><updated>2024-02-25T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/deployments-on-fridays/"/><id>https://chemaclass.com/es/blog/deployments-on-fridays/</id><summary type="html">He escuchado múltiples veces, de varias personas, la idea de pánico hacia desplegar los viernes. ¿Qué tan buena es esa idea de prohibir el día antes del fin de semana entregar nuevo valor a nuestros clientes?</summary><content type="html">&lt;p>He escuchado múltiples veces, de varias personas, la idea de pánico hacia desplegar los viernes. ¿Qué tan buena es esa idea de prohibir el día antes del fin de semana entregar nuevo valor a nuestros clientes?&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;p>El argumento principal a favor de NO desplegar el viernes se basa en la idea de que “deberíamos ser paranoicos” con nuestro software y que podría fallar cuando lo tocamos. Entonces, “deberíamos asumir” lo peor cada vez que desplegamos una nueva versión de nuestro sistema.&lt;/p>
&lt;p>Sin embargo, el factor crítico aquí es ¿Por qué? ¿Por qué no deberíamos desplegar los viernes? ¿Está bien tener miedo de nuestro propio sistema de software, que vivimos en un pánico constante de romperlo el día después de haber hecho un despliegue? ¿Cuánto impacto deberían tener nuestras releases? ¿Cómo podemos asegurar que el despliegue no romperá el sistema en vivo?&lt;/p>
&lt;p>Tus pipelines de Integración Continua/Entrega Continua, pruebas end-to-end y otros tipos de tests implementados, políticas de escalado automático, un sandbox de staging previo para realizar incluso pruebas manuales si es necesario, etc., determinarán la seguridad y confianza para cualquiera de tus releases. Sin embargo, la calidad de estos temas es un factor decisivo para tener suficiente confianza sobre cómo, cuándo y por qué tendría sentido hacer release a producción.&lt;/p>
&lt;p>El objetivo es construir un sistema donde los despliegues a producción sean tan frecuentes, suaves y fáciles como sea posible; en cualquier momento, cualquier día. Tener miedo de tu sistema no debería ser el objetivo. Por el contrario, debería ser algo hacia lo que trabajar para solucionarlo.&lt;/p>
&lt;p>Las dinámicas del equipo también son un factor esencial aquí. Si establecemos miedo a los despliegues los viernes, y miedo a nuestro sistema, eso terminará en falta de responsabilidad por defecto. Esto me recuerda a &lt;a href="/es/readings/the-five-dysfunctions-of-a-team/">The Five Dysfunctions of a Team&lt;/a>.&lt;/p>
&lt;p>&lt;img src="/images/blog/2024-02-25/middle.jpg" alt="desplegando los viernes" />&lt;/p>
&lt;p>Si despliegas cambios pequeños y frecuentes tan pronto como pueden garantizar 100% de calidad y éxito de valor, ¿por qué retrasar tal mejora incremental a tu sistema?&lt;/p>
&lt;p>Volviendo a “¿Por qué no deberíamos desplegar los viernes?” La única razón que se me ocurre es tener miedo de que tengamos que trabajar el sábado en la cosa rota que entregamos el viernes. Sin embargo, me pregunto si había alguna opción disponible, para que pudiéramos haber identificado tal cosa rota durante el propio viernes laborable.&lt;/p>
&lt;p>Monitorear tu sistema en vivo es crucial para garantizar la salud después de cada despliegue. Esto es esencial para asegurar que todo funciona bien y sin problemas. Para construir un sistema resistente, esto debería activar alarmas para notificar a alguien responsable de abordar el problema, deshabilitar o revertir la última característica “rota”… hay muchas técnicas para crear conciencia y actuar sobre ellas.&lt;/p>
&lt;p>En caso de duda, podrías usar feature flags para deshabilitar la característica que desplegarás. Aún así, prefieres no habilitarla durante el fin de semana mientras mantienes la opción de agregar valor y desplegar en cualquier momento siempre abierta.&lt;/p>
&lt;p>Creo que las &lt;strong>releases frecuentes&lt;/strong> y &lt;strong>pequeñas&lt;/strong> a producción &lt;strong>son clave&lt;/strong>; en cualquier momento, cualquier fecha, mientras tenga sentido, y haya un camino claro para traer valor pronto al cliente para obtener retroalimentación lo antes posible.&lt;/p>
&lt;blockquote>
&lt;p>Entrega valor de calidad en pequeños incrementos, tan frecuentemente como sea posible.&lt;/p>
&lt;/blockquote>
&lt;p>Poder desplegar los viernes (si es necesario o deseado) impacta la confianza del equipo. De manera similar, prohibir los despliegues los viernes impacta la autoestima del equipo también.&lt;/p>
&lt;p>&lt;img src="/images/blog/2024-02-25/footer.webp" alt="releases frecuentes y pequeñas" />&lt;/p></content></entry><entry xml:lang="es"><title>¿Cómo Consigues que Todos se Sumen?</title><subtitle>¿Cómo tratas con personas reacias al cambio?</subtitle><category term="leadership" scheme="https://chemaclass.com/tags/leadership/" label="Leadership"/><category term="communication" scheme="https://chemaclass.com/tags/communication/" label="Communication"/><category term="team-management" scheme="https://chemaclass.com/tags/team-management/" label="Team Management"/><category term="mentoring" scheme="https://chemaclass.com/tags/mentoring/" label="Mentoring"/><category term="xp" scheme="https://chemaclass.com/tags/xp/" label="Xp"/><published>2023-08-02T00:00:00+00:00</published><updated>2023-08-02T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/how-do-you-get-everyone-on-board/"/><id>https://chemaclass.com/es/blog/how-do-you-get-everyone-on-board/</id><summary type="html">Fui invitado al WeAreDevelopers World Congress para dar una charla técnica sobre mi experiencia con Extreme Programming y los profundos beneficios de abrazar el cambio en tu trabajo y vida.</summary><content type="html">&lt;p>Fui invitado al WeAreDevelopers World Congress para dar una charla técnica sobre mi experiencia con XP y los profundos beneficios de abrazar el cambio en tu trabajo y vida.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;p>Con más de 12k asistentes, 300 speakers y ~10 tracks en paralelo, fui invitado a dar no una sino dos charlas. Una es sobre mi experiencia con Extreme Programming y los profundos beneficios de abrazar el cambio en tu trabajo y vida.&lt;/p>
&lt;p>Disfruté especialmente la participación de la audiencia y las opiniones que me dieron después de cada charla. En particular, una pregunta que había enfrentado muchas veces durante mi carrera: “&lt;strong>¿Cómo tratas con personas reacias al cambio?&lt;/strong>”&lt;/p>
&lt;hr />
&lt;p>Este es uno de los temas más complejos que afecta a cualquier equipo, independientemente de su profesión. Pero, especialmente en nuestra industria del software en constante cambio, si eres reacio a abrazar el cambio, harás más daño que bien a tu equipo, carrera y a ti mismo.&lt;/p>
&lt;p>Como se indica en &lt;a href="/es/readings/peopleware/">Peopleware&lt;/a>, “&lt;em>nuestra profesión del software es menos sobre computadoras y más sobre humanos y sus interacciones&lt;/em>”. Este es usualmente el problema raíz para las personas; es un problema humano primero.&lt;/p>
&lt;p>Para convertirte en verdaderamente agile, debes tener una buena base de &lt;strong>confianza&lt;/strong> entre tus compañeros. Sin confianza, &lt;a href="/es/readings/the-five-dysfunctions-of-a-team/">no hay equipo&lt;/a>, y la responsabilidad principal de un &lt;a href="/es/blog/great-leadership/">buen líder&lt;/a> es ayudar a crear un ambiente de confianza sin miedo a conflictos saludables. Todos sienten que pueden hablar y expresarse libremente en un ambiente seguro.&lt;/p>
&lt;p>Un &lt;strong>ambiente seguro&lt;/strong> significa que no necesitas llevar una armadura todo el día para protegerte de otros, así que tendrás más energía para impulsar la excelencia en tu lugar de trabajo.&lt;/p>
&lt;p>Pero aún así, a pesar de tu esfuerzo por crear un ambiente de confianza y seguro, podrías encontrar personas reacias al cambio. Para esas, podrías necesitar probar diferentes enfoques. ¿Cómo puedes ayudar a crear confianza entre todos?&lt;/p>
&lt;blockquote>
&lt;p>No tengas miedo al fracaso; en cambio, piensa que todo lo que haces es un experimento del que aprenderás algo. Y cualquier cosa que te acerque a un mejor estado es mejor que nada.&lt;/p>
&lt;/blockquote>
&lt;p>La clave aquí es encontrar una manera de conectar con las personas entendiendo cómo entienden su potencial para que puedas empoderarlas y ayudarlas a crecer.&lt;/p>
&lt;p>&lt;img src="/images/blog/2023-08-02/middle.jpg" alt="middle" />&lt;/p>
&lt;h3 id="concede-tiempo-para-leer">Concede tiempo para leer
&lt;a class="heading-anchor" href="#concede-tiempo-para-leer" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Las reuniones 1:1 son ideales para establecer conexiones personales con tus compañeros. Sin embargo, podrías sentir que la situación requiere un empujón adicional, especialmente si tienes a alguien a quien no le gusta hablar de sí mismo, y es difícil saber qué piensan sobre lo que está pasando.&lt;/p>
&lt;p>Aquí hay una idea que podrías probar:&lt;/p>
&lt;ul>
&lt;li>Dales un libro que contenga ideas o conocimiento que podría beneficiar a todos.&lt;/li>
&lt;li>Permite leer este libro durante el tiempo de trabajo, ej: los viernes después del almuerzo. Esta es una inversión de la empresa para el desarrollo de tu equipo.&lt;/li>
&lt;li>El libro debería leerse en 3-4 horas, o un par de viernes, dependiendo del número de páginas.&lt;/li>
&lt;li>No esperes hasta que el libro esté terminado para hablar sobre él. Sigue el progreso.&lt;/li>
&lt;li>Tendrás grandes temas para discutir durante tu próximo 1:1.&lt;/li>
&lt;/ul>
&lt;h3 id="podrias-usar-cualquier-libro-para-este-ejercicio">Podrías usar cualquier libro para este ejercicio
&lt;a class="heading-anchor" href="#podrias-usar-cualquier-libro-para-este-ejercicio" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Cualquier libro estaría bien. Aún así, si estás buscando grandes ejemplos, estos son mis tres favoritos para empezar a impulsar una conversación:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>&lt;a href="/es/readings/who-moved-my-cheese/">Who moved my cheese?&lt;/a>&lt;/strong> es una metáfora de las diferentes actitudes que las personas adoptan como parte de su identidad en la vida cuando tienen que confrontar cualquier cambio.&lt;/li>
&lt;li>&lt;strong>&lt;a href="/es/readings/extreme-programming-explained/">Extreme Programming Explained&lt;/a>&lt;/strong> contiene una compilación de valores, principios y prácticas altamente relacionados con el toque humano en nuestra industria del software. Enfocándose en el aspecto del equipo, colaboración con tus compañeros y creando un sentido de maestría y propósito en nuestro oficio.&lt;/li>
&lt;li>&lt;strong>&lt;a href="/es/readings/start-with-why/">Start with Why&lt;/a>&lt;/strong> aborda la importancia de empezar con “¿Por qué?” para definir un propósito para todo lo que hacemos.&lt;/li>
&lt;/ul>
&lt;p>Experimenta con cualquier libro, marco de tiempo, persona o grupo para crear un entendimiento compartido de los valores y motivaciones fundamentales del equipo. El objetivo es participar en el intercambio activo de conocimiento mientras cultivas un equipo que siente que pertenece, fomentando la pasión en el trabajo. Esto ayudará a crear confianza, y puedes empezar a construir sobre ella.&lt;/p>
&lt;blockquote>
&lt;p>Si estás buscando libros para ayudar a escalar tus habilidades de liderazgo, aquí tienes: “&lt;a href="/es/blog/great-leadership">Gran Liderazgo&lt;/a>”.&lt;/p>
&lt;/blockquote>
&lt;hr />
&lt;p>No puedes forzar a las personas a cambiar. Por el contrario, cuanto más intentes forzarlo, más difícil te lo pondrán. En cambio, enfócate en entenderlas reconociendo lo que sienten y pensando sobre lo que hacen para crear un terreno común de &lt;a href="/es/blog/understanding-people">entendimiento mutuo&lt;/a>.&lt;/p>
&lt;p>&lt;img src="/images/blog/2023-08-02/footer.jpg" alt="footer" />&lt;/p>
&lt;blockquote>
&lt;p>Fotos mías en WeAreDevelopers World Congress, Berlín 2023.&lt;/p>
&lt;/blockquote></content></entry><entry xml:lang="es"><title>Entrevista sobre XP y Agile</title><subtitle>Agile es sobre CÓMO haces ciertas cosas</subtitle><category term="agile" scheme="https://chemaclass.com/tags/agile/" label="Agile"/><category term="xp" scheme="https://chemaclass.com/tags/xp/" label="Xp"/><category term="tdd" scheme="https://chemaclass.com/tags/tdd/" label="Tdd"/><category term="communication" scheme="https://chemaclass.com/tags/communication/" label="Communication"/><published>2023-01-09T00:00:00+00:00</published><updated>2023-01-09T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/interview-about-xp-and-agile/"/><id>https://chemaclass.com/es/blog/interview-about-xp-and-agile/</id><summary type="html">Mi entrevista con devm.io sobre Agile y Extreme Programming. Agile es más sobre CÓMO haces ciertas cosas, en lugar de QUÉ cosas haces.</summary><content type="html">&lt;p>Mi entrevista con &lt;strong>devm.io&lt;/strong> sobre Agile y Extreme Programming.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;hr />
&lt;p>&lt;strong>devm.io: Hablamos con Chema, un desarrollador de software y experto en Extreme Programming, sobre su tema favorito y su próximo evento en vivo &lt;a rel="external" href="https://devm.io/update-your-team-to-be-more-extreme/">Update Your Team To Be More Extreme&lt;/a>.&lt;/strong>&lt;/p>
&lt;h2 id="podrias-contarnos-un-poco-sobre-ti-quien-eres-y-que-haces">¿Podrías contarnos un poco sobre ti, quién eres y qué haces?
&lt;a class="heading-anchor" href="#podrias-contarnos-un-poco-sobre-ti-quien-eres-y-que-haces" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>Chema: Mi nombre es Jose Maria Valera Reales, pero todos me llaman Chema. Soy originalmente de España pero vivo en Berlín desde 2015. He estado trabajando como desarrollador de software desde 2013. En los últimos años, me he enfocado en alcanzar la excelencia y descubrir cómo ayudar a mis compañeros y, con ellos, a toda la comunidad de software a mejorar en nuestra profesión.&lt;/p>
&lt;p>Actualmente soy Tech Lead en &lt;a rel="external" href="https://teufel.de/">Lautsprecher Teufel GmbH&lt;/a>, donde trabajo con el equipo del webshop de e-commerce. También disfruto del &lt;a rel="external" href="https://github.com/Chemaclass">software de código abierto&lt;/a>, así que me gusta crear pull requests para otros repositorios, y también me encanta cuando recibo pull requests de otros.&lt;/p>
&lt;h2 id="como-describirias-extreme-programming-que-lo-hace-tan-extremo">¿Cómo describirías Extreme Programming? ¿Qué lo hace tan “extremo”?
&lt;a class="heading-anchor" href="#como-describirias-extreme-programming-que-lo-hace-tan-extremo" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>Extreme Programming es el enfoque más directo y pragmático para abrazar Agile en tu equipo de software. Incorpora soluciones basadas en valores, principios y prácticas. No tienes que usar o hacer todo, sino lo que se ajuste a ti y a tu equipo en tu contexto. Sin embargo, estas son soluciones generales útiles que funcionan mejor cuando se combinan.&lt;/p>
&lt;p>Desde mi experiencia, la palabra “extremo” puede ser engañosa, pero la veo como una oportunidad para enfatizar la dificultad de los fundamentos detrás de ella. El punto crítico es darse cuenta de que nuestro “sentido común” no es tan “común” como tendemos a pensar, ni las mejores prácticas para el trabajo en equipo efectivo. Por lo tanto, esto se trata de llevarnos a la efectividad extrema, colaboración y satisfacción mientras trabajamos con otros.&lt;/p>
&lt;h2 id="organizaras-un-evento-en-vivo-en-devm-io-sobre-el-tema-el-19-de-enero-podrias-darnos-un-adelanto-de-lo-que-tu-audiencia-puede-esperar">Organizarás un evento en vivo en devm.io sobre el tema el 19 de enero. ¿Podrías darnos un adelanto de lo que tu audiencia puede esperar?
&lt;a class="heading-anchor" href="#organizaras-un-evento-en-vivo-en-devm-io-sobre-el-tema-el-19-de-enero-podrias-darnos-un-adelanto-de-lo-que-tu-audiencia-puede-esperar" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>Exploraremos cómo funciona un equipo de software hoy en día, los problemas comunes que encontramos y qué soluciones podríamos aplicar para mejorar las rutinas de nuestro equipo. Buscaremos el verdadero significado de Agile, enfocándonos en las ideas de Extreme Programming.&lt;/p>
&lt;p>Además, compartiré algunas ideas para ayudar a tu equipo a crear oportunidades de aprendizaje con ejemplos concretos que cualquier equipo puede incorporar en su trabajo actual.&lt;/p>
&lt;h2 id="durante-el-evento-tambien-nos-contaras-algo-sobre-katas-que-son-exactamente-las-katas">Durante el evento, también nos contarás algo sobre Katas. ¿Qué son exactamente las Katas?
&lt;a class="heading-anchor" href="#durante-el-evento-tambien-nos-contaras-algo-sobre-katas-que-son-exactamente-las-katas" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>El término “kata” proviene de los movimientos repetitivos hechos en karate que te ayudan a mejorar tus habilidades de combate.&lt;/p>
&lt;p>¿Por qué “katas de código”? Porque como grupo, necesitamos practicar más. La mayor parte de nuestro aprendizaje ocurre en el trabajo, por lo que la mayoría de nuestros errores también se cometen allí. Y porque queremos mantener PROD, somos reacios a probar cosas nuevas.&lt;/p>
&lt;p>Las katas existen para ayudar a los desarrolladores a obtener los mismos beneficios que obtendrías de la práctica en cualquier otra profesión. Estos ejercicios simples de simulación te permiten experimentar y aprender sin la presión de PROD. No hay respuestas correctas o incorrectas en ninguna kata de software: el beneficio viene del proceso, no del resultado.&lt;/p>
&lt;p>Hay katas para ayudarte a mejorar tus habilidades de refactoring (como Gilded Rose Refactoring Kata de Emily Bache) o tus habilidades de testing (fáciles como Fizz Buzz o Roman Numerals, o más avanzadas como Bank Kata de Sandro Mancuso). También son geniales para construir confianza al programar con otros, observar y practicar diferentes roles colaborativamente, fomentar la cohesión del equipo, etc.&lt;/p>
&lt;h2 id="que-papel-juegan-los-metodos-agile-en-el-desarrollo-de-software-para-ti">¿Qué papel juegan los métodos Agile en el desarrollo de software para ti?
&lt;a class="heading-anchor" href="#que-papel-juegan-los-metodos-agile-en-el-desarrollo-de-software-para-ti" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>La primera pregunta aquí es definir qué son los métodos Agile. Al final, todos se comunican de alguna manera, dan retroalimentación a otros y simplifican hasta cierto nivel. A veces las personas tienen el coraje de decir lo que piensan y a veces no, y usualmente intentan respetar a sus compañeros. Así que, para mí, Agile es más sobre “cómo” haces ciertas cosas en lugar de “qué” cosas haces.&lt;/p>
&lt;p>Agile es un proceso de trabajo altamente colaborativo a cualquier nivel, que podría tener una curva de aprendizaje desafiante al principio, pero vale la pena antes de lo que podrías esperar.&lt;/p>
&lt;h2 id="que-tema-en-el-area-de-agile-deberia-recibir-mas-atencion">¿Qué tema en el área de agile debería recibir más atención?
&lt;a class="heading-anchor" href="#que-tema-en-el-area-de-agile-deberia-recibir-mas-atencion" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>La construcción de equipos y abrazar la agilidad, empezando por preguntar “¿por qué?” Necesitamos desafiar el statu quo más a menudo y preguntarnos por qué trabajamos de la manera en que lo hacemos y cómo y qué podríamos hacer diferente para seguir mejorando y nunca dejar de aprender.&lt;/p>
&lt;blockquote>
&lt;p>También puedes leer la entrevista desde el enlace original: &lt;a rel="external" href="https://devm.io/agile/extreme-programming-agile">https://devm.io/agile/extreme-programming-agile&lt;/a>.&lt;/p>
&lt;/blockquote></content></entry><entry xml:lang="es"><title>Trabajando Agile con Equipos No Agile</title><subtitle>¿Cómo puedes trabajar con otros equipos que no son agile?</subtitle><category term="agile" scheme="https://chemaclass.com/tags/agile/" label="Agile"/><category term="xp" scheme="https://chemaclass.com/tags/xp/" label="Xp"/><category term="communication" scheme="https://chemaclass.com/tags/communication/" label="Communication"/><category term="team-management" scheme="https://chemaclass.com/tags/team-management/" label="Team Management"/><published>2022-11-11T00:00:00+00:00</published><updated>2022-11-11T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/working-agile-with-non-agile-teams/"/><id>https://chemaclass.com/es/blog/working-agile-with-non-agile-teams/</id><summary type="html">Asumamos que ya sabes qué es el manifiesto agile. Consideremos que aplicas la mayoría de los valores, principios y prácticas de extreme programming. ¿Cómo puedes trabajar con otros equipos que no son agile?</summary><content type="html">&lt;p>Asumamos que ya sabes qué es el manifiesto agile. Consideremos que aplicas la mayoría de los valores, principios y prácticas de “extreme programming”. ¿Cómo puedes trabajar con otros equipos que no son agile?&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;blockquote>
&lt;ul>
&lt;li>Individuos e interacciones sobre procesos y herramientas&lt;/li>
&lt;li>Software funcionando sobre documentación extensiva&lt;/li>
&lt;li>Colaboración con el cliente sobre negociación de contratos&lt;/li>
&lt;li>Responder ante el cambio sobre seguir un plan&lt;/li>
&lt;/ul>
&lt;/blockquote>
&lt;p>Estás usando bucles de retroalimentación cortos, donde las cosas cambian constantemente. Puedes sentir que el equipo está vivo y cada uno es esencial.&lt;/p>
&lt;p>&lt;strong>Abrazas el cambio&lt;/strong> hasta el punto de que &lt;strong>disfrutas&lt;/strong> saliendo de tu zona de confort cuando es necesario. Buscando crear &lt;strong>valor&lt;/strong> para tu equipo y sus dinámicas, y siempre considerando el crecimiento personal.&lt;/p>
&lt;p>Pero claro, asumamos todo eso, y todo lo demás que pueda haber olvidado respecto a la “&lt;strong>agilidad&lt;/strong>”, ¿cómo podrías trabajar con un equipo externo que no es agile? ¿Cómo podría tu “equipo perfectamente agile” trabajar con otro grupo de personas que no tiene nada que ver con software? Por ejemplo, un médico.&lt;/p>
&lt;p>Un médico no tiene tiempo para aprender sobre tus “valores y principios agile para desarrollo de software”. Un médico no tiene tiempo para aprender sobre “extreme programming”. De manera similar, no tienen tiempo para aprender sobre testing, diseño, arquitectura y &lt;strong>buenas prácticas&lt;/strong> relacionadas con el software en general.&lt;/p>
&lt;p>¿Cómo podrías crear un &lt;strong>puente&lt;/strong> entre ese médico y tu equipo de software?&lt;/p>
&lt;h2 id="como-podrias-trabajar-agile-con-ese-medico">¿Cómo podrías trabajar agile con ese médico?
&lt;a class="heading-anchor" href="#como-podrias-trabajar-agile-con-ese-medico" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>Si necesitas trabajar con ese médico es porque él/ella debería ser un experto de dominio. Sugiero que uno o dos miembros de tu equipo se reúnan con ese experto durante 30/60 min, para que puedan hablar y compartir sus impresiones. Y luego repetir esto tanto como sea posible para acortar el bucle de retroalimentación. Por ejemplo, una vez a la semana.&lt;/p>
&lt;p>Recopilar esos requisitos e impresiones de los expertos y luego dirigir el diseño de tu software de acuerdo con eso es &lt;a rel="external" href="https://en.wikipedia.org/wiki/Domain-driven_design">Domain-Driven Design&lt;/a>. Puedes encontrar mucha documentación sobre &lt;em>DDD&lt;/em> en libros (como &lt;em>&lt;a href="/es/readings/domain-driven-design-distilled">Domain-Driven Design Distilled&lt;/a>&lt;/em>) o en muchos blogs en Internet.&lt;/p>
&lt;p>Sin embargo, el aspecto crítico aquí no es qué requisitos o impresiones &lt;em>se están resolviendo&lt;/em> sino &lt;strong>cómo&lt;/strong>.
¿Cómo podrías trabajar agile con ese médico?&lt;/p>
&lt;p>&lt;img src="/images/blog/2022-11-11/middle.jpg" alt="blog-middle" />&lt;/p>
&lt;blockquote>
&lt;p>Agile es sobre retroalimentación rápida. Es sobre comunicación efectiva y reducir desperdicio mientras se apunta a la simplicidad.&lt;/p>
&lt;/blockquote>
&lt;h3 id="al-aplicar-verdaderamente-estos-cinco-valores-ya-estas-actuando-de-forma-agile">Al aplicar verdaderamente estos cinco valores, ya estás actuando de forma agile
&lt;a class="heading-anchor" href="#al-aplicar-verdaderamente-estos-cinco-valores-ya-estas-actuando-de-forma-agile" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Comunicación&lt;/li>
&lt;li>Retroalimentación&lt;/li>
&lt;li>Simplicidad&lt;/li>
&lt;li>Coraje&lt;/li>
&lt;li>Respeto&lt;/li>
&lt;/ul>
&lt;p>Estos &lt;strong>objetivos abstractos&lt;/strong> aplican a cualquier profesión, e incluso a la vida, no solo al software.&lt;/p>
&lt;blockquote>
&lt;p>La comunicación continua ayuda a acortar el bucle de retroalimentación, lo que simplifica las tareas. Siempre con el coraje de abordar la verdad y respeto mutuo.&lt;/p>
&lt;/blockquote>
&lt;h3 id="las-practicas-son-las-cosas-que-haces">Las prácticas son las cosas que haces
&lt;a class="heading-anchor" href="#las-practicas-son-las-cosas-que-haces" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Sentarse Juntos&lt;/li>
&lt;li>Pair Programming&lt;/li>
&lt;li>Test First&lt;/li>
&lt;li>Diseño Incremental&lt;/li>
&lt;li>y muchas más&lt;/li>
&lt;/ul>
&lt;p>Y a pesar de tener un nombre técnico, podrían aplicar a cualquier profesión:&lt;/p>
&lt;blockquote>
&lt;ul>
&lt;li>Sentarse Juntos &amp;amp; Pair Programming: &lt;strong>pensar y hacer&lt;/strong> con otros compañeros&lt;/li>
&lt;li>Test First: &lt;strong>verifica tus suposiciones&lt;/strong> primero, luego resuelve el problema&lt;/li>
&lt;li>Diseño Incremental: lo que sea que hagas, &lt;strong>hazlo mejor&lt;/strong> incrementalmente&lt;/li>
&lt;/ul>
&lt;/blockquote>
&lt;h3 id="los-principios-guian-y-motivan-las-practicas-hacia-los-valores">Los principios guían y motivan las prácticas hacia los valores
&lt;a class="heading-anchor" href="#los-principios-guian-y-motivan-las-practicas-hacia-los-valores" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Beneficio Mutuo&lt;/li>
&lt;li>Diversidad&lt;/li>
&lt;li>Fracaso&lt;/li>
&lt;li>Oportunidad&lt;/li>
&lt;li>Pasos Pequeños&lt;/li>
&lt;li>Calidad&lt;/li>
&lt;li>y muchos más&lt;/li>
&lt;/ul>
&lt;p>El beneficio mutuo es el más importante porque se trata de encontrar prácticas que nos beneficien ahora, a nosotros después, y también al cliente.&lt;/p>
&lt;blockquote>
&lt;p>Otros principios incluyen la diversidad de ideas. No tengas miedo del fracaso. Mira todo lo que haces como una oportunidad de aprendizaje. Evita pasos gigantes porque tienen mayor riesgo de fallar. Apunta a un sistema de alta calidad porque son más predecibles y más fáciles de cambiar.&lt;/p>
&lt;/blockquote>
&lt;h2 id="la-pregunta-permanece-eres-agile">La pregunta permanece: ¿eres agile?
&lt;a class="heading-anchor" href="#la-pregunta-permanece-eres-agile" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>Creo verdaderamente que un equipo agile es el que puede lidiar con el cambio a nivel de equipo. Por lo tanto, primero debes dominar agile dentro de tu equipo, y luego puedes colaborar con otros equipos de “manera agile”.&lt;/p>
&lt;p>Una vez que hayas interiorizado estos puntos anteriores, puedes aplicarlos mientras trabajas con cualquier persona de cualquier equipo.&lt;/p>
&lt;p>Aunque estas ideas aisladas son buenas, son aún más poderosas cuando se combinan. Crean una atmósfera de curiosidad y aprendizaje activo. Incluso podría despertar alguna &lt;strong>pasión&lt;/strong> por tu profesión que construye un aura de cohesión de equipo, y así sin más, el equipo respira por sí mismo.&lt;/p>
&lt;p>Todos se preocupan y asumen plena responsabilidad de mantener al equipo saludable construyendo &lt;strong>confianza&lt;/strong>. No hay miedo a &lt;strong>conflictos&lt;/strong> saludables. Se sienten empoderados y &lt;strong>responsables&lt;/strong> de sus compromisos. El equipo &lt;strong>celebra&lt;/strong> sus resultados y aprende de sus &lt;strong>errores&lt;/strong>; ya no hay necesidad de máscaras.&lt;/p>
&lt;p>Es entonces cuando la magia empieza a suceder, y de repente puedes trabajar agile con cualquier equipo, especialmente el tuyo.&lt;/p>
&lt;p>&lt;img src="/images/blog/2022-11-11/footer.jpg" alt="blog-footer" />&lt;/p></content></entry><entry xml:lang="es"><title>Diferentes Creencias sobre la Calidad del Software</title><subtitle>Algunas reflexiones sobre la calidad del software en tu equipo</subtitle><category term="clean-code" scheme="https://chemaclass.com/tags/clean-code/" label="Clean Code"/><category term="agile" scheme="https://chemaclass.com/tags/agile/" label="Agile"/><category term="xp" scheme="https://chemaclass.com/tags/xp/" label="Xp"/><category term="communication" scheme="https://chemaclass.com/tags/communication/" label="Communication"/><category term="career" scheme="https://chemaclass.com/tags/career/" label="Career"/><published>2022-10-08T00:00:00+00:00</published><updated>2022-10-08T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/different-beliefs-about-software-quality/"/><id>https://chemaclass.com/es/blog/different-beliefs-about-software-quality/</id><summary type="html">¿Qué hacer cuando trabajas en "software malo" y no puedes mejorarlo porque va en contra de las creencias de tus compañeros? ¿Deberías cambiar de empresa?</summary><content type="html">&lt;p>Hace poco recibí una pregunta en Twitter que me hizo pensar bastante. Decidí compartir mis reflexiones al respecto.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;hr />
&lt;h2 id="el-tweet-que-empezo-esto">El tweet que empezó esto
&lt;a class="heading-anchor" href="#el-tweet-que-empezo-esto" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>Primero, algo de contexto: me siento muy bien porque el código base donde trabajo mejora cada vez más, así que tuiteé esto:&lt;/p>
&lt;blockquote>
&lt;p>“A medida que el software mejora con el tiempo, puedes sentir que lo estás haciendo bien.”&lt;/p>
&lt;/blockquote>
&lt;p>Y entonces recibí una pregunta pidiendo sugerencias:&lt;/p>
&lt;p>&lt;img src="/images/blog/2022-10-08/tweet.jpg" alt="blog-tweet" />&lt;/p>
&lt;p>Así que aquí vamos…&lt;/p>
&lt;hr />
&lt;h2 id="mi-respuesta">Mi respuesta
&lt;a class="heading-anchor" href="#mi-respuesta" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;h3 id="crear-acuerdos">Crear acuerdos
&lt;a class="heading-anchor" href="#crear-acuerdos" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Lo primero es crear acuerdos sobre qué significa software de calidad para tu equipo y para ti. Esto aclara qué cultura de software quieres construir. Dejar tu empresa debería ser el &lt;em>último recurso&lt;/em>.&lt;/p>
&lt;p>Antes de pensar en irte, pregúntate:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>¿Por qué crees&lt;/strong> que no puedes mejorar el código base de tu empresa?&lt;/li>
&lt;li>&lt;strong>¿Qué puedes hacer&lt;/strong> para reducir la fricción entre tus diferentes creencias sobre calidad?&lt;/li>
&lt;/ul>
&lt;p>No existe un código base perfecto. El software es una entidad viva que cambia constantemente. Para mí, software de calidad es el que puede adaptarse al cambio con facilidad.&lt;/p>
&lt;p>Una vez que acordéis ese objetivo, hay muchas formas de lograrlo. Mi favorita es mantener una &lt;strong>mentalidad agile&lt;/strong> con dosis de &lt;strong>valores, principios y prácticas de Extreme Programming&lt;/strong>.&lt;/p>
&lt;h3 id="el-software-es-sobre-personas">El software es sobre personas
&lt;a class="heading-anchor" href="#el-software-es-sobre-personas" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>El software no es solo escribir &lt;em>código limpio y sólido&lt;/em>. Eso es deseable, claro, pero primero hay que entender por qué lo queremos. El “&lt;em>por qué&lt;/em>” se basa en los &lt;strong>valores&lt;/strong> del equipo.&lt;/p>
&lt;p>Si no compartís el mismo propósito, el mismo “por qué”, no &lt;em>disfrutaréis&lt;/em> trabajando juntos. En ese caso, buscar otra empresa que comparta tus valores es una opción. Pero antes, intenta arreglar el problema de raíz y ayuda a tu equipo a mejorar.&lt;/p>
&lt;h3 id="entendiendo-tu-por-que">Entendiendo tu por qué
&lt;a class="heading-anchor" href="#entendiendo-tu-por-que" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Primero necesitas entender tu “&lt;em>por qué&lt;/em>” a fondo para transmitirlo a tus compañeros. ¿Has hecho todo lo posible para comunicar tu “&lt;em>por qué&lt;/em>”?&lt;/p>
&lt;p>Algunas ideas: fomentar la programación colaborativa (pair/mob), dar charlas técnicas internas, crear una cultura de compartir conocimiento a diario, cuestionar el statu quo y buscar oportunidades de mejora en todas partes.&lt;/p>
&lt;h3 id="tu-trayectoria-profesional">Tu trayectoria profesional
&lt;a class="heading-anchor" href="#tu-trayectoria-profesional" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Si después de varios meses intentando estas ideas de verdad ninguna funciona, busca una empresa que comparta tus creencias. Al fin y al cabo, tú eres el principal responsable de tu carrera profesional.&lt;/p>
&lt;blockquote>
&lt;p>&lt;a rel="external" href="https://x.com/Chemaclass/status/1578425454562021376">Hilo de twitter&lt;/a> original.&lt;/p>
&lt;/blockquote>
&lt;hr />
&lt;p>&lt;img src="/images/blog/2022-10-08/footer.webp" alt="blog-footer" />&lt;/p>
&lt;h2 id="pensamientos-adicionales">Pensamientos adicionales
&lt;a class="heading-anchor" href="#pensamientos-adicionales" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>Si &lt;strong>quieres que algo sea diferente&lt;/strong>, no esperes a que cambie solo. Intenta &lt;strong>cambiarlo&lt;/strong>; si no funciona, déjalo. Quizás no es tu sitio.&lt;/p>
&lt;p>Eso sí, reflexiona si ves este patrón repetirse a menudo (cambiar de empresa demasiado rápido). Si es así, quizás el problema no son las empresas sino tú.&lt;/p>
&lt;p>El desarrollo de software no es solo código, es &lt;strong>negocio&lt;/strong>. Hay que encontrar un equilibrio justo entre velocidad, costes y calidad según la situación. A veces conviene asumir algo de &lt;em>deuda técnica&lt;/em> para llegar antes al mercado.&lt;/p>
&lt;p>Ningún equipo debería tener “baja calidad” como parte de su identidad. Cada equipo tiene expectativas de calidad. La &lt;strong>clave&lt;/strong> está en &lt;strong>acordar qué es buena calidad&lt;/strong>.&lt;/p>
&lt;aside class="kudos">
&lt;span class="kudos__icon" aria-hidden="true">🧠&lt;/span>
&lt;div class="kudos__content">
&lt;p>Gracias a mi anterior Engineering Manager, Evgenii Sokolov, quien me inspiró a escribir estas líneas adicionales después de compartir el post original.&lt;/p>
&lt;/div>
&lt;/aside></content></entry><entry xml:lang="es"><title>Artesanía Limpia</title><subtitle>Disciplinas, Estándares y Ética</subtitle><category term="clean-code" scheme="https://chemaclass.com/tags/clean-code/" label="Clean Code"/><category term="tdd" scheme="https://chemaclass.com/tags/tdd/" label="Tdd"/><category term="refactoring" scheme="https://chemaclass.com/tags/refactoring/" label="Refactoring"/><category term="testing" scheme="https://chemaclass.com/tags/testing/" label="Testing"/><category term="xp" scheme="https://chemaclass.com/tags/xp/" label="Xp"/><published>2022-07-11T00:00:00+00:00</published><updated>2022-07-11T00:00:00+00:00</updated><author><name>
Robert C. Martin</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/clean-craftsmanship/"/><id>https://chemaclass.com/es/readings/clean-craftsmanship/</id><summary type="html">Disciplinas, estándares y ética del desarrollo de software profesional.</summary><content type="html">&lt;span id="continue-reading">&lt;/span>
&lt;p>El libro tiene tres partes: disciplinas, estándares y ética.&lt;/p>
&lt;p>La primera es la más técnica. Te guía con ejemplos de TDD y muestra cómo el testing te ayuda a diseñar tu código.&lt;/p>
&lt;p>La segunda trata sobre productividad, calidad y coraje.&lt;/p>
&lt;p>La tercera explica cómo hemos llegado hasta aquí como profesionales del software y nuestra responsabilidad ética: no hacer daño, integridad y trabajo en equipo.&lt;/p>
&lt;hr />
&lt;p>Una de mis partes favoritas del libro:&lt;/p>
&lt;blockquote>
&lt;p>Nuestra industria es dinámica y cambia constantemente. Hay que aprender de forma continua y agresiva.&lt;/p>
&lt;p>¿Cómo y cuándo aprendes? Si tu empresa te da tiempo para ello, aprovéchalo al máximo. Si no, tendrás que hacerlo por tu cuenta.&lt;/p>
&lt;p>Prepárate para dedicar varias horas al mes. Reserva ese tiempo.&lt;/p>
&lt;p>Sí, ya sé: familia, facturas, viajes, la vida. Pero también tienes una profesión. Y las profesiones requieren cuidado y mantenimiento. Aprendamos de forma continua y agresiva.&lt;/p>
&lt;p>&lt;code>Capítulo 11. Coraje - Aprendizaje Agresivo Continuo&lt;/code>&lt;/p>
&lt;/blockquote>
&lt;hr />
&lt;h2 id="indice">Índice
&lt;a class="heading-anchor" href="#indice" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;h3 id="parte-i-las-disciplinas">Parte I: Las Disciplinas
&lt;a class="heading-anchor" href="#parte-i-las-disciplinas" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;h4 id="capitulo-1-artesania">Capítulo 1. Artesanía
&lt;a class="heading-anchor" href="#capitulo-1-artesania" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h4>
&lt;ul>
&lt;li>Extreme Programming&lt;/li>
&lt;li>Test-Driven Development&lt;/li>
&lt;li>Refactoring&lt;/li>
&lt;li>Diseño Simple&lt;/li>
&lt;li>Programación Colaborativa&lt;/li>
&lt;li>Tests de Aceptación&lt;/li>
&lt;/ul>
&lt;h4 id="capitulo-2-test-driven-development">Capítulo 2. Test-Driven Development
&lt;a class="heading-anchor" href="#capitulo-2-test-driven-development" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h4>
&lt;ul>
&lt;li>Visión General&lt;/li>
&lt;li>Lo Básico&lt;/li>
&lt;/ul>
&lt;h4 id="capitulo-3-tdd-avanzado">Capítulo 3. TDD Avanzado
&lt;a class="heading-anchor" href="#capitulo-3-tdd-avanzado" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h4>
&lt;ul>
&lt;li>Quedarse Atascado&lt;/li>
&lt;li>Arrange, Act, Assert&lt;/li>
&lt;li>Test Doubles&lt;/li>
&lt;li>Arquitectura&lt;/li>
&lt;/ul>
&lt;h4 id="capitulo-4-diseno-de-tests">Capítulo 4. Diseño de Tests
&lt;a class="heading-anchor" href="#capitulo-4-diseno-de-tests" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h4>
&lt;ul>
&lt;li>Testeando Bases de Datos&lt;/li>
&lt;li>Testeando GUIs&lt;/li>
&lt;li>Patrones de Test&lt;/li>
&lt;li>Subclase Específica de Test&lt;/li>
&lt;li>Humble Object&lt;/li>
&lt;li>Diseño de Tests&lt;/li>
&lt;li>Rompiendo la Correspondencia&lt;/li>
&lt;/ul>
&lt;h4 id="capitulo-5-refactoring">Capítulo 5. Refactoring
&lt;a class="heading-anchor" href="#capitulo-5-refactoring" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h4>
&lt;ul>
&lt;li>¿Qué es Refactoring?&lt;/li>
&lt;li>El Kit Básico de Herramientas&lt;/li>
&lt;li>Extract Method&lt;/li>
&lt;li>Las Disciplinas&lt;/li>
&lt;/ul>
&lt;h4 id="capitulo-6-diseno-simple">Capítulo 6. Diseño Simple
&lt;a class="heading-anchor" href="#capitulo-6-diseno-simple" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h4>
&lt;ul>
&lt;li>YAGNI&lt;/li>
&lt;li>Cubierto por Tests&lt;/li>
&lt;li>Cobertura&lt;/li>
&lt;li>¿Diseño?&lt;/li>
&lt;li>Maximizar Expresión&lt;/li>
&lt;li>La Abstracción Subyacente&lt;/li>
&lt;li>Minimizar Duplicación&lt;/li>
&lt;li>Minimizar Tamaño&lt;/li>
&lt;/ul>
&lt;h4 id="capitulo-7-programacion-colaborativa">Capítulo 7. Programación Colaborativa
&lt;a class="heading-anchor" href="#capitulo-7-programacion-colaborativa" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h4>
&lt;h4 id="capitulo-8-tests-de-aceptacion">Capítulo 8. Tests de Aceptación
&lt;a class="heading-anchor" href="#capitulo-8-tests-de-aceptacion" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h4>
&lt;ul>
&lt;li>La Disciplina&lt;/li>
&lt;li>El Build Continuo&lt;/li>
&lt;/ul>
&lt;h3 id="parte-ii-los-estandares">Parte II: Los Estándares
&lt;a class="heading-anchor" href="#parte-ii-los-estandares" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;h4 id="capitulo-9-productividad">Capítulo 9. Productividad
&lt;a class="heading-anchor" href="#capitulo-9-productividad" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h4>
&lt;ul>
&lt;li>Nunca Enviaremos M***da&lt;/li>
&lt;li>Adaptabilidad Económica&lt;/li>
&lt;li>Siempre Estaremos Listos&lt;/li>
&lt;li>Productividad Estable&lt;/li>
&lt;/ul>
&lt;h4 id="capitulo-10-calidad">Capítulo 10. Calidad
&lt;a class="heading-anchor" href="#capitulo-10-calidad" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h4>
&lt;ul>
&lt;li>Mejora Continua&lt;/li>
&lt;li>Competencia Sin Miedo&lt;/li>
&lt;li>Calidad Extrema&lt;/li>
&lt;li>No Volcaremos en QA&lt;/li>
&lt;li>QA No Encontrará Nada&lt;/li>
&lt;li>Automatización de Tests&lt;/li>
&lt;li>Testing Automatizado e Interfaces de Usuario&lt;/li>
&lt;li>Testeando la Interfaz de Usuario&lt;/li>
&lt;/ul>
&lt;h4 id="capitulo-11-coraje">Capítulo 11. Coraje
&lt;a class="heading-anchor" href="#capitulo-11-coraje" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h4>
&lt;ul>
&lt;li>Nos Cubrimos Mutuamente&lt;/li>
&lt;li>Estimaciones Honestas&lt;/li>
&lt;li>Debes Decir NO&lt;/li>
&lt;li>Aprendizaje Agresivo Continuo&lt;/li>
&lt;li>Mentoría&lt;/li>
&lt;/ul>
&lt;h3 id="parte-iii-la-etica">Parte III: La Ética
&lt;a class="heading-anchor" href="#parte-iii-la-etica" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>El Primer Programador&lt;/li>
&lt;li>Setenta y Cinco Años&lt;/li>
&lt;li>Nerds y Salvadores&lt;/li>
&lt;li>Modelos a Seguir y Villanos&lt;/li>
&lt;li>Gobernamos el Mundo&lt;/li>
&lt;li>Catástrofes&lt;/li>
&lt;li>El Juramento&lt;/li>
&lt;/ul>
&lt;h4 id="capitulo-12-dano">Capítulo 12. Daño
&lt;a class="heading-anchor" href="#capitulo-12-dano" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h4>
&lt;ul>
&lt;li>Primero, No Hacer Daño&lt;/li>
&lt;li>Mejor Trabajo&lt;/li>
&lt;li>Prueba Repetible&lt;/li>
&lt;/ul>
&lt;h4 id="capitulo-13-integridad">Capítulo 13. Integridad
&lt;a class="heading-anchor" href="#capitulo-13-integridad" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h4>
&lt;ul>
&lt;li>Ciclos Pequeños&lt;/li>
&lt;li>Mejora Implacable&lt;/li>
&lt;li>Mantener Alta Productividad&lt;/li>
&lt;/ul>
&lt;h4 id="capitulo-14-trabajo-en-equipo">Capítulo 14. Trabajo en Equipo
&lt;a class="heading-anchor" href="#capitulo-14-trabajo-en-equipo" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h4>
&lt;ul>
&lt;li>Trabajar como Equipo&lt;/li>
&lt;li>Estimar Honesta y Justamente&lt;/li>
&lt;li>Respeto&lt;/li>
&lt;li>Nunca Dejes de Aprender&lt;/li>
&lt;/ul>
&lt;hr />
&lt;p>Charla de Uncle Bob donde cubre la mayoría de los temas del libro.&lt;/p>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/sPXk11hrWTM"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="plain">&lt;span class="giallo-l">&lt;span>Escucha sobre:&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>* Cita e Intro - [00:00:00]&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>* Trayectoria Profesional - [00:07:29]&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>* Clean Craftsmanship - [00:10:53]&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>* Programador como Profesión - [00:15:31]&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>* Artesanía - [00:18:45]&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>* Disciplinas - [00:22:45]&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>* Disciplinas: Test-Driven Development - [00:28:49]&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>* Disciplinas: Refactoring - [00:34:31]&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>* Cobertura de Código - [00:39:02]&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>* Estándar: Nunca Enviar M***da - [00:42:35]&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>* Estándar: Siempre Estar Listo - [00:47:15]&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>* Ética: No Hacer Daño - [00:50:00]&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>* Ética: Estimar Honestamente - [00:53:56]&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>* 2 Sabiduría de Tech Lead - [00:57:50]&lt;/span>&lt;/span>&lt;/code>&lt;/pre></content></entry><entry xml:lang="es"><title>Actualiza tu Equipo para Ser Más Extreme</title><subtitle>¿Cómo puedes ayudar a tus compañeros a abrazar el cambio?</subtitle><category term="xp" scheme="https://chemaclass.com/tags/xp/" label="Xp"/><category term="agile" scheme="https://chemaclass.com/tags/agile/" label="Agile"/><category term="team-management" scheme="https://chemaclass.com/tags/team-management/" label="Team Management"/><category term="mentoring" scheme="https://chemaclass.com/tags/mentoring/" label="Mentoring"/><category term="tdd" scheme="https://chemaclass.com/tags/tdd/" label="Tdd"/><published>2022-02-26T00:00:00+00:00</published><updated>2023-03-23T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/update-your-team-to-be-more-extreme/"/><id>https://chemaclass.com/es/blog/update-your-team-to-be-more-extreme/</id><summary type="html">Nuestra profesión está en constante evolución y exige aprendizaje continuo. Abrazar el cambio no es opcional en software. Hay que crear espacios para salir de nuestra zona de confort.</summary><content type="html">&lt;p>Nuestra profesión del software está en constante evolución y exige aprendizaje continuo. El cambio no es opcional en nuestra industria.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;p>Hay que crear espacios para salir de nuestra zona de confort. Nuestro cerebro necesita entrenarse para adaptarse a un entorno que cambia constantemente.&lt;/p>
&lt;h2 id="por-que-katas-de-codigo-charlas-tecnicas-o-viernes-de-investigacion">¿Por qué katas de código, charlas técnicas o viernes de investigación?
&lt;a class="heading-anchor" href="#por-que-katas-de-codigo-charlas-tecnicas-o-viernes-de-investigacion" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>El objetivo es crear un ambiente que fomente la mejora continua. Buscar aprender en todas partes, todo el tiempo, como actitud central para cada persona y para el equipo.&lt;/p>
&lt;h3 id="crear-oportunidades-de-aprendizaje">Crear oportunidades de aprendizaje
&lt;a class="heading-anchor" href="#crear-oportunidades-de-aprendizaje" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;blockquote>
&lt;p>Programa tiempo cada X semanas para practicar juntos.&lt;/p>
&lt;/blockquote>
&lt;p>Al final de cada iteración, o cada 2-4 semanas, trabajamos en katas en parejas o mob durante 2 horas. Ese espacio también sirve para preparar charlas técnicas internas y compartir conocimiento interesante que no sea del “negocio diario”.&lt;/p>
&lt;p>El objetivo es salir de nuestra zona de confort. Mejorar nuestra capacidad de adaptación mientras aprendemos otros temas.&lt;/p>
&lt;h2 id="que-es-una-kata-de-codigo">¿Qué es una kata de código?
&lt;a class="heading-anchor" href="#que-es-una-kata-de-codigo" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>Los desarrolladores no practicamos lo suficiente. La mayor parte del aprendizaje ocurre en el trabajo, y ahí es donde cometemos la mayoría de errores.&lt;/p>
&lt;p>El término “kata” viene del karate: movimientos repetitivos que mejoran tus habilidades de combate.&lt;/p>
&lt;p>Las katas de código dan a los desarrolladores los mismos beneficios que practicar en cualquier profesión. Son ejercicios simples que permiten experimentar y aprender sin la presión de producción.&lt;/p>
&lt;blockquote>
&lt;p>No hay respuestas correctas o incorrectas en una kata: el beneficio viene del proceso, no del resultado.&lt;/p>
&lt;/blockquote>
&lt;h3 id="motivacion">Motivación
&lt;a class="heading-anchor" href="#motivacion" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Practicar técnicas de refactoring.&lt;/li>
&lt;li>Practicar TDD.&lt;/li>
&lt;li>Aplicar principios SOLID.&lt;/li>
&lt;li>Hacer sesiones de live coding.&lt;/li>
&lt;li>Ejercitar el concepto driver-navigator.&lt;/li>
&lt;li>Mejorar la cohesión del equipo.&lt;/li>
&lt;li>Pasarlo bien mientras aprendes con otros.&lt;/li>
&lt;/ul>
&lt;p>Si te interesa mi visión sobre TDD y katas, escribí un post hace poco: &lt;a href="/es/blog/test-driven-development/">Test-Driven Development&lt;/a>.&lt;/p>
&lt;h2 id="que-es-una-charla-tecnica">¿Qué es una charla técnica?
&lt;a class="heading-anchor" href="#que-es-una-charla-tecnica" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>Las charlas técnicas nos permiten compartir conocimiento de nuestra industria con el equipo.&lt;/p>
&lt;p>Puede ser sobre FrontEnd, BackEnd, DevOps. Pero también animo a compartir:&lt;/p>
&lt;ul>
&lt;li>un nuevo lenguaje que estás aprendiendo,&lt;/li>
&lt;li>un resumen de un libro que terminaste,&lt;/li>
&lt;li>una tecnología que te da curiosidad,&lt;/li>
&lt;li>un software que te gustaría presentar,&lt;/li>
&lt;li>una herramienta que mejora tu productividad,&lt;/li>
&lt;li>en realidad: &lt;u>cualquier cosa que aporte valor o conocimiento.&lt;/u>&lt;/li>
&lt;/ul>
&lt;h3 id="como-presento-una-charla-tecnica">¿Cómo presento una charla técnica?
&lt;a class="heading-anchor" href="#como-presento-una-charla-tecnica" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Escribí un artículo con consejos sobre &lt;a href="/es/blog/improve-your-tech-talk/">cómo mejorar tu charla técnica&lt;/a>. Algunas preguntas que pueden ayudarte:&lt;/p>
&lt;ul>
&lt;li>¿Qué has aprendido recientemente?&lt;/li>
&lt;li>¿Qué conocimiento sería interesante compartir con tus compañeros?&lt;/li>
&lt;li>¿Qué aspecto de ti te gustaría mejorar profesional o personalmente?&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>Una sola regla: sé curioso y “&lt;a href="/es/blog/embrace-the-change/">abraza el cambio&lt;/a>.”&lt;/p>
&lt;/blockquote>
&lt;h2 id="viernes-de-investigacion-y-aprendizaje">Viernes de investigación y aprendizaje
&lt;a class="heading-anchor" href="#viernes-de-investigacion-y-aprendizaje" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>Reserva el último viernes del mes para investigar y aprender. Todo el equipo tendrá un espacio dedicado al crecimiento y la experimentación.&lt;/p>
&lt;p>Es clave construir confianza con tu equipo. Que todos sepan que cada uno usará este tiempo bien. No microgestiones forzando un registro detallado en una wiki.&lt;/p>
&lt;p>Eso sí, estaría bien que el equipo comparta lo que hace. Crea transparencia. Un anuncio verbal el día antes con las intenciones, y el día después con los aprendizajes clave.&lt;/p>
&lt;h3 id="resumen">Resumen
&lt;a class="heading-anchor" href="#resumen" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Puedes ayudar a tu equipo a ser más extreme creando un espacio dedicado al crecimiento y la experimentación.&lt;/p>
&lt;ul>
&lt;li>Da flexibilidad para experimentar con estas ideas.&lt;/li>
&lt;li>Es una oportunidad para crecer y aprender a la vez.&lt;/li>
&lt;li>La responsabilidad es de cada persona y del equipo.&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>No microgestiones este tiempo. Enfócate en el resultado. Ayuda a tu equipo a crecer, y disfrutarán creciendo contigo.&lt;/p>
&lt;/blockquote>
&lt;p>&lt;img src="/images/blog/2022-02-26/footer.webp" alt="blog-footer" />&lt;/p>
&lt;h2 id="charla-tecnica">Charla Técnica
&lt;a class="heading-anchor" href="#charla-tecnica" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>Tras escribir este post (originalmente en febrero de 2022), me invitaron a dar una &lt;a href="/es/talks/update-your-team-to-be-more-extreme">charla técnica&lt;/a> sobre este tema en varias conferencias.&lt;/p></content></entry><entry xml:lang="es"><title>Programación Extrema Explicada</title><subtitle>Abraza el Cambio</subtitle><category term="xp" scheme="https://chemaclass.com/tags/xp/" label="Xp"/><category term="agile" scheme="https://chemaclass.com/tags/agile/" label="Agile"/><category term="tdd" scheme="https://chemaclass.com/tags/tdd/" label="Tdd"/><category term="pair-programming" scheme="https://chemaclass.com/tags/pair-programming/" label="Pair Programming"/><category term="communication" scheme="https://chemaclass.com/tags/communication/" label="Communication"/><published>2020-03-05T00:00:00+00:00</published><updated>2020-03-05T00:00:00+00:00</updated><author><name>
Kent Beck</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/extreme-programming-explained/"/><id>https://chemaclass.com/es/readings/extreme-programming-explained/</id><summary type="html">XP busca producir mejor software y mejor calidad de vida para el equipo. Es el framework ágil más específico en cuanto a prácticas de ingeniería.</summary><content type="html">&lt;span id="continue-reading">&lt;/span>&lt;h2 id="definicion">Definición
&lt;a class="heading-anchor" href="#definicion" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>Extreme Programming (XP) es un framework ágil que busca producir mejor software y mejor calidad de vida para el equipo de desarrollo. Es el más específico de los frameworks ágiles en cuanto a prácticas de ingeniería.&lt;/p>
&lt;hr />
&lt;h2 id="valores">Valores
&lt;a class="heading-anchor" href="#valores" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>Los cinco valores de XP son comunicación, simplicidad, feedback, coraje y respeto.&lt;/p>
&lt;h3 id="comunicacion">Comunicación
&lt;a class="heading-anchor" href="#comunicacion" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>El desarrollo de software es un deporte de equipo. Depende de la comunicación para transferir conocimiento entre los miembros. XP enfatiza la comunicación cara a cara, preferiblemente con una pizarra a mano.&lt;/p>
&lt;h3 id="simplicidad">Simplicidad
&lt;a class="heading-anchor" href="#simplicidad" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Simplicidad significa “¿qué es lo más simple que funcionará?” El objetivo es evitar el desperdicio y hacer solo lo necesario. Mantener el diseño lo más simple posible facilita el mantenimiento y la revisión. También significa abordar solo los requisitos que conoces ahora, sin intentar predecir el futuro.&lt;/p>
&lt;h3 id="feedback">Feedback
&lt;a class="heading-anchor" href="#feedback" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Con feedback constante sobre el trabajo previo, los equipos identifican áreas de mejora y ajustan sus prácticas. El equipo construye algo, recoge feedback sobre el diseño e implementación, y ajusta el producto en consecuencia.&lt;/p>
&lt;h3 id="coraje">Coraje
&lt;a class="heading-anchor" href="#coraje" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Kent Beck definió el coraje como “acción efectiva ante el miedo”. Necesitas coraje para:&lt;/p>
&lt;ul>
&lt;li>Plantear problemas organizacionales que reducen la efectividad del equipo.&lt;/li>
&lt;li>Dejar de hacer algo que no funciona y probar algo diferente.&lt;/li>
&lt;li>Aceptar y actuar según el feedback, aunque sea difícil de escuchar.&lt;/li>
&lt;/ul>
&lt;h3 id="respeto">Respeto
&lt;a class="heading-anchor" href="#respeto" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Los miembros del equipo necesitan respetarse mutuamente para comunicarse bien, dar y recibir feedback de forma constructiva, y trabajar juntos en diseños y soluciones simples.&lt;/p>
&lt;hr />
&lt;h2 id="principios">Principios
&lt;a class="heading-anchor" href="#principios" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;h3 id="humanidad">Humanidad
&lt;a class="heading-anchor" href="#humanidad" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Los seres humanos desarrollan software. El libro menciona 5 cosas que necesitan los desarrolladores para crecer: seguridad básica, logro, pertenencia, crecimiento e intimidad.&lt;/p>
&lt;p>La magia de los grandes equipos es que, una vez que desarrollan confianza, sus miembros se sienten libres de ser más ellos mismos.&lt;/p>
&lt;h3 id="economia">Economía
&lt;a class="heading-anchor" href="#economia" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>El software cuesta dinero. Alguien pagó o invirtió en él.&lt;/p>
&lt;p>Asegúrate de que lo que haces tenga valor de negocio y sirva a sus necesidades. Resolver primero la necesidad más prioritaria maximiza el valor del proyecto.&lt;/p>
&lt;p>Cuanto antes el software genere dinero, antes el desarrollo será valioso.&lt;/p>
&lt;h3 id="beneficio-mutuo">Beneficio Mutuo
&lt;a class="heading-anchor" href="#beneficio-mutuo" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>El beneficio mutuo en XP busca actividades que beneficien a todos los involucrados: a mí ahora, a mí después, y a los clientes.&lt;/p>
&lt;p>El libro presenta 3 formas de comunicarte con el futuro:&lt;/p>
&lt;ul>
&lt;li>Escribo tests automatizados que me ayudan a diseñar e implementar hoy. Los dejo para que los futuros programadores también los usen.&lt;/li>
&lt;li>Refactorizo para eliminar complejidad accidental. Menos defectos y código más fácil de entender para quien venga después.&lt;/li>
&lt;li>Elijo nombres de un conjunto coherente de metáforas. Acelera mi desarrollo y hace el código más claro para nuevos programadores.&lt;/li>
&lt;/ul>
&lt;h3 id="auto-similaridad">Auto-Similaridad
&lt;a class="heading-anchor" href="#auto-similaridad" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Copiar la estructura de una solución a un nuevo contexto.&lt;/p>
&lt;p>Por ejemplo, la estructura básica del desarrollo: escribes un test que falla y luego lo haces funcionar. Esta estructura opera a todas las escalas. Ojo: es un buen comienzo, pero no siempre funciona.&lt;/p>
&lt;h3 id="mejora">Mejora
&lt;a class="heading-anchor" href="#mejora" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Haz lo mejor que puedas hoy, pero esfuérzate por hacerlo mejor mañana. XP brilla aquí: se trata de mejorar siempre.&lt;/p>
&lt;blockquote>
&lt;p>Pon la mejora a trabajar sin esperar la perfección. Encuentra un punto de partida, comienza y mejora desde ahí.&lt;/p>
&lt;/blockquote>
&lt;h3 id="diversidad">Diversidad
&lt;a class="heading-anchor" href="#diversidad" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Los equipos necesitan personas de diferentes orígenes, experiencias y actitudes. Así tienen diferentes formas de pensar y resolver problemas.&lt;/p>
&lt;p>Los programadores deberían trabajar juntos en el problema y valorar ambas opiniones.&lt;/p>
&lt;h3 id="reflexion">Reflexión
&lt;a class="heading-anchor" href="#reflexion" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Los buenos equipos reflexionan después de la acción, regularmente. Piensan sobre por qué y cómo están trabajando.&lt;/p>
&lt;ul>
&lt;li>¿Por qué tuvimos éxito? ¿Qué deberíamos seguir haciendo?&lt;/li>
&lt;li>¿Por qué fallamos? ¿Qué podemos hacer mejor?&lt;/li>
&lt;/ul>
&lt;p>Aunque todo parezca perfecto, siempre hay espacio para mejorar:&lt;/p>
&lt;ul>
&lt;li>¿Por qué las cosas parecen perfectas? ¿Qué hacemos bien? ¿Qué podemos mejorar?&lt;/li>
&lt;/ul>
&lt;h3 id="flujo">Flujo
&lt;a class="heading-anchor" href="#flujo" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>El flujo en desarrollo de software es entregar valor constante participando en todas las actividades simultáneamente. No entregues software en grandes porciones. Despliega incrementos más pequeños con más frecuencia.&lt;/p>
&lt;h3 id="oportunidad">Oportunidad
&lt;a class="heading-anchor" href="#oportunidad" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Aprende a ver los problemas como oportunidades para aprender y mejorar.&lt;/p>
&lt;blockquote>
&lt;p>Parte de ser extremo es elegir conscientemente transformar cada problema en una oportunidad: para el crecimiento personal, profundizar relaciones y mejorar el software.&lt;/p>
&lt;/blockquote>
&lt;h3 id="redundancia">Redundancia
&lt;a class="heading-anchor" href="#redundancia" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Los problemas difíciles deberían resolverse de múltiples maneras.&lt;/p>
&lt;blockquote>
&lt;p>El costo de la redundancia se paga con creces por los ahorros de evitar un desastre.&lt;/p>
&lt;/blockquote>
&lt;h3 id="fracaso">Fracaso
&lt;a class="heading-anchor" href="#fracaso" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>A veces no sabes qué camino tomar. Prueba las ideas que tienes, aunque fallen. El fracaso no es desperdicio, sino aprendizaje.&lt;/p>
&lt;p>Cuidado con la trampa de discutir o pensar eternamente sin hacer nada.&lt;/p>
&lt;blockquote>
&lt;p>Cuando no sabes qué hacer, arriesgarte al fracaso puede ser el camino más corto hacia el éxito.&lt;/p>
&lt;/blockquote>
&lt;h3 id="calidad">Calidad
&lt;a class="heading-anchor" href="#calidad" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Los proyectos no van más rápido bajando la calidad. Suele ser al revés. Resulta en entregas más tardías y menos predecibles por el tiempo dedicado a corregir bugs.&lt;/p>
&lt;p>Aumentar la calidad suele resultar en entregas más rápidas.&lt;/p>
&lt;blockquote>
&lt;p>La preocupación por la calidad no es excusa para la inacción. Si no conoces una forma limpia de hacer algo que hay que hacer, hazlo lo mejor que puedas. Si conoces una forma limpia pero tomaría demasiado tiempo, haz el trabajo tan bien como el tiempo te permita. Resuélvelo de forma limpia después.&lt;/p>
&lt;/blockquote>
&lt;h3 id="pasos-pequenos">Pasos Pequeños
&lt;a class="heading-anchor" href="#pasos-pequenos" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Da pasos pequeños. Hacer grandes cambios de golpe es peligroso. Las personas y equipos pueden dar muchos pasos pequeños y parecer que avanzan rápido.&lt;/p>
&lt;blockquote>
&lt;p>Los pasos pequeños reconocen que su sobrecarga es mucho menor que cuando un equipo retrocede desperdiciando cambios grandes abortados.&lt;/p>
&lt;/blockquote>
&lt;h3 id="responsabilidad-aceptada">Responsabilidad Aceptada
&lt;a class="heading-anchor" href="#responsabilidad-aceptada" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;blockquote>
&lt;p>La responsabilidad no puede asignarse; solo puede aceptarse. Si alguien intenta darte responsabilidad, solo tú puedes decidir si la aceptas o no.&lt;/p>
&lt;/blockquote>
&lt;hr />
&lt;h2 id="practicas">Prácticas
&lt;a class="heading-anchor" href="#practicas" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>Se pueden hacer de forma aislada, pero muchos equipos han descubierto que algunas prácticas refuerzan a otras. Hacerlas juntas elimina los riesgos típicos del desarrollo de software.&lt;/p>
&lt;h3 id="sentarse-juntos">Sentarse Juntos
&lt;a class="heading-anchor" href="#sentarse-juntos" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>La comunicación es uno de los cinco valores de XP. Haz que tu equipo se siente junto en el mismo espacio sin barreras como paredes de cubículos.&lt;/p>
&lt;h3 id="equipo-completo">Equipo Completo
&lt;a class="heading-anchor" href="#equipo-completo" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Incluye personas con todas las habilidades y perspectivas necesarias para que el proyecto tenga éxito.&lt;/p>
&lt;h3 id="espacio-de-trabajo-informativo">Espacio de Trabajo Informativo
&lt;a class="heading-anchor" href="#espacio-de-trabajo-informativo" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Configura el espacio para facilitar la comunicación cara a cara, permite algo de privacidad cuando la necesiten, y haz el trabajo transparente para el equipo y las partes interesadas.&lt;/p>
&lt;h3 id="trabajo-energizado">Trabajo Energizado
&lt;a class="heading-anchor" href="#trabajo-energizado" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Eres más efectivo en el desarrollo de software cuando estás enfocado y libre de distracciones.&lt;/p>
&lt;h3 id="programacion-en-parejas">Programación en Parejas
&lt;a class="heading-anchor" href="#programacion-en-parejas" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Todo el software de producción lo desarrollan dos personas en la misma máquina. Dos cerebros y cuatro ojos son mejores que un cerebro y dos ojos. Obtienes revisión de código continua y respuestas más rápidas a problemas que podrían bloquear a una persona sola.&lt;/p>
&lt;p>Los equipos que usan programación en parejas descubren que mejora la calidad sin tomar el doble de tiempo. Resuelven problemas más rápido y se mantienen más enfocados, escribiendo menos código para lograr lo mismo.&lt;/p>
&lt;p>Los programadores en pareja:&lt;/p>
&lt;ul>
&lt;li>Se mantienen mutuamente en la tarea.&lt;/li>
&lt;li>Hacen lluvia de ideas sobre mejoras al sistema.&lt;/li>
&lt;li>Clarifican ideas.&lt;/li>
&lt;li>Toman la iniciativa cuando el compañero está atascado, reduciendo la frustración.&lt;/li>
&lt;li>Se hacen mutuamente responsables de las prácticas del equipo.&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>La programación en parejas es un diálogo entre dos personas programando simultáneamente (analizando, diseñando y probando) e intentando programar mejor.&lt;/p>
&lt;/blockquote>
&lt;p>Si necesitas privacidad y tiempo para trabajar en una idea, adelante. Necesitamos tanto compañía como privacidad. Rota parejas frecuentemente y toma descansos: el pairing puede ser agotador, pero es gratificante.&lt;/p>
&lt;h3 id="historias">Historias
&lt;a class="heading-anchor" href="#historias" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Describe lo que el producto debería hacer en términos significativos para clientes y usuarios. Son descripciones cortas de cosas que los usuarios quieren hacer. Sirven para planificar y como recordatorios para conversaciones más detalladas.&lt;/p>
&lt;p>Dale a las historias un título corto y una descripción. Escríbelas en tarjetas y ponlas en una pared visible.&lt;/p>
&lt;p>En XP las historias se estiman muy temprano. Esto hace que el equipo piense en cómo obtener el mayor retorno de la pequeña inversión.&lt;/p>
&lt;h3 id="ciclo-semanal">Ciclo Semanal
&lt;a class="heading-anchor" href="#ciclo-semanal" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>El Ciclo Semanal es una iteración. El equipo se reúne el primer día de la semana para reflexionar sobre el progreso. El cliente elige las historias que quiere entregar esa semana, y el equipo determina cómo abordarlas.&lt;/p>
&lt;p>La idea es producir algo para mostrar al cliente y obtener feedback.&lt;/p>
&lt;h3 id="build-de-diez-minutos">Build de Diez Minutos
&lt;a class="heading-anchor" href="#build-de-diez-minutos" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>El objetivo es construir automáticamente todo el sistema y ejecutar todos los tests en diez minutos.&lt;/p>
&lt;h3 id="integracion-continua">Integración Continua
&lt;a class="heading-anchor" href="#integracion-continua" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Los cambios de código se prueban inmediatamente al añadirse al código base. El beneficio: detectas y corriges problemas de integración antes.&lt;/p>
&lt;p>Requiere disciplina extra y depende mucho del Build de Diez Minutos y el Desarrollo Test-First.&lt;/p>
&lt;h3 id="programacion-test-first">Programación Test-First
&lt;a class="heading-anchor" href="#programacion-test-first" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;blockquote>
&lt;p>Escribe un test automatizado que falle antes de cambiar cualquier código.&lt;/p>
&lt;/blockquote>
&lt;p>El libro menciona 4 problemas que aborda:&lt;/p>
&lt;ul>
&lt;li>
&lt;p>Expansión del alcance: Es fácil dejarse llevar y poner código “por si acaso”. Al declarar explícitamente lo que el programa debe hacer, te das un foco. Si quieres ese otro código, escribe otro test después.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Acoplamiento y cohesión: Si es difícil escribir un test, tienes un problema de diseño, no de testing. El código débilmente acoplado y altamente cohesivo es fácil de probar.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Confianza: Es difícil confiar en el autor de código que no funciona. Al escribir código limpio que funciona y demostrar tus intenciones con tests, das a tus compañeros razones para confiar en ti.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Ritmo: Es fácil perderse horas programando. Con test-first, siempre sabes qué hacer: escribir otro test o hacer que el test roto funcione. Se desarrolla un ritmo natural: test, código, refactorizar, test, código, refactorizar.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;h3 id="diseno-incremental">Diseño Incremental
&lt;a class="heading-anchor" href="#diseno-incremental" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;blockquote>
&lt;p>Invierte en el diseño del sistema todos los días.&lt;/p>
&lt;/blockquote>
&lt;p>Haces un poco de trabajo inicial para entender el diseño general, y luego profundizas en los detalles cuando entregas características específicas.&lt;/p>
&lt;p>Este enfoque reduce el costo de los cambios y te permite tomar decisiones de diseño basándote en la información más actual.&lt;/p>
&lt;hr />
&lt;h2 id="roles">Roles
&lt;a class="heading-anchor" href="#roles" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h2>
&lt;p>XP especifica prácticas, pero no establece roles específicos. Según la fuente, o no hay orientación, o hay descripciones de cómo los roles tradicionales se comportan en proyectos XP.&lt;/p>
&lt;h3 id="el-cliente">El Cliente
&lt;a class="heading-anchor" href="#el-cliente" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Responsable de tomar todas las decisiones de negocio del proyecto.&lt;/p>
&lt;p>Se asume que es una sola persona, pero la experiencia muestra que una persona no puede proporcionar toda la información de negocio de un proyecto.&lt;/p>
&lt;h3 id="el-desarrollador">El Desarrollador
&lt;a class="heading-anchor" href="#el-desarrollador" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Como XP no necesita definición de roles, todos (excepto el cliente y un par de roles secundarios) se llaman desarrolladores. Son responsables de realizar las historias identificadas por el Cliente.&lt;/p>
&lt;h3 id="el-rastreador">El Rastreador
&lt;a class="heading-anchor" href="#el-rastreador" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Su propósito es llevar el seguimiento de métricas relevantes para rastrear el progreso e identificar áreas de mejora.&lt;/p>
&lt;h3 id="el-coach">El Coach
&lt;a class="heading-anchor" href="#el-coach" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h3>
&lt;p>Usualmente un consultor externo (o alguien de otra parte de la organización) que ha usado XP antes. Ayuda a mentorear al equipo en las prácticas XP y a mantener la autodisciplina.&lt;/p>
&lt;hr />
&lt;h4 id="que-es-xp-en-2-min">¿Qué es XP? (en 2 min)
&lt;a class="heading-anchor" href="#que-es-xp-en-2-min" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h4>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/hbFOwqYIOcU"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;h4 id="tech-talk-de-kent-beck-xp-20-anos-despues">Tech Talk de Kent Beck: XP 20 años después
&lt;a class="heading-anchor" href="#tech-talk-de-kent-beck-xp-20-anos-despues" title="Copy link" aria-label="Link to this section">#&lt;/a>
&lt;/h4>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/cGuTmOUdFbo"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry></feed>