<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Desarrollo de Software Archives - Software Evolutivo</title>
	<atom:link href="https://softwareevolutivo.com.ec/category/desarrollo-de-software/feed/" rel="self" type="application/rss+xml" />
	<link>https://softwareevolutivo.com.ec/category/desarrollo-de-software/</link>
	<description>Consultora de Software Empresarial</description>
	<lastBuildDate>Mon, 12 Aug 2024 16:57:18 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://softwareevolutivo.com.ec/wp-content/uploads/2024/03/cropped-Perfil-Redes-Iso-32x32.png</url>
	<title>Desarrollo de Software Archives - Software Evolutivo</title>
	<link>https://softwareevolutivo.com.ec/category/desarrollo-de-software/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>GitHub Flow, una forma ligera y eficaz para gestionar tu Software</title>
		<link>https://softwareevolutivo.com.ec/github-flow/</link>
					<comments>https://softwareevolutivo.com.ec/github-flow/#respond</comments>
		
		<dc:creator><![CDATA[Fernando Paz]]></dc:creator>
		<pubDate>Wed, 24 Jul 2024 20:38:09 +0000</pubDate>
				<category><![CDATA[Desarrollo de Software]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[GitHub Flow]]></category>
		<category><![CDATA[versionamiento de código]]></category>
		<guid isPermaLink="false">https://softwareevolutivo.com.ec/?p=10096</guid>

					<description><![CDATA[<p>En el mundo del desarrollo de software y la gestión de productos digitales, mantener un flujo de trabajo eficiente y colaborativo es crucial. Se presenta aquí a GitHub Flow, una forma ligera y eficaz para gestionar tu Software. Exploraremos qué es GitHub Flow, cómo funciona, y por qué podría ser la estrategia perfecta para tu [&#8230;]</p>
<p>The post <a href="https://softwareevolutivo.com.ec/github-flow/">GitHub Flow, una forma ligera y eficaz para gestionar tu Software</a> appeared first on <a href="https://softwareevolutivo.com.ec">Software Evolutivo</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="10096" class="elementor elementor-10096">
				<div class="elementor-element elementor-element-d8f38cc e-flex e-con-boxed e-con e-parent" data-id="d8f38cc" data-element_type="container" data-e-type="container" id="se-ol_li">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-90b7a0d elementor-widget elementor-widget-text-editor" data-id="90b7a0d" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>En el mundo del desarrollo de software y la gestión de productos digitales, mantener un flujo de trabajo eficiente y colaborativo es crucial. Se presenta aquí a GitHub Flow, una forma ligera y eficaz para gestionar tu Software. Exploraremos qué es GitHub Flow, cómo funciona, y por qué podría ser la estrategia perfecta para tu equipo de TI.</p>								</div>
				</div>
				<div class="elementor-element elementor-element-901236b elementor-widget elementor-widget-heading" data-id="901236b" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">¿Qué es GitHub Flow?</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-b04b3ef elementor-widget elementor-widget-text-editor" data-id="b04b3ef" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>GitHub Flow es un modelo de flujo de trabajo ligero y basado en ramas que facilita la experimentación y colaboración en equipos de desarrollo. Diseñado para ser simple y efectivo, este flujo se centra en la integración continua (CI) y la entrega frecuente de código.</p>								</div>
				</div>
		<div class="elementor-element elementor-element-dbeec9c e-grid e-con-full e-con e-child" data-id="dbeec9c" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-d778055 elementor-widget elementor-widget-text-editor" data-id="d778055" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<h2>El proceso de GitHub Flow</h2><p>El siguiente diagrama muestra cómo el workflow propuesto de GitHub Flow para la gestión de los fuentes:</p><ol><li><span style="text-align: var(--text-align);"><b>Crear una rama</b>: Todo comienza con la creación de una nueva rama desde &#8216;main&#8217; (la rama por defecto), para trabajar en una nueva característica o corrección.</span></li><li><strong>Realizar cambios</strong>: En esta nueva rama, haces commits con tus cambios, iterando sobre tu trabajo.</li><li><strong>Abrir un Pull Request</strong>: Cuando estés listo para el feedback, abre un Pull Request (o un Merge Request si estás en GitLab). Esto inicia la conversación sobre tus cambios.</li><li><strong>Discusión y revisión</strong>: Tus colaboradores revisan el código, sugieren mejoras y discuten los cambios propuestos.</li><li><strong>Implementar cambios</strong>: Basado en el feedback, puedes seguir haciendo commits en tu rama para mejorar tu propuesta.</li><li><strong>Fusionar en main</strong>: Una vez que los cambios son aprobados, se fusionan en la rama principal (main).</li><li><strong>Desplegar</strong>: Con los cambios en main, puedes desplegar inmediatamente.</li></ol><p>La rama defecto es main, lo que significa que es la rama fuente para ambientes de producción y no tenemos ramas por versiones, tan solo las identificamos por tags, por ejemplo.</p><p> </p>								</div>
				</div>
				<div class="elementor-element elementor-element-f315419 elementor-widget elementor-widget-image" data-id="f315419" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img fetchpriority="high" decoding="async" width="277" height="1024" src="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/Github-Flow-2024-07-24-202902-277x1024.png" class="attachment-large size-large wp-image-10099" alt="GitHub Flow" srcset="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/Github-Flow-2024-07-24-202902-277x1024.png 277w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/Github-Flow-2024-07-24-202902-81x300.png 81w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/Github-Flow-2024-07-24-202902-415x1536.png 415w" sizes="(max-width: 277px) 100vw, 277px" />															</div>
				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-6312cde e-flex e-con-boxed e-con e-parent" data-id="6312cde" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-3ad11c6 elementor-widget elementor-widget-heading" data-id="3ad11c6" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Casos de uso sugeridos</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-6f3c3a7 elementor-widget elementor-widget-text-editor" data-id="6f3c3a7" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<ul><li>Desarrollo de nuevas características: Ideal para trabajar en nuevas funcionalidades sin afectar el código en producción.</li><li>Corrección de errores: Permite aislar y resolver problemas rápidamente.</li><li>Experimentación: Perfecto para probar nuevas ideas sin comprometer la estabilidad del proyecto.</li><li>Revisión de código: Facilita la revisión y discusión de cambios antes de integrarlos.</li><li>Releases continuas: Permite una entrega más frecuente y controlada de nuevas versiones.</li></ul>								</div>
				</div>
				<div class="elementor-element elementor-element-e72209b elementor-widget elementor-widget-heading" data-id="e72209b" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Beneficios de adoptar GitHub Flow</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-53ad2e7 elementor-widget elementor-widget-text-editor" data-id="53ad2e7" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Se presentan los siguientes como los principales beneficios:</p><ol><li><strong>Simplicidad</strong>: Un flujo fácil de entender y seguir para todos los miembros del equipo.</li><li><strong>Flexibilidad</strong>: Se adapta a diferentes tamaños de equipos y tipos de proyectos.</li><li><strong>Rápida iteración</strong>: Permite ciclos de desarrollo más cortos y ágiles.</li><li><strong>Mejor colaboración</strong>: Fomenta la discusión y revisión de código entre el equipo.</li><li><strong>Calidad mejorada</strong>: La revisión constante ayuda a mantener un alto estándar de código.</li><li><strong>Despliegue continuo (CD)</strong>: Facilita la implementación de prácticas de CI/CD.</li><li><strong>Transparencia</strong>: Todos pueden ver y contribuir al progreso del proyecto.</li></ol>								</div>
				</div>
				<div class="elementor-element elementor-element-3fe59d5 elementor-widget elementor-widget-heading" data-id="3fe59d5" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Consideraciones y desafíos</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-986fccf elementor-widget elementor-widget-text-editor" data-id="986fccf" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Aunque GitHub Flow ofrece numerosos beneficios, es importante considerar también sus limitaciones:</p><ul><li><strong>Dificultad con versiones múltiples</strong>: <span style="text-decoration: underline;">GitHub Flow está diseñado principalmente para mantener una versión principal del software</span>. Si tu producto requiere mantener y dar soporte a múltiples versiones simultáneamente (por ejemplo, para diferentes clientes o plataformas), este flujo puede resultar complicado de gestionar.</li><li><strong>Complejidad en proyectos grandes</strong>: En proyectos muy extensos o con un gran número de colaboradores, el flujo puede volverse caótico si no se gestiona cuidadosamente. La cantidad de ramas y pull requests puede ser abrumadora sin una organización adecuada.</li><li><strong>Dependencia de CI/CD</strong>: GitHub Flow funciona mejor cuando se implementa junto con prácticas robustas de Integración Continua y Despliegue Continuo (CI/CD). Establecer y mantener esta infraestructura puede ser un desafío para equipos más pequeños o con recursos limitados.</li></ul>								</div>
				</div>
				<div class="elementor-element elementor-element-8ac88d5 elementor-widget elementor-widget-heading" data-id="8ac88d5" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Conclusiones</h2>				</div>
				</div>
				<div class="elementor-element elementor-element-40345a3 elementor-widget elementor-widget-text-editor" data-id="40345a3" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>GitHub Flow ofrece un enfoque ágil y efectivo para la gestión de versiones en productos digitales. <br />Su simplicidad lo hace accesible, mientras que su potencia lo hace escalable para proyectos de cualquier tamaño. <br />Al adoptar GitHub Flow, los equipos de TI pueden mejorar su colaboración, aumentar la calidad del código y acelerar el ciclo de desarrollo, llevando sus productos digitales al siguiente nivel.<br />Por supuesto hay otras propuestas para la gestión del versionamiento , como GitFlow o GitLab Flow, que pueden aplicar en escenarios donde necesitamos más control o tenemos que dar mantenimiento a versiones específicas.</p>								</div>
				</div>
					</div>
				</div>
				</div>
		<p>The post <a href="https://softwareevolutivo.com.ec/github-flow/">GitHub Flow, una forma ligera y eficaz para gestionar tu Software</a> appeared first on <a href="https://softwareevolutivo.com.ec">Software Evolutivo</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://softwareevolutivo.com.ec/github-flow/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Apache ActiveMQ Artemis</title>
		<link>https://softwareevolutivo.com.ec/apache-activemq-artemis/</link>
					<comments>https://softwareevolutivo.com.ec/apache-activemq-artemis/#respond</comments>
		
		<dc:creator><![CDATA[Bryan Diaz]]></dc:creator>
		<pubDate>Wed, 17 Jul 2024 04:28:25 +0000</pubDate>
				<category><![CDATA[Aplicaciones Web]]></category>
		<category><![CDATA[Backend]]></category>
		<category><![CDATA[Desarrollo de Software]]></category>
		<category><![CDATA[Infrarestructura de Software]]></category>
		<category><![CDATA[Tecnología]]></category>
		<category><![CDATA[Tendencias]]></category>
		<category><![CDATA[ActiveMQArtemis]]></category>
		<category><![CDATA[JavaDevelopment]]></category>
		<category><![CDATA[MessageQueue]]></category>
		<category><![CDATA[MicroservicesCommunication]]></category>
		<category><![CDATA[ProducerConsumer]]></category>
		<guid isPermaLink="false">https://softwareevolutivo.com.ec/?p=9937</guid>

					<description><![CDATA[<p>En este artículo vamos a hablar sobre una herramienta muy popular para la comunicación entre aplicaciones llamada Apache ActiveMQ Artemis además revisaremos un ejemplo de cómo implementar su funcionamiento utilizando dos microservicios implementados con Spring Boot y Java.</p>
<p>The post <a href="https://softwareevolutivo.com.ec/apache-activemq-artemis/">Apache ActiveMQ Artemis</a> appeared first on <a href="https://softwareevolutivo.com.ec">Software Evolutivo</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="9937" class="elementor elementor-9937">
				<div class="elementor-element elementor-element-6b20a70 e-flex e-con-boxed e-con e-parent" data-id="6b20a70" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
					</div>
				</div>
		<div class="elementor-element elementor-element-37366db e-flex e-con-boxed e-con e-parent" data-id="37366db" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-09c443d elementor-widget elementor-widget-text-editor" data-id="09c443d" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>En este artículo vamos a hablar sobre una herramienta muy popular para la comunicación entre aplicaciones llamada Apache ActiveMQ Artemis, además revisaremos un ejemplo de cómo implementar su funcionamiento utilizando dos microservicios implementados con Spring Boot y Java.</p><p>A menudo, nos encontramos con eventos que suceden en nuestros sistemas y necesitamos que otros sistemas se enteren de ellos. Notificar estos eventos de manera síncrona puede generar problemas de rendimiento y disponibilidad, ya que los sistemas dependen de la respuesta inmediata de otros sistemas. En cambio, hacerlo de manera asíncrona presenta varias ventajas, como la reducción de la dependencia y el acoplamiento entre sistemas, mejorando la eficiencia y la escalabilidad de nuestras aplicaciones.</p><p>A veces, incluso tenemos procesos manuales que requieren la intervención de una persona para realizar acciones en respuesta a un evento. Con la ayuda de Apache ActiveMQ Artemis, podemos conectar nuestras aplicaciones de manera más eficiente y eliminar estos procesos manuales que no generan valor a nuestros negocios. Este tipo de productos, conocidos como MOM (Message Oriented Middleware), nos permiten implementar el asincronismo, facilitando la comunicación entre sistemas de una manera más flexible y robusta.</p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-8bec6ab e-flex e-con-boxed e-con e-parent" data-id="8bec6ab" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-181039a elementor-widget elementor-widget-heading" data-id="181039a" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Artemis</h2>				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-93f6432 e-flex e-con-boxed e-con e-parent" data-id="93f6432" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-dad8574 elementor-widget elementor-widget-text-editor" data-id="dad8574" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Comenzamos hablando sobre qué es ActiveMQ Artemis.</p><p>En términos oficiales, Apache ActiveMQ Artemis es un intermediario que facilita la comunicación entre diferentes sistemas o aplicaciones. Es de código abierto, muy popular y multiprotocolo, basado en Java. Artemis permite integrar aplicaciones multiplataforma utilizando diversos protocolos, como AMQP (Advanced Message Queuing Protocol &#8211; Protocolo Avanzado de Cola de Mensajes), JMS, MQTT, STOMP, OpenWire, entre otros. Gracias a esta variedad de protocolos, Artemis es una excelente opción para tener comunicación entre dos aplicaciones y poder pasar información de un sistema a otro cuando ocurre un evento.</p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-c143606 e-flex e-con-boxed e-con e-parent" data-id="c143606" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-6ae1967 elementor-widget elementor-widget-heading" data-id="6ae1967" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Arquitectura </h2>				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-fde5372 e-flex e-con-boxed e-con e-parent" data-id="fde5372" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-f1282bc elementor-widget elementor-widget-text-editor" data-id="f1282bc" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>La estructura utilizada es un Middleware Orientado a Mensajes (MOM), el cual permite la comunicación a través del intercambio de mensajes de forma asíncrona. Esto significa que las operaciones se llevan a cabo sin requerir que todas las partes involucradas en la comunicación estén disponibles al mismo tiempo que ocurre el envío de eventos, permitiendo así que los procesos continúen su ejecución sin esperar una respuesta inmediata.</p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-2148fe8 e-flex e-con-boxed e-con e-parent" data-id="2148fe8" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-ff809a1 elementor-widget elementor-widget-image" data-id="ff809a1" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img decoding="async" width="1024" height="377" src="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image13-1024x377.png" class="attachment-large size-large wp-image-9947" alt="" srcset="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image13-1024x377.png 1024w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image13-300x111.png 300w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image13-768x283.png 768w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image13.png 1514w" sizes="(max-width: 1024px) 100vw, 1024px" />											<figcaption class="widget-image-caption wp-caption-text">Flujo de Mensajes entre Producer y Consumer con ActiveMQ Artemis</figcaption>
										</figure>
									</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-31e7f2d e-flex e-con-boxed e-con e-parent" data-id="31e7f2d" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-8813487 elementor-widget elementor-widget-text-editor" data-id="8813487" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>En Artemis contamos con dos tipos de envío de mensajes: los mensajes que se envían a colas de tipo anycast y los de tipo multicast.</p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-083a3f0 e-flex e-con-boxed e-con e-parent" data-id="083a3f0" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-48070bd elementor-widget elementor-widget-text-editor" data-id="48070bd" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><strong>Anycast:</strong> Conocido como punto a punto (Point-to-Point), en este tipo de cola, varios consumidores están a la escucha de la misma cola y van leyendo los mensajes a medida que llegan. Sin embargo, no todos los consumidores pueden leer el mismo mensaje al mismo tiempo.</p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-dca52e7 e-flex e-con-boxed e-con e-parent" data-id="dca52e7" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-5db2581 elementor-widget elementor-widget-image" data-id="5db2581" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img decoding="async" width="1024" height="390" src="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image15.png" class="attachment-large size-large wp-image-9948" alt="" srcset="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image15.png 1024w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image15-300x114.png 300w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image15-768x293.png 768w" sizes="(max-width: 1024px) 100vw, 1024px" />											<figcaption class="widget-image-caption wp-caption-text">Envío de Mensaje Anycast en ActiveMQ Artemis</figcaption>
										</figure>
									</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-67f0fdd e-flex e-con-boxed e-con e-parent" data-id="67f0fdd" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-85088b1 elementor-widget elementor-widget-text-editor" data-id="85088b1" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><b>Multicast</b>: Es un modo de distribución de tipo publicación-suscripción (pub/sub). Cada mensaje que se envía a una dirección de tipo multicast se replica a las colas que contienen cada sistema que esté a la escucha de los mismos. Como se muestra en la gráfica, aquí tenemos dos consumidores y ambos se enterarán del mismo mensaje al mismo tiempo.</p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-6b2f48e e-flex e-con-boxed e-con e-parent" data-id="6b2f48e" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-cf0e1fe elementor-widget elementor-widget-image" data-id="cf0e1fe" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="1024" height="389" src="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image8.png" class="attachment-large size-large wp-image-9949" alt="" srcset="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image8.png 1025w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image8-300x114.png 300w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image8-768x291.png 768w" sizes="(max-width: 1024px) 100vw, 1024px" />											<figcaption class="widget-image-caption wp-caption-text">Envío de Mensaje Multicast en ActiveMQ Artemis</figcaption>
										</figure>
									</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-91d1b70 e-flex e-con-boxed e-con e-parent" data-id="91d1b70" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-bd4fbb0 elementor-widget elementor-widget-text-editor" data-id="bd4fbb0" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Para el desarrollo de este blog, se trabajará con colas de tipo anycast.</p><p>La versión que utilizaremos de ActiveMQ Artemis será la última hasta la fecha de este blog, que es la 2.35. Podemos buscarla en DockerHub como se puede observar en la imagen.</p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-a0a3b8b e-flex e-con-boxed e-con e-parent" data-id="a0a3b8b" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-cd7118d elementor-widget elementor-widget-image" data-id="cd7118d" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="1024" height="748" src="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image4-1024x748.png" class="attachment-large size-large wp-image-9950" alt="" srcset="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image4-1024x748.png 1024w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image4-300x219.png 300w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image4-768x561.png 768w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image4.png 1393w" sizes="(max-width: 1024px) 100vw, 1024px" />											<figcaption class="widget-image-caption wp-caption-text">ActiveMQ Artemis en DockerHub</figcaption>
										</figure>
									</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-f36cf0b e-flex e-con-boxed e-con e-parent" data-id="f36cf0b" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-a32b2d2 elementor-widget elementor-widget-heading" data-id="a32b2d2" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Spring Boot</h2>				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-f9427a5 e-flex e-con-boxed e-con e-parent" data-id="f9427a5" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-0b2b577 elementor-widget elementor-widget-text-editor" data-id="0b2b577" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Para este blog vamos a trabajar con microservicios de Spring Boot, utilizaremos Maven y el lenguaje Java. La última versión de Spring Boot hasta la fecha de este blog es 3.3.1, y la versión de Java es 21. Agregaremos ActiveMQ Artemis a los proyectos. Los proyectos tienen el nombre de &#8220;producer&#8221; y &#8220;consumer&#8221;. El producer es el encargado de enviar el mensaje a Artemis y crear la cola en Artemis, y el consumer es el encargado de suscribirse a esa cola y leer los mensajes que envíe el producer.</p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-3ca324d e-flex e-con-boxed e-con e-parent" data-id="3ca324d" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-bb58d69 elementor-widget elementor-widget-image" data-id="bb58d69" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="1024" height="527" src="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image19-1024x527.png" class="attachment-large size-large wp-image-9951" alt="" srcset="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image19-1024x527.png 1024w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image19-300x154.png 300w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image19-768x395.png 768w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image19-1536x790.png 1536w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image19.png 1613w" sizes="(max-width: 1024px) 100vw, 1024px" />											<figcaption class="widget-image-caption wp-caption-text">Creación de Proyecto en Spring Initializr para Producer</figcaption>
										</figure>
									</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-110a9af e-flex e-con-boxed e-con e-parent" data-id="110a9af" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-c79dd84 elementor-widget elementor-widget-image" data-id="c79dd84" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="1024" height="527" src="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image6-1024x527.png" class="attachment-large size-large wp-image-9952" alt="" srcset="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image6-1024x527.png 1024w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image6-300x154.png 300w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image6-768x395.png 768w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image6-1536x790.png 1536w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image6.png 1613w" sizes="(max-width: 1024px) 100vw, 1024px" />											<figcaption class="widget-image-caption wp-caption-text">Creación de Proyecto en Spring Initializr para Consumer</figcaption>
										</figure>
									</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-2184605 e-flex e-con-boxed e-con e-parent" data-id="2184605" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-d6f6f81 elementor-widget elementor-widget-heading" data-id="d6f6f81" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Escenario a Resolver</h2>				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-806c8be e-flex e-con-boxed e-con e-parent" data-id="806c8be" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-42cd513 elementor-widget elementor-widget-text-editor" data-id="42cd513" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>En un hospital, hay dos sistemas involucrados en la gestión de camas que funcionan de la siguiente forma:</p>								</div>
				</div>
				<div class="elementor-element elementor-element-e3c4945 elementor-icon-list--layout-traditional elementor-list-item-link-full_width elementor-widget elementor-widget-icon-list" data-id="e3c4945" data-element_type="widget" data-e-type="widget" data-widget_type="icon-list.default">
				<div class="elementor-widget-container">
							<ul class="elementor-icon-list-items">
							<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="fas fa-chevron-circle-right"></i>						</span>
										<span class="elementor-icon-list-text">El Sistema A, encargado de registrar la disponibilidad de camas cuando un paciente abandona la sala de emergencias.</span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="fas fa-chevron-circle-right"></i>						</span>
										<span class="elementor-icon-list-text">El Sistema B, monitorea la ocupación de camas en todo el hospital.</span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="fas fa-chevron-circle-right"></i>						</span>
										<span class="elementor-icon-list-text">Actualmente, cuando el Sistema A registra que una cama está disponible, una enfermera debe ingresar manualmente esta información en el Sistema B.</span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="fas fa-chevron-circle-right"></i>						</span>
										<span class="elementor-icon-list-text">Se busca una mejora para sincronizar automáticamente estos sistemas, de modo que cualquier actualización en el Sistema A se refleje instantáneamente en el Sistema B, eliminando la necesidad de registros manuales.</span>
									</li>
						</ul>
						</div>
				</div>
				<div class="elementor-element elementor-element-83f6a20 elementor-widget elementor-widget-text-editor" data-id="83f6a20" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Para desarrollar este requerimiento, los proyectos que creamos en Spring Boot serán: el producer como nuestro <b>Sistema A</b> y el consumer como nuestro <b>Sistema B.</b></p><p>En el proyecto que creamos en Spring, al agregar la dependencia de Docker y ActiveMQ Artemis, se genera un archivo <b>compose.yaml</b><b>.</b> Utilizaremos este archivo para levantar nuestro contenedor de Artemis. En el proyecto producer, como es el que va a generar el evento, editaremos el archivo <b>compose.yaml</b>, añadiendo la siguiente información:</p>								</div>
				</div>
				<div class="elementor-element elementor-element-e3e5010 elementor-icon-list--layout-traditional elementor-list-item-link-full_width elementor-widget elementor-widget-icon-list" data-id="e3e5010" data-element_type="widget" data-e-type="widget" data-widget_type="icon-list.default">
				<div class="elementor-widget-container">
							<ul class="elementor-icon-list-items">
							<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="fas fa-chevron-circle-right"></i>						</span>
										<span class="elementor-icon-list-text">El nombre del contenedor de Artemis, </span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="fas fa-chevron-circle-right"></i>						</span>
										<span class="elementor-icon-list-text">La versión 2.35 (la última hasta la fecha de este blog),</span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="fas fa-chevron-circle-right"></i>						</span>
										<span class="elementor-icon-list-text">Las credenciales para el ingreso a la consola de Artemis y</span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="fas fa-chevron-circle-right"></i>						</span>
										<span class="elementor-icon-list-text">Los puertos donde se ejecuta.</span>
									</li>
						</ul>
						</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-b3b4dfc e-flex e-con-boxed e-con e-parent" data-id="b3b4dfc" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-877ab49 elementor-widget elementor-widget-image" data-id="877ab49" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="360" height="205" src="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/Screenshot-from-2024-07-15-10-44-00.png" class="attachment-large size-large wp-image-9975" alt="" srcset="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/Screenshot-from-2024-07-15-10-44-00.png 360w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/Screenshot-from-2024-07-15-10-44-00-300x171.png 300w" sizes="(max-width: 360px) 100vw, 360px" />											<figcaption class="widget-image-caption wp-caption-text">Configuración YAML para Levantar ActiveMQ Artemis en Docker</figcaption>
										</figure>
									</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-aa662d0 e-flex e-con-boxed e-con e-parent" data-id="aa662d0" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-3b3b5d7 elementor-widget elementor-widget-text-editor" data-id="3b3b5d7" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Para levantar el contenedor de Artemis con las modificaciones realizadas al archivo compose.yaml, en este blog se ejecutará con <a href="https://docs.podman.io/en/latest/" target="_blank" rel="noopener">Podman</a> porque la práctica se está realizando en un sistema operativo Fedora, que ya lo incluye. Pero si cuentan con Docker también pueden utilizarlo, no habría problema. Ejecutamos nuestro archivo desde la ubicación donde se encuentra nuestro archivo compose.yaml y ejecutamos:</p><p><b><i>podman-compose -f compose.yaml up</i></b><i> </i></p><p>o con Docker:</p><p><b><i>docker compose -f compose.yaml up</i></b></p><p>Esto comenzará a descargar la imagen de Artemis.</p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-3d60b7e e-flex e-con-boxed e-con e-parent" data-id="3d60b7e" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-19a3c3d elementor-widget elementor-widget-image" data-id="19a3c3d" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="1024" height="319" src="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image12-1024x319.png" class="attachment-large size-large wp-image-9955" alt="" srcset="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image12-1024x319.png 1024w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image12-300x94.png 300w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image12-768x240.png 768w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image12.png 1093w" sizes="(max-width: 1024px) 100vw, 1024px" />											<figcaption class="widget-image-caption wp-caption-text">Descarga de Imagen de ActiveMQ Artemis</figcaption>
										</figure>
									</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-0ee1d13 e-flex e-con-boxed e-con e-parent" data-id="0ee1d13" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-a17ee75 elementor-widget elementor-widget-image" data-id="a17ee75" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="1024" height="334" src="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image16-1024x334.png" class="attachment-large size-large wp-image-9956" alt="" srcset="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image16-1024x334.png 1024w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image16-300x98.png 300w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image16-768x250.png 768w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image16.png 1289w" sizes="(max-width: 1024px) 100vw, 1024px" />											<figcaption class="widget-image-caption wp-caption-text">Contenedor de ActiveMQ Artemis Levantado</figcaption>
										</figure>
									</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-f15abd5 e-flex e-con-boxed e-con e-parent" data-id="f15abd5" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-72e8c30 elementor-widget elementor-widget-text-editor" data-id="72e8c30" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Una vez que en los logs salga un mensaje como el siguiente: <b>AMQ241004: Artemis Console available at link</b>, podemos ingresar a un navegador y acceder a la URL <b>localhost:8161</b> para acceder a la pantalla de Artemis.</p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-65b4866 e-flex e-con-boxed e-con e-parent" data-id="65b4866" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-22dcfa9 elementor-widget elementor-widget-image" data-id="22dcfa9" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="1024" height="656" src="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image14-1024x656.jpg" class="attachment-large size-large wp-image-9957" alt="" srcset="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image14-1024x656.jpg 1024w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image14-300x192.jpg 300w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image14-768x492.jpg 768w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image14-390x250.jpg 390w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image14.jpg 1443w" sizes="(max-width: 1024px) 100vw, 1024px" />											<figcaption class="widget-image-caption wp-caption-text">Pantalla de Logueo de ActiveMQ Artemis en Navegador</figcaption>
										</figure>
									</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-206cb9c e-flex e-con-boxed e-con e-parent" data-id="206cb9c" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-5c574d9 elementor-widget elementor-widget-text-editor" data-id="5c574d9" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Las credenciales serán las que configuramos en nuestro archivo compose.yaml, en este caso artemis como username y artemis como password.</p><p>Una vez dentro de la consola, podemos observar las versiones de Artemis y navegar por el mismo.</p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-f7c0c48 e-flex e-con-boxed e-con e-parent" data-id="f7c0c48" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-35e4459 elementor-widget elementor-widget-image" data-id="35e4459" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="1024" height="691" src="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image9-1024x691.png" class="attachment-large size-large wp-image-9958" alt="" srcset="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image9-1024x691.png 1024w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image9-300x203.png 300w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image9-768x518.png 768w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image9.png 1477w" sizes="(max-width: 1024px) 100vw, 1024px" />											<figcaption class="widget-image-caption wp-caption-text">Versión de ActiveMQ Artemis</figcaption>
										</figure>
									</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-773fddf e-flex e-con-boxed e-con e-parent" data-id="773fddf" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-42d38b5 elementor-widget elementor-widget-image" data-id="42d38b5" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="1024" height="473" src="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image2-1024x473.png" class="attachment-large size-large wp-image-9959" alt="" srcset="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image2-1024x473.png 1024w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image2-300x139.png 300w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image2-768x355.png 768w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image2-1536x710.png 1536w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image2.png 1937w" sizes="(max-width: 1024px) 100vw, 1024px" />											<figcaption class="widget-image-caption wp-caption-text">Pantalla de Inicio de ActiveMQ Artemis</figcaption>
										</figure>
									</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-6f5112e e-flex e-con-boxed e-con e-parent" data-id="6f5112e" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-1e55df2 elementor-widget elementor-widget-text-editor" data-id="1e55df2" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Se debe deshabilitar el Docker Compose de los proyectos Spring Boot, en el archivo de propiedades application.properties colocar:</p><p><em>spring.docker.compose.enabled=false</em></p><p>Para que no se levante Artemis cada que se ejecute el proyecto, sino que se levante una única vez cuando nosotros lo necesitemos.</p><p>Para poder enviar el evento desde el <strong>Sistema A</strong> al <strong>Sistema B</strong>, necesitamos un método que nos ayude con el envío. En este caso, hemos creado el método pushRequestPaymentOrder (puedes darle cualquier nombre). Primero, creamos nuestro DTO que contendrá la información que necesita el <strong>Sistema B</strong>. Para nuestro caso planteado, vamos a enviar un mensaje que indique que la cama está disponible y el ID de la cama correspondiente.</p><p>Utilizamos el atributo de clase que inyectamos de JmsTemplate, una clase de Spring que facilita el envío y recepción de mensajes a través de JMS. Utilizamos el método convertAndSend, que convierte el objeto DTO en un mensaje en formato JSON y lo envía a TopicDemo, que es el nombre de la cola a la que se envía el mensaje.</p><p>El método pushRequestPaymentOrder se llama desde la lógica de negocio en el sistema cuando se necesita encolar información. Por ejemplo, cuando se detecta que una cama está disponible, se invoca este método para enviar la información al <strong>Sistema B</strong>.</p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-d55680b e-flex e-con-boxed e-con e-parent" data-id="d55680b" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-6a9d919 elementor-widget elementor-widget-image" data-id="6a9d919" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="664" height="494" src="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image11.png" class="attachment-large size-large wp-image-9964" alt="" srcset="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image11.png 664w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image11-300x223.png 300w" sizes="(max-width: 664px) 100vw, 664px" />											<figcaption class="widget-image-caption wp-caption-text">Programación para Encolar Mensajes en ActiveMQ Artemis</figcaption>
										</figure>
									</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-3bbdc0d e-flex e-con-boxed e-con e-parent" data-id="3bbdc0d" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-39123a1 elementor-widget elementor-widget-text-editor" data-id="39123a1" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Para que podamos observar la información de ese mensaje en Artemis, debemos tener en nuestro producer lo siguiente:</p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-026764e e-flex e-con-boxed e-con e-parent" data-id="026764e" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-6834c1e elementor-widget elementor-widget-image" data-id="6834c1e" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="735" height="231" src="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/Screenshot-from-2024-07-15-08-57-43.png" class="attachment-large size-large wp-image-9965" alt="" srcset="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/Screenshot-from-2024-07-15-08-57-43.png 735w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/Screenshot-from-2024-07-15-08-57-43-300x94.png 300w" sizes="(max-width: 735px) 100vw, 735px" />											<figcaption class="widget-image-caption wp-caption-text">Método de Transformación a JSON antes de Encolar en ActiveMQ Artemis</figcaption>
										</figure>
									</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-b6c1458 e-flex e-con-boxed e-con e-parent" data-id="b6c1458" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-10f7c44 elementor-widget elementor-widget-text-editor" data-id="10f7c44" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>El convertidor se utiliza tanto en el productor como en el consumidor para manejar la transformación del DTO. En el Sistema A, el convertidor transforma el DTO de un objeto Java a JSON antes de enviarlo a Artemis. Luego, cuando consumimos el evento en el Sistema B, el convertidor transforma el JSON almacenado en Artemis de vuelta a un objeto Java. Esto asegura que los datos se mantengan consistentes y fácilmente manejables a lo largo del proceso de comunicación entre sistemas.</p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-0ea826a e-flex e-con-boxed e-con e-parent" data-id="0ea826a" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-ae4ab64 elementor-widget elementor-widget-image" data-id="ae4ab64" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="1024" height="390" src="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image7-1024x390.png" class="attachment-large size-large wp-image-9966" alt="" srcset="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image7-1024x390.png 1024w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image7-300x114.png 300w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image7-768x293.png 768w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image7-1536x586.png 1536w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image7.png 1907w" sizes="(max-width: 1024px) 100vw, 1024px" />											<figcaption class="widget-image-caption wp-caption-text">Confirmación de Llegada de Mensaje en ActiveMQ Artemis</figcaption>
										</figure>
									</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-058d6ff e-flex e-con-boxed e-con e-parent" data-id="058d6ff" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-0be212a elementor-widget elementor-widget-image" data-id="0be212a" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="1024" height="537" src="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image3-1024x537.png" class="attachment-large size-large wp-image-9967" alt="" srcset="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image3-1024x537.png 1024w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image3-300x157.png 300w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image3-768x403.png 768w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image3-1536x805.png 1536w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image3.png 1906w" sizes="(max-width: 1024px) 100vw, 1024px" />											<figcaption class="widget-image-caption wp-caption-text">Detalle del Mensaje en ActiveMQ Artemis</figcaption>
										</figure>
									</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-5e5570d e-flex e-con-boxed e-con e-parent" data-id="5e5570d" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-6addc1b elementor-widget elementor-widget-text-editor" data-id="6addc1b" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Una vez confirmado que nuestro evento llegó con normalidad a Artemis y podemos observar su información, lo siguiente es levantar nuestro Sistema B, que en este caso sería nuestro consumidor. Debemos configurarlo para que esté a la escucha de los eventos que lleguen a una cola específica para poder leerlos y acceder a su información.</p><p>Eso lo realizamos de la siguiente manera:</p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-4423146 e-flex e-con-boxed e-con e-parent" data-id="4423146" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-3aaf924 elementor-widget elementor-widget-image" data-id="3aaf924" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="551" height="214" src="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/Screenshot-from-2024-07-15-09-13-16.png" class="attachment-large size-large wp-image-9968" alt="" srcset="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/Screenshot-from-2024-07-15-09-13-16.png 551w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/Screenshot-from-2024-07-15-09-13-16-300x117.png 300w" sizes="(max-width: 551px) 100vw, 551px" />											<figcaption class="widget-image-caption wp-caption-text">Programación para Consumir un Mensaje de una Cola en ActiveMQ Artemis</figcaption>
										</figure>
									</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-06cb64b e-flex e-con-boxed e-con e-parent" data-id="06cb64b" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-e630d65 elementor-widget elementor-widget-text-editor" data-id="e630d65" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Creamos nuestro método que tiene la etiqueta <strong>@JmsListener</strong>, que indica que está a la escucha de lo que llegue a esa dirección de cola, llamada TopicDemo, que es el nombre de la cola donde el producer envió el evento. Pero como se mencionó anteriormente, al momento de leer el evento, está leyendo un valor tipo JSON, por lo que queremos que lo transforme al objeto que necesitamos. Para ello, aquí también utilizamos el método <strong>jacksonJmsMessageConverter</strong>.</p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-daefc47 e-flex e-con-boxed e-con e-parent" data-id="daefc47" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-a793d97 elementor-widget elementor-widget-image" data-id="a793d97" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="894" height="605" src="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image18-1.png" class="attachment-large size-large wp-image-9969" alt="" srcset="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image18-1.png 894w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image18-1-300x203.png 300w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image18-1-768x520.png 768w" sizes="(max-width: 894px) 100vw, 894px" />											<figcaption class="widget-image-caption wp-caption-text">Método para Consumir Mensaje y Transformación de JSON a Objeto</figcaption>
										</figure>
									</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-3492aa2 e-flex e-con-boxed e-con e-parent" data-id="3492aa2" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-553375b elementor-widget elementor-widget-text-editor" data-id="553375b" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Como podemos ver en los logs, al levantar este microservicio se hará el consumo del mensaje que representa el evento. Ya tenemos que la cama está disponible, y lo siguiente sería actualizar en el Sistema B, en base de datos, que ahora la cama con el ID que acabamos de leer está disponible.</p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-4cd94b6 e-flex e-con-boxed e-con e-parent" data-id="4cd94b6" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-7a37fda elementor-widget elementor-widget-heading" data-id="7a37fda" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Resumen</h2>				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-bb377ce e-flex e-con-boxed e-con e-parent" data-id="bb377ce" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-263f5d6 elementor-widget elementor-widget-text-editor" data-id="263f5d6" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>En resumen, teníamos un Sistema A que contaba con una información, pero esa información necesitaba saberla el Sistema B. Para que el Sistema B se enterara, era necesario contar con una persona que analizara los cambios en el Sistema A y luego actualizara el Sistema B. Pero, ¿Qué ocurre si durante el almuerzo hay cambios o si la persona encargada de actualizar se distrae? No contaremos con la información actualizada en tiempo real.</p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-20726a9 e-flex e-con-boxed e-con e-parent" data-id="20726a9" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-4e78236 elementor-widget elementor-widget-image" data-id="4e78236" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="1024" height="1024" src="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image10-1024x1024.jpg" class="attachment-large size-large wp-image-9970" alt="" srcset="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image10-1024x1024.jpg 1024w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image10-300x300.jpg 300w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image10-150x150.jpg 150w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image10-768x768.jpg 768w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image10-450x450.jpg 450w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image10-106x106.jpg 106w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image10-560x560.jpg 560w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image10-70x70.jpg 70w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image10.jpg 1080w" sizes="(max-width: 1024px) 100vw, 1024px" />											<figcaption class="widget-image-caption wp-caption-text">Comunicación entre Sistema A y B a través de una Persona</figcaption>
										</figure>
									</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-4b0efb4 e-flex e-con-boxed e-con e-parent" data-id="4b0efb4" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-b950352 elementor-widget elementor-widget-text-editor" data-id="b950352" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Para eso, presentamos la solución planteada en este Blog: ahora no se requiere de una persona para hacer estas actualizaciones, sino que el Sistema A será un producer que envía eventos a Artemis cuando se desocupe alguna cama. Luego, el Sistema B será un consumer que esta a la escucha de esos eventos en Artemis para leerlos y actualizar automáticamente en sus registros que ahora la cama está disponible, asegurando así información actualizada en todo momento.</p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-bc67c64 e-flex e-con-boxed e-con e-parent" data-id="bc67c64" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-807f9ca elementor-widget elementor-widget-image" data-id="807f9ca" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="1024" height="1024" src="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image1-1024x1024.jpg" class="attachment-large size-large wp-image-9971" alt="" srcset="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image1-1024x1024.jpg 1024w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image1-300x300.jpg 300w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image1-150x150.jpg 150w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image1-768x768.jpg 768w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image1-450x450.jpg 450w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image1-106x106.jpg 106w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image1-560x560.jpg 560w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image1-70x70.jpg 70w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image1.jpg 1080w" sizes="(max-width: 1024px) 100vw, 1024px" />											<figcaption class="widget-image-caption wp-caption-text">Comunicación entre Sistema A y B a través de ActiveMQ Artemis</figcaption>
										</figure>
									</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-ed84ab3 e-con-full e-flex e-con e-parent" data-id="ed84ab3" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-1b50697 elementor-widget elementor-widget-text-editor" data-id="1b50697" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Esto fue un ejemplo con el uso de colas de tipo anycast. Próximamente se hará un blog con un escenario para colas de tipo multicast.</p><p>Si tienes alguna pregunta o comentario sobre este tema, no dudes en dejarlos abajo. Nos encantaría saber tu opinión y ayudarte con cualquier duda que puedas tener. ¡Gracias por leer!</p>								</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-92a55cb e-flex e-con-boxed e-con e-parent" data-id="92a55cb" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-29d2f9a elementor-widget elementor-widget-text-editor" data-id="29d2f9a" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><strong>Link de los proyectos:</strong></p><p><a href="https://github.com/softwareevolutivo/artemis" target="_blank" rel="noopener">https://github.com/softwareevolutivo/artemis</a></p><p><strong>Referencia:</strong></p><ul><li><a href="https://activemq.apache.org/components/artemis/documentation/2.0.0/address-model.html" target="_blank" rel="noopener">https://activemq.apache.org/components/artemis/documentation/2.0.0/address-model.html</a></li></ul><ul><li><strong>Taller en Youtube &#8211; Apache ActiveMQ Artemis ▶ ¿Qué es y para qué sirve?</strong></li></ul><p><a href="https://www.youtube.com/watch?v=Sn4TyzmtLxU" target="_blank" rel="noopener">https://www.youtube.com/watch?v=Sn4TyzmtLxU</a></p>								</div>
				</div>
				<div class="elementor-element elementor-element-23ebb18 elementor-widget elementor-widget-spacer" data-id="23ebb18" data-element_type="widget" data-e-type="widget" data-widget_type="spacer.default">
				<div class="elementor-widget-container">
							<div class="elementor-spacer">
			<div class="elementor-spacer-inner"></div>
		</div>
						</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-a3e4b03 e-flex e-con-boxed e-con e-parent" data-id="a3e4b03" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-3e4a8a0 elementor-widget elementor-widget-witr_section_call_to_ac" data-id="3e4a8a0" data-element_type="widget" data-e-type="widget" data-widget_type="witr_section_call_to_ac.default">
				<div class="elementor-widget-container">
								<!-- themex call to action 3 -->

		<div class=" all_cal_color">
			<div class="cal_to_toggole">
					<div class="themex_content col_content_width_100 text-left">
						<!-- top title -->
							
						<!-- middle title -->
														
								<h2>¿Quieres mejorar tus procesos de integración?</h2>																	
												<!-- bottom title -->
													<!-- content -->
													<p>Descubre nuestros servicios y agenda una demo. </p>		
							
					
					</div>
				<!-- button -->
						
						<div class="themex_button no_margin text-right">						
							<a href="https://softwareevolutivo.com.ec/demo-devops-kubernetes/" > 							
								Ver Demo								<!-- icon -->
																	<i class="icofont-paper-plane"></i>
																							
							</a>
						</div>
								
			</div>
		</div>
					</div>
				</div>
					</div>
				</div>
				</div>
		<p>The post <a href="https://softwareevolutivo.com.ec/apache-activemq-artemis/">Apache ActiveMQ Artemis</a> appeared first on <a href="https://softwareevolutivo.com.ec">Software Evolutivo</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://softwareevolutivo.com.ec/apache-activemq-artemis/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Descubriendo a Quarkus: ¿Que es, Características y por qué utilizarlo?</title>
		<link>https://softwareevolutivo.com.ec/descubriendo-a-quarkus/</link>
					<comments>https://softwareevolutivo.com.ec/descubriendo-a-quarkus/#respond</comments>
		
		<dc:creator><![CDATA[Bryan Diaz]]></dc:creator>
		<pubDate>Thu, 23 Mar 2023 15:43:36 +0000</pubDate>
				<category><![CDATA[Desarrollo de Software]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Infrarestructura de Software]]></category>
		<category><![CDATA[Kubernetes]]></category>
		<category><![CDATA[Tendencias]]></category>
		<category><![CDATA[Aplicaciones nativas de la nube.]]></category>
		<category><![CDATA[Java & Kotlin Framework]]></category>
		<category><![CDATA[microservicios]]></category>
		<category><![CDATA[Quarkus]]></category>
		<guid isPermaLink="false">https://softwareevolutivo.com.ec/?p=7074</guid>

					<description><![CDATA[<p>En la actualidad, Quarkus representa la pila tecnológica de Java Nativa de Kubernetes (una colección de herramientas, marcos, lenguajes de programación y bibliotecas) diseñada para GraalVM y OpenJDK HotSpot (Máquinas Virtuales de Java). </p>
<p>The post <a href="https://softwareevolutivo.com.ec/descubriendo-a-quarkus/">Descubriendo a Quarkus: ¿Que es, Características y por qué utilizarlo?</a> appeared first on <a href="https://softwareevolutivo.com.ec">Software Evolutivo</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="7074" class="elementor elementor-7074">
						<section class="elementor-section elementor-top-section elementor-element elementor-element-e0e6db6 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="e0e6db6" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-9de646c" data-id="9de646c" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap">
							</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-2ba9e87 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="2ba9e87" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-b753beb" data-id="b753beb" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-8384d36 elementor-widget elementor-widget-text-editor" data-id="8384d36" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p dir="ltr" style="line-height: 1.38;text-align: center;margin-top: 0pt;margin-bottom: 3pt"><span style="font-size: 23pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Descubriendo a Quarkus: ¿Que es, Características y por qué utilizarlo?</span></p><p><b style="font-weight: normal"> </b></p><p dir="ltr" style="line-height: 1.38;text-align: center;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"><span style="border: none;overflow: hidden;width: 225px;height: 225px"><img loading="lazy" decoding="async" style="margin-left: 0px;margin-top: 0px" src="https://lh6.googleusercontent.com/gkV80UWiso2OXVNhJfMbHlkFVS4TAgb0S2gBsM5H19vp_2DTD83hWCXvpRtP1yJ0QtKzAtq37Fz3ojdIbhmmZYsm6-_7f2iKUfLpJsZcbuJJqo83hDNwgI2I0dc-8v9uY4lk5PB3VdnJyR4-eDlAkEQ" width="225" height="225" /></span></span></p><p><b style="font-weight: normal"><br /><br /></b></p><p dir="ltr" style="line-height: 1.38;text-indent: 36pt;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 12pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">En la actualidad, Quarkus representa la pila tecnológica de Java Nativa de Kubernetes (una colección de herramientas, marcos, lenguajes de programación y bibliotecas) diseñada para GraalVM y OpenJDK HotSpot (Máquinas Virtuales de Java). </span></p><p dir="ltr" style="line-height: 1.38;text-indent: 36pt;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 12pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> </span></p><p dir="ltr" style="line-height: 1.38;text-indent: 36pt;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 12pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Los desarrolladores pueden crear aplicaciones con el mismo Stack (Estructura de Datos) y microservicios más ligeros, rápidos y escalables gracias a las mejores bibliotecas y estándares de Java utilizados en su creación. Esta herramienta permite a los desarrolladores escribir código en Java/Kotlin mientras proporciona funciones de gestión de memoria y escalabilidad. Por lo tanto, &#8220;Quarkus&#8221; ayuda a los desarrolladores a trabajar de manera proactiva y eficiente si buscan una forma eficiente de desarrollar una determinada aplicación o microservicio Java, ya que es una de las mejores opciones disponibles.</span></p><p dir="ltr" style="line-height: 1.38;text-indent: 36pt;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 12pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> </span></p><p dir="ltr" style="line-height: 1.38;text-indent: 36pt;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 12pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Quarkus es más que un proyecto de código abierto presentado por Red Hat (Que conquistó a la comunidad Java y el primer release fué presentado en el 2019), por el hecho de que combina la productividad y la alegría del desarrollador (similar a Node.js), con la velocidad y rendimiento de GO, puesto que aquello le permite a los desarrolladores Java crear soluciones tecnológicas y arquitecturas modernas futuristas. </span></p><p dir="ltr" style="line-height: 1.38;text-indent: 36pt;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 12pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> </span></p><p dir="ltr" style="line-height: 1.38;text-indent: 36pt;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 12pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Turețchi (2022) muestra que Quarkus es una pila de Java nativa para la nube, basada en contenedores y diseñada para mejorar la productividad de los desarrolladores, reducir la huella de memoria de las aplicaciones y microservicios Java. Esta herramienta brinda a los desarrolladores una experiencia de tiempo de ejecución unificada y liviana mediante el uso de GraalVM, HotSpot y otros lenguajes como Kotlin, lo que permite el desarrollo eficiente de aplicaciones modernas nativas de la nube, con un enfoque en la escalabilidad y la gestión de la memoria. En consecuencia, Quarkus, como parte de un conjunto de herramientas tecnológicas, facilita la creación rápida de servicios modernos nativos en la nube.</span></p><h1 dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 20pt;margin-bottom: 6pt"><span style="font-size: 19pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> </span></h1><h1 dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 20pt;margin-bottom: 6pt"><span style="font-size: 19pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Aplicaciones de Quarkus y por qué es actualmente el marco más popular</span></h1><div><span style="font-size: 19pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> </span></div><p dir="ltr" style="line-height: 1.38;text-indent: 36pt;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 12pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Quarkus es uno de los marcos de desarrollo nativos en la nube más populares en la industria tecnológica debido a sus características notables. Ofrece un tiempo de arranque rápido, una pequeña huella de memoria y una gestión escalable de la memoria. Por esta razón, el marco Quarkus con Kotlin es ampliamente utilizado en la industria. Su capacidad para reducir los tiempos de desarrollo también ayuda a mantener un alto rendimiento con servidores y redes de baja gama.</span></p><p dir="ltr" style="line-height: 1.38;text-indent: 36pt;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 12pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Cabe recalcar que, todos estos elementos claves, inciden en la creación  de aplicaciones con un alto grado de rapidez/eficiencia, ya que se pueden implementar y escalar fácilmente en varias arquitecturas de la nube. </span></p><p dir="ltr" style="line-height: 1.38;text-indent: 36pt;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 12pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Con las capacidades de Quarkus, las organizaciones ahora pueden desarrollar servicios modernos con mayor velocidad y eficiencia que nunca, y usando Java o Kotlin proporciona una experiencia de desarrollo fluida con un modelo de programación reactivo moderno.</span></p><p><b style="font-weight: normal"> </b></p><h1 dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 20pt;margin-bottom: 6pt"><span style="font-size: 19pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Arquitectura Empresarial Tradicional vs. Arquitectura Contenerizada.</span></h1><p dir="ltr" style="line-height: 1.38;text-indent: 36pt;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 12pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">En Quarkus, puedes desarrollar aplicaciones Java y ejecutarlas directamente en el sistema operativo subyacente sin necesidad de una máquina virtual de Java intermedia. Esto reduce significativamente el tiempo de ejecución, el consumo de memoria y otros recursos, lo que se traduce en una ejecución más eficiente y rápida de la aplicación. Quarkus lleva poco más de tres años en el mercado y ofrece una propuesta de valor para la creación de aplicaciones Java de última generación. Además, proporciona arquitecturas escalables para ejecutar aplicaciones Java y Serverless en la nube.</span></p><p><b style="font-weight: normal"> </b></p><p dir="ltr" style="line-height: 1.38;margin-top: 0pt;margin-bottom: 16pt"><span style="font-size: 15pt;font-family: Arial;color: #666666;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Arquitectura Tradicional</span></p><p dir="ltr" style="line-height: 1.38;text-indent: 36pt;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 12pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">En la arquitectura tradicional, el primer nivel consta del hardware esencial para ejecutar el segundo nivel, que es el sistema operativo, como por ejemplo una Mac OS o Linux. En el tercer nivel, se requería la instalación de la popular Máquina Virtual de Java (JVM), mientras que en el último nivel, comúnmente utilizado en entornos empresariales, se instalaba un servidor de aplicaciones. Para ello, era necesario contar con una máquina virtual de Java capaz de comunicarse con el sistema operativo subyacente y traducir toda la aplicación al sistema operativo. Esta arquitectura era común en empresas, pero con el tiempo ha dejado de ser una buena práctica debido a sus implicaciones en el desarrollo, la agilidad y la complejidad en su mantenimiento. Actualmente, existen otras arquitecturas que ofrecen soluciones más ligeras y eficientes.</span></p><p dir="ltr" style="line-height: 1.38;text-align: center;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"><span style="border: none;overflow: hidden;width: 308px;height: 321px"><img decoding="async" style="margin-left: -10.474049996130287px;margin-top: 0px" src="https://lh3.googleusercontent.com/ZJBtiVJmQVYJLQ0r6p1AB3b4Vaq_yvPbx-kYxcyFW6GxzCpBeBHyfo9EK1dKtX8xSSYkKdLPYzanN7h1hUSht4lGwOYqVeELHOnybCQyALhpwzIyCMB1dhdK3o8shTFzqwsfumnDxksGsf0Z6kATcn4" width="334.0261041431586" height="362.72693754855516" /></span></span></p><p dir="ltr" style="line-height: 1.38;text-align: center;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Figura 1: Arquitectura Java Tradicional</span></p><p><b style="font-weight: normal"> </b></p><p dir="ltr" style="line-height: 1.38;margin-top: 0pt;margin-bottom: 16pt"><span style="font-size: 15pt;font-family: Arial;color: #666666;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Arquitectura Contenerizadas.</span></p><p dir="ltr" style="line-height: 1.38;text-indent: 36pt;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 12pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">En la actualidad, la arquitectura contenerizada se ha vuelto cada vez más popular gracias a la presencia de nuevas tecnologías en el mercado. Entre ellas, la tecnología Docker (Si te interesa, en un artículo anterior compartimos los </span><a style="text-decoration: none" href="https://softwareevolutivo.com.ec/docker-primeros-pasos/"><span style="font-size: 12pt;font-family: Arial;color: #1155cc;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: underline;vertical-align: baseline">Primeros pasos en Docker.</span></a><span style="font-size: 12pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">) ha tomado un gran protagonismo en la mayoría de las empresas. Docker nos permite construir y empaquetar aplicaciones de forma portable, lo que significa que pueden ejecutarse en diferentes sistemas operativos y entornos sin necesidad de compilar la aplicación para un sistema operativo en particular. En esencia, Docker realiza una tarea similar a la que la máquina virtual de Java realizaba, pero aplicable a cualquier tipo de aplicación.</span></p><p dir="ltr" style="line-height: 1.38;text-indent: 36pt;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 12pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> </span></p><p dir="ltr" style="line-height: 1.38;text-indent: 36pt;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 12pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">En la arquitectura contenerizada, el primer nivel es el hardware, seguido por el sistema operativo, que puede ser cualquiera que tenga la capacidad de ejecutar contenedores. En el siguiente nivel, se debe instalar Docker para poder colocar nuestras aplicaciones en contenedores y ejecutarlas. Gracias a esta arquitectura, podemos tener diferentes versiones de aplicaciones sin que esto suponga un problema, ya que cada una se ejecuta en un contenedor independiente. Esto nos brinda una ventaja significativa en términos de mantenimiento y evita conflictos entre versiones de aplicativos.</span></p><p><b style="font-weight: normal"> </b></p><p dir="ltr" style="line-height: 1.38;text-align: center;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"><span style="border: none;overflow: hidden;width: 321px;height: 333px"><img loading="lazy" decoding="async" style="margin-left: 0px;margin-top: 0px" src="https://lh6.googleusercontent.com/Kz3MHw-1B25dIW4mcqnLwgYUP7Z1auXI4zZIn9Tw0Tz26gNsOYf06zw1-CYwwi6KQKhQHJVThCiFNErCaSL25sIcma7BQig69xlzFnmc8AIHAXoPXaeJ6AuUT8aMCO7Z2SHaaTSZ7tF1hD7-w4y3New" width="321" height="333" /></span></span></p><p dir="ltr" style="line-height: 1.38;text-align: center;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Figura 2: Arquitectura Contenerizadas</span></p><p><b style="font-weight: normal"> </b></p><p dir="ltr" style="line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Quarkus representa una mejora significativa en la arquitectura contenerizada al eliminar la necesidad de tener una JVM en cada contenedor para la ejecución de nuestras aplicaciones. Esto permite un despliegue más rápido y una menor utilización de recursos, lo que se traduce en una mayor eficiencia y ahorro de costos. </span></p><p><b style="font-weight: normal"> </b></p><p dir="ltr" style="line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 19pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Superpoderes de Quarkus: Gestión de Memoria y Escalabilidad</span></p><p dir="ltr" style="line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 19pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> </span></p><p dir="ltr" style="line-height: 1.38;text-indent: 36pt;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 12pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Los desarrolladores pueden utilizar Quarkus, un marco Java que les brinda las herramientas necesarias para administrar la memoria de manera efectiva y escalar sus aplicaciones. Quarkus cuenta con una variedad de herramientas de optimización de memoria, como administración de memoria dinámica, recolección de elementos no utilizados y dimensionamiento de almacenamiento dinámico. Además, Quarkus proporciona soluciones de escalabilidad para aplicaciones que necesitan escalar rápidamente hacia arriba o hacia abajo, a través de herramientas de escalabilidad como orquestación de contenedores, escalado automático y equilibrio de carga. Estas características permiten a los desarrolladores asegurarse de que sus aplicaciones puedan manejar grandes cantidades de tráfico sin problemas de rendimiento. Con la administración de memoria dinámica de Quarkus, los desarrolladores pueden realizar cambios en sus aplicaciones sobre la marcha sin necesidad de reiniciar la aplicación, lo que les permite probar rápidamente los cambios y optimizar el uso de la memoria. Es importante destacar que la variedad de herramientas de escalabilidad permite la escalabilidad horizontal, lo que permite a las aplicaciones manejar fácilmente una mayor carga de usuarios.</span></p><p><b style="font-weight: normal"> </b></p><h1 dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 20pt;margin-bottom: 6pt"><span style="font-size: 19pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Características y ventajas de Quarkus sobre los marcos tradicionales de Java</span></h1><div><span style="font-size: 19pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> </span></div><p dir="ltr" style="line-height: 1.38;text-indent: 36pt;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 12pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Quarkus es un marco independiente del tiempo de ejecución diseñado para proporcionar una forma eficiente y rentable de desarrollar aplicaciones nativas de la nube. Ofrece una gestión inteligente de la memoria y herramientas que facilitan a los desarrolladores la creación de aplicaciones con menos recursos y tiempo de arranque más rápidos que los marcos de Java tradicionales, lo que permite que las aplicaciones sean escalables de forma rápida y eficiente. Además, Quarkus tiene ventajas sobre los marcos de Java tradicionales en cuanto a la gestión inteligente de la memoria, la escalabilidad y el rendimiento mejorado, y brinda a los desarrolladores la capacidad de escribir código en cualquier idioma que elijan e implementarlo como una aplicación en contenedores, lo que lo convierte en una excelente opción para aquellos que buscan aprovechar los beneficios de la computación en la nube manteniendo el control sobre sus aplicaciones.</span></p><p><span style="background-color: transparent;color: #000000;font-family: Arial;font-size: 19pt;text-align: justify"> </span></p><p><span style="background-color: transparent;color: #000000;font-family: Arial;font-size: 19pt;text-align: justify">Desventajas de Quarkus sobre los marcos tradicionales de Java</span></p><p dir="ltr" style="line-height: 1.38;text-indent: 36pt;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 12pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Aunque Quarkus tiene muchas ventajas para el desarrollo de aplicaciones en la nube, también tiene algunas desventajas a tener en cuenta. Una de ellas es que, al ser un marco relativamente nuevo, puede haber una curva de aprendizaje para los desarrolladores que no estén familiarizados con él. Además, debido a que Quarkus utiliza tecnologías de vanguardia, puede haber algunos problemas de compatibilidad con bibliotecas y frameworks más antiguos. Por último, aunque Quarkus es altamente escalable, puede ser menos adecuado para aplicaciones que no necesiten escalabilidad horizontal, ya que esta característica puede agregar complejidad y costo al desarrollo y la implementación.</span></p><p dir="ltr" style="line-height: 1.38;text-indent: 36pt;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 12pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> </span></p><p dir="ltr" style="line-height: 1.38;text-indent: 36pt;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 12pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">El tamaño de la imagen nativa de Quarkus puede ser una desventaja para algunos usuarios, por el hecho de que puede resultar más grande que el tamaño de la imagen de una aplicación Java tradicional. Esto se debe a que la imagen nativa incluye todo lo necesario para que la aplicación se ejecute sin depender de una máquina virtual, lo que aumenta su tamaño. Sin embargo, es importante tener en cuenta que esta desventaja puede ser mitigada mediante la optimización de la imagen y la eliminación de componentes innecesarios. Además, el tamaño de la imagen puede ser compensado por las ventajas en cuanto a rendimiento y eficiencia que ofrece Quarkus.</span></p><h1 dir="ltr" style="line-height: 1.38;margin-top: 20pt;margin-bottom: 6pt"><span style="font-size: 20pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> </span></h1><h1 dir="ltr" style="line-height: 1.38;margin-top: 20pt;margin-bottom: 6pt"><span style="font-size: 20pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Conclusiones</span></h1><p dir="ltr" style="line-height: 1.38;text-indent: 36pt;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 12pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">En resumen, Quarkus es un nuevo marco de desarrollo de Java de alto rendimiento que permite a los desarrolladores crear aplicaciones empresariales de manera fácil y rápida. Con sus características únicas como la eficiencia del tiempo de ejecución, el soporte de Java y la integración con tecnologías empresariales, Quarkus es una opción atractiva para los desarrolladores que buscan crear aplicaciones rápidas y escalables. Por esa razón, vale la pena explorar Quarkus como una opción para su próximo plan de desarrollo de aplicaciones.</span></p><p><b style="font-weight: normal"> </b></p><h1 dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 20pt;margin-bottom: 6pt"><span style="background-color: transparent;color: #000000;font-family: Arial;font-size: 20pt;font-weight: 400"> </span></h1><h1 dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 20pt;margin-bottom: 6pt"><span style="background-color: transparent;color: #000000;font-family: Arial;font-size: 20pt;font-weight: 400">Referencias</span></h1><p> </p><ul style="margin-top: 0;margin-bottom: 0;padding-inline-start: 48px"><li dir="ltr" style="list-style-type: disc;font-size: 12pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt" role="presentation"><span style="font-size: 12pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">https://quarkus.io/</span></p></li><li dir="ltr" style="list-style-type: disc;font-size: 12pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt" role="presentation"><span style="font-size: 12pt;font-family: Arial;color: #000000;background-color: #ffffff;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Gascó Compte, A. (2022). Sistema de ayuda a las pruebas de fragilidad. Obtenido de: </span><a style="text-decoration: none" href="https://repositori.uji.es/xmlui/handle/10234/200566"><span style="font-size: 12pt;font-family: Arial;color: #000000;background-color: #ffffff;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">https://repositori.uji.es/xmlui/handle/10234/200566</span></a></p></li><li dir="ltr" style="list-style-type: disc;font-size: 12pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt" role="presentation"><span style="font-size: 12pt;font-family: Arial;color: #000000;background-color: #ffffff;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Turețchi, G., &amp; Cerbu, O. (2022). Aplicarea frameworkului Quarkus în cadrul arhitecturii bazate pe microservicii. In </span><span style="font-size: 12pt;font-family: Arial;color: #000000;background-color: #ffffff;font-weight: 400;font-style: italic;font-variant: normal;text-decoration: none;vertical-align: baseline">Conferinţa tehnico-ştiinţifică a studenţilor, masteranzilor şi doctoranzilor</span><span style="font-size: 12pt;font-family: Arial;color: #000000;background-color: #ffffff;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> (Vol. 1, pp. 56-59).</span></p></li></ul>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				</div>
		<p>The post <a href="https://softwareevolutivo.com.ec/descubriendo-a-quarkus/">Descubriendo a Quarkus: ¿Que es, Características y por qué utilizarlo?</a> appeared first on <a href="https://softwareevolutivo.com.ec">Software Evolutivo</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://softwareevolutivo.com.ec/descubriendo-a-quarkus/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>¿Qué opciones tiene mi empresa ante los cambios tecnológicos y del mercado?</title>
		<link>https://softwareevolutivo.com.ec/que-opciones-tiene-mi-empresa-ante-los-cambios-tecnologicos-y-del-mercado/</link>
					<comments>https://softwareevolutivo.com.ec/que-opciones-tiene-mi-empresa-ante-los-cambios-tecnologicos-y-del-mercado/#respond</comments>
		
		<dc:creator><![CDATA[Gissella Trujillo]]></dc:creator>
		<pubDate>Wed, 11 Jan 2023 16:25:55 +0000</pubDate>
				<category><![CDATA[Desarrollo de Software]]></category>
		<category><![CDATA[Infrarestructura de Software]]></category>
		<category><![CDATA[Liderazgo]]></category>
		<category><![CDATA[Negocio]]></category>
		<category><![CDATA[Tecnología]]></category>
		<category><![CDATA[Automatización]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Disponibilidad]]></category>
		<category><![CDATA[Escalabilidad]]></category>
		<guid isPermaLink="false">https://softwareevolutivo.com.ec/?p=6973</guid>

					<description><![CDATA[<p>Históricamente, las empresas han cambiado constantemente, a la par de los hábitos de consumo, y con el avance de la tecnología, este proceso de mejora continua no se ha detenido desde el inicio del comercio, la diferencia con nuestra realidad actual es la velocidad con la que las cosas cambian y la tecnología avanza. </p>
<p>Este proceso de mejora continua, que no se detiene y acelera cada día es la razón principal para cuestionar nuestra estrategia tecnológica o la carencia de ella. Otras razones importantes incluyen:</p>
<p>The post <a href="https://softwareevolutivo.com.ec/que-opciones-tiene-mi-empresa-ante-los-cambios-tecnologicos-y-del-mercado/">¿Qué opciones tiene mi empresa ante los cambios tecnológicos y del mercado?</a> appeared first on <a href="https://softwareevolutivo.com.ec">Software Evolutivo</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="6973" class="elementor elementor-6973">
						<section class="elementor-section elementor-top-section elementor-element elementor-element-f0bcadb elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="f0bcadb" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-7ce30c7" data-id="7ce30c7" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-1eb1a12 elementor-widget elementor-widget-text-editor" data-id="1eb1a12" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span style="font-weight: 400;">El éxito de las empresas es directamente proporcional a su habilidad de adoptar modelos comerciales basados en software, como parte de su estrategia y su interacción con el cliente.</span><b>Fig.1</b></p><p> </p><p><span style="font-weight: 400;">En diferentes industrias, las empresas posicionadas se ven amenazadas por empresas basadas en </span><span style="font-weight: 400;">software</span><span style="font-weight: 400;">; por lo que se ven forzadas a</span> <b>adaptarse a nuevos esquemas comerciales.</b></p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-ba82172 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="ba82172" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-51aba25" data-id="51aba25" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-7e72b8c elementor-widget elementor-widget-image" data-id="7e72b8c" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="1024" height="768" src="https://softwareevolutivo.com.ec/wp-content/uploads/2023/01/Proceso-de-Incepcion.png" class="attachment-large size-large wp-image-6986" alt="Fig.1 El éxito empresarial y el software empresarial" srcset="https://softwareevolutivo.com.ec/wp-content/uploads/2023/01/Proceso-de-Incepcion.png 1024w, https://softwareevolutivo.com.ec/wp-content/uploads/2023/01/Proceso-de-Incepcion-300x225.png 300w, https://softwareevolutivo.com.ec/wp-content/uploads/2023/01/Proceso-de-Incepcion-768x576.png 768w" sizes="(max-width: 1024px) 100vw, 1024px" />											<figcaption class="widget-image-caption wp-caption-text">Fig.1 El éxito empresarial y el software empresarial</figcaption>
										</figure>
									</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-d094d67 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="d094d67" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-78de8d7" data-id="78de8d7" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-508f527 elementor-widget elementor-widget-text-editor" data-id="508f527" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><b>¿Qué pueden hacer las empresas para hacer frente a la realidad cambiante del mercado actual?</b></p><p> </p><p><span style="font-weight: 400;">Integrar la tecnología en todas las áreas de la empresa, cambiando la manera en que opera y entrega valor a los clientes, esto implica:</span></p><ol><li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Cambios culturales.</span></li><li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Procesos Ágiles.</span></li><li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Arquitectura de la siguiente generación.</span></li></ol><p> </p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-67426bf elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="67426bf" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-9d23706" data-id="9d23706" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-1103be9 elementor-widget elementor-widget-image" data-id="1103be9" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="1024" height="768" src="https://softwareevolutivo.com.ec/wp-content/uploads/2023/01/Proceso-de-Incepcion-1.png" class="attachment-large size-large wp-image-6987" alt="Fig.2 Realidad actual" srcset="https://softwareevolutivo.com.ec/wp-content/uploads/2023/01/Proceso-de-Incepcion-1.png 1024w, https://softwareevolutivo.com.ec/wp-content/uploads/2023/01/Proceso-de-Incepcion-1-300x225.png 300w, https://softwareevolutivo.com.ec/wp-content/uploads/2023/01/Proceso-de-Incepcion-1-768x576.png 768w" sizes="(max-width: 1024px) 100vw, 1024px" />											<figcaption class="widget-image-caption wp-caption-text">Fig.2 Realidad actual
</figcaption>
										</figure>
									</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-ae4a040 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="ae4a040" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-27f7166" data-id="27f7166" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-a722559 elementor-widget elementor-widget-text-editor" data-id="a722559" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span style="font-weight: 400;">El proceso de transformación para cada empresa es diferente, por lo que depende de sus necesidades específicas. Por ejemplo: </span></p><p> </p><p><b>¿Cómo responder ante la amenaza de un nuevo competidor?</b></p><p><span style="font-weight: 400;">Ante la amenaza de un nuevo competidor disruptivo, con un nuevo software avanzado, la mejor opción para una empresa consolidada es lograr primero que sus operaciones actuales sean más eficientes. </span></p><p>La <b>Estrategia</b> de respuesta ante un mercado cambiante y nuevos competidores, abarca más que solo tecnología, implica preparar a sus <b>personas y procesos</b>; para las empresas consolidadas, un socio con experiencia en adopción de nuevas tecnologías puede agregar valor y ayudar en su proceso de mejora continua.</p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-b8da7e0 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="b8da7e0" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-7c09d1b" data-id="7c09d1b" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-3201eb3 elementor-widget elementor-widget-image" data-id="3201eb3" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="1024" height="768" src="https://softwareevolutivo.com.ec/wp-content/uploads/2023/01/Proceso-de-Incepcion-2.png" class="attachment-large size-large wp-image-6988" alt="Fig.3 Amenaza de un nuevo competidor" srcset="https://softwareevolutivo.com.ec/wp-content/uploads/2023/01/Proceso-de-Incepcion-2.png 1024w, https://softwareevolutivo.com.ec/wp-content/uploads/2023/01/Proceso-de-Incepcion-2-300x225.png 300w, https://softwareevolutivo.com.ec/wp-content/uploads/2023/01/Proceso-de-Incepcion-2-768x576.png 768w" sizes="(max-width: 1024px) 100vw, 1024px" />											<figcaption class="widget-image-caption wp-caption-text">Fig.3 Amenaza de un nuevo competidor</figcaption>
										</figure>
									</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-ce745c3 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="ce745c3" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-9c32642" data-id="9c32642" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-c93a375 elementor-widget elementor-widget-text-editor" data-id="c93a375" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><b>¿Por qué es fundamental contar con una estrategia tecnológica?</b></p><p> </p><p><span style="font-weight: 400;">Históricamente, las empresas han cambiado constantemente, a la par de los hábitos de consumo, y con el avance de la tecnología, este proceso de mejora continua no se ha detenido desde el inicio del comercio, la diferencia con nuestra realidad actual es la velocidad con la que las cosas cambian y la tecnología avanza. </span></p><p> </p><p><span style="font-weight: 400;">Este proceso de mejora continua, que no se detiene y acelera cada día es la razón principal para cuestionar nuestra estrategia tecnológica o la carencia de ella. Otras razones importantes incluyen:</span></p><p> </p><ul><li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Adopción y uso de la tecnología en todas las industrias: las empresas deben cambiar para adaptarse a los avances tecnológicos y su uso que aumenta rápidamente.</span></li><li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Competidores que son más veloces y eficientes con sus recursos, entienden mejor a sus clientes y dan un valor diferenciado: Las empresas deben actualizarse y realizar cambios iterativos y continuos para seguir siendo competitivas.</span></li><li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">El comportamiento, las demandas y las expectativas cada vez más altas de los clientes: Las empresas que no logran aprovechar las tecnologías digitales corren el riesgo de perder cuota del mercado.</span></li><li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Rápida innovación e invención: La transformación digital está cambiando la manera en que usamos la tecnología y creando nuevos competidores y nuevos modelos empresariales en todas las industrias.</span></li></ul>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-d79770e elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="d79770e" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-6b7941a" data-id="6b7941a" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-e9f3ccb elementor-widget elementor-widget-image" data-id="e9f3ccb" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="1024" height="768" src="https://softwareevolutivo.com.ec/wp-content/uploads/2023/01/Proceso-de-Incepcion-3.png" class="attachment-large size-large wp-image-6989" alt="Fig. 4 Razones por las que tener una estrategia tecnológica" srcset="https://softwareevolutivo.com.ec/wp-content/uploads/2023/01/Proceso-de-Incepcion-3.png 1024w, https://softwareevolutivo.com.ec/wp-content/uploads/2023/01/Proceso-de-Incepcion-3-300x225.png 300w, https://softwareevolutivo.com.ec/wp-content/uploads/2023/01/Proceso-de-Incepcion-3-768x576.png 768w" sizes="(max-width: 1024px) 100vw, 1024px" />											<figcaption class="widget-image-caption wp-caption-text">Fig. 4 Razones por las que tener una estrategia tecnológica</figcaption>
										</figure>
									</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-7e53113 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="7e53113" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-12e2250" data-id="12e2250" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-267ecae elementor-widget elementor-widget-text-editor" data-id="267ecae" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><b>¿Qué pueden hacer las empresas ante el cambio constante?</b></p><p> </p><p><span style="font-weight: 400;">Como se ha mencionado anteriormente, el proceso de adopción de nuevas tecnologías es diferente para cada empresa, dependiendo en la etapa que se encuentre, se pueden diferenciar 3 grandes enfoques para arrancar la estrategia y poner en marcha el camino de transformación:</span></p><p> </p><ul><li style="font-weight: 400;" aria-level="1"><b>Surgir:</b><span style="font-weight: 400;"> Adoptar una tecnología nueva para la transformación.</span></li><li style="font-weight: 400;" aria-level="1"><b>Transformar:</b><span style="font-weight: 400;"> Agilizar la transformación para convertirse en líder.</span></li><li style="font-weight: 400;" aria-level="1"><b>Liderar: </b><span style="font-weight: 400;">Innovar constantemente para seguir siendo un líder.</span></li></ul>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-c76fe6d elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="c76fe6d" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-6d55690" data-id="6d55690" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-8dfc6f0 elementor-widget elementor-widget-image" data-id="8dfc6f0" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="1024" height="768" src="https://softwareevolutivo.com.ec/wp-content/uploads/2023/01/Proceso-de-Incepcion-5.png" class="attachment-large size-large wp-image-6991" alt="Fig.5 Opciones para las empresas ante el cambio constante" srcset="https://softwareevolutivo.com.ec/wp-content/uploads/2023/01/Proceso-de-Incepcion-5.png 1024w, https://softwareevolutivo.com.ec/wp-content/uploads/2023/01/Proceso-de-Incepcion-5-300x225.png 300w, https://softwareevolutivo.com.ec/wp-content/uploads/2023/01/Proceso-de-Incepcion-5-768x576.png 768w" sizes="(max-width: 1024px) 100vw, 1024px" />											<figcaption class="widget-image-caption wp-caption-text">Fig.5 Opciones para las empresas ante el cambio constante</figcaption>
										</figure>
									</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-784ab10 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="784ab10" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-d6bbafb" data-id="d6bbafb" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-14eb165 elementor-widget elementor-widget-text-editor" data-id="14eb165" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span style="font-weight: 400;">Podemos concluir entonces que para cubrir las necesidades del mercado cambiante, haciendo frente a las tecnologías disruptivas de la competencia y a las cada vez más altas expectativas de los clientes en un mundo interconectado, es importante colocar en el mercado nuevos productos y servicios antes que nuestra competencia lo haga  y eso implica que la organización pueda responder más rápido y que las áreas internas como TI tengan la capacidad de apoyar a las áreas de negocio con las nuevas iniciativas.con escalabilidad y disponibilidad, lo cual implica crecimiento.</span></p><p> </p><p><span style="font-weight: 400;">Anteriormente, un sistema central Mainframe gestiona todas las cargas de trabajo asociadas con las aplicaciones y cuando la carga de trabajo aumentaba, la solución habitual era escalar verticalmente con más servidores (hardware). Sin embargo, por ser más demandantes, las cargas de trabajo en la actualidad se escalan horizontalmente.</span></p><p><br /><br /></p><p><b>¿Qué es la escalabilidad horizontal?</b></p><p> </p><p><span style="font-weight: 400;">La escalabilidad es la capacidad del software para adaptarse a las necesidades de rendimiento a medida que el número de usuarios crece, las transacciones aumentan y por ende la base de datos y otros componentes de las aplicaciones empiezan a sufrir degradamiento del rendimiento por las cargas crecientes.</span></p><p> </p><p><b>Cloud Computing habilita el escalamiento horizontal de los servicios TI</b><span style="font-weight: 400;">. En lugar de adquirir y mantener hardware y software de manera local, los usuarios pueden acceder a aplicaciones y recursos informáticos a través de Internet.</span></p><p> </p><p><i><span style="font-weight: 400;">El Cloud Computing, sin embargo, no es algo nuevo.</span></i></p><p> </p><p><span style="font-weight: 400;">La mayoría de las empresas utilizan al menos un servicio comercial proporcionado a través de Internet. En total, las empresas gastaron casi $230 mil millones a nivel mundial en 2019 en servicios de la nube, según Gartner, una firma de investigación, y podrían gastar hasta</span><b> $355</b><span style="font-weight: 400;"> mil millones en 2023.</span></p><p> </p><p><span style="font-weight: 400;">Existen tres proveedores líderes del mercado: Amazon Web Services (AWS), Microsoft Azure y Google Cloud Platform (GCP).</span></p><p> </p><p><b>¿Por qué las empresas buscan la nube?</b></p><p><span style="font-weight: 400;">Para competir en el mercado con una estrategia tecnológica se requiere:</span></p><ul><li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Entregas de aplicaciones a mayor velocidad</span></li><li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Reducción de costos</span></li><li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Escalabilidad adaptable</span></li></ul>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-b92459d elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="b92459d" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-0cee67e" data-id="0cee67e" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-80f8a0b elementor-widget elementor-widget-image" data-id="80f8a0b" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="1024" height="768" src="https://softwareevolutivo.com.ec/wp-content/uploads/2023/01/Proceso-de-Incepcion-6.png" class="attachment-large size-large wp-image-6992" alt="Fig.6 Cloud Computing" srcset="https://softwareevolutivo.com.ec/wp-content/uploads/2023/01/Proceso-de-Incepcion-6.png 1024w, https://softwareevolutivo.com.ec/wp-content/uploads/2023/01/Proceso-de-Incepcion-6-300x225.png 300w, https://softwareevolutivo.com.ec/wp-content/uploads/2023/01/Proceso-de-Incepcion-6-768x576.png 768w" sizes="(max-width: 1024px) 100vw, 1024px" />											<figcaption class="widget-image-caption wp-caption-text">Fig.6 Cloud Computing</figcaption>
										</figure>
									</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-7ec0a27 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="7ec0a27" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-0884837" data-id="0884837" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-d42ebad elementor-widget elementor-widget-text-editor" data-id="d42ebad" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><b>¿Qué es software nativo en la nube?</b></p><p><span style="font-weight: 400;">El desarrollo nativo de la nube (Cloud Native Development) es un enfoque para el desarrollo de aplicaciones en la nube que se centra en aprovechar al máximo las características y capacidades de la nube.</span></p><p><i><span style="font-weight: 400;">En lugar de intentar adaptar aplicaciones existentes a la nube, </span></i><i><span style="font-weight: 400;">el desarrollo nativo de la nube implica diseñar aplicaciones desde cero para ejecutarse en la nube.</span></i></p><p><b>Beneficios del desarrollo de software nativo en la nube</b></p><p><span style="font-weight: 400;">El software nativo en la nube permite crear, desplegar y administrar aplicaciones modernas en entornos de computación en la nube. Las empresas modernas buscan crear aplicaciones altamente </span><b>escalables, flexibles y resistentes</b><span style="font-weight: 400;"> que se puedan actualizar de manera rápida para satisfacer las necesidades de los clientes, utilizando herramientas y técnicas que promueven el desarrollo de aplicaciones en la infraestructura en la nube.</span></p><p><span style="font-weight: 400;">Estas tecnologías nativas en la nube permiten hacer cambios frecuentes y rápidos en las aplicaciones </span><span style="font-weight: 400;">sin interrumpir el servicio</span><span style="font-weight: 400;">, lo que proporciona a los usuarios una </span><b>ventaja competitiva y de innovación.</b></p><p><span style="font-weight: 400;">Entre los principales beneficios tenemos:</span></p><ul><li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">&#8211; Más desarrollo de aplicaciones.</span></li><li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">&#8211; Mayor velocidad de entrega.</span></li><li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">&#8211; Más flexibilidad de implementación.</span></li><li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">&#8211; Mayor calidad en el software.</span></li><li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">&#8211; Menores riesgos de implementación.</span></li><li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">&#8211; Acceso desde cualquier lugar</span></li><li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">&#8211; Escalabilidad</span></li></ul><p><b>Conclusiones</b></p><p><span style="font-weight: 400;">Para competir en la realidad actual, las empresas necesitan responder con un nuevo enfoque que brinda mayor velocidad y eficiencia a su modelo operativo. </span></p><p><span style="font-weight: 400;">El camino hacia una transformación guiada por una estrategia tecnológica, entonces, no es el mismo para cada empresa, pero ante la versatilidad de las nuevas tecnologías disruptivas que ganan su cuota mercado, la primera opción para empresas consolidadas es modernizar sus aplicaciones para obtener un nuevo valor de las inversiones en TI existentes.</span></p><p><span style="font-weight: 400;">Una solución de desarrollo de software nativo en la nube permitirá ir más allá, permitiendo sacar partido de una variedad de herramientas, frameworks, arquitecturas, etc, para:</span></p><ul><li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Aprovechar al máximo los recursos con tecnologías innovadoras como Contenedores y Microservicios</span></li><li style="font-weight: 400;" aria-level="1"><span style="font-weight: 400;">Mejorar sus operaciones habilitando prácticas pensadas para la realidad del mercado cambiante (Agile, DevOps, CI/CD)</span></li></ul><p><span style="font-weight: 400;">Estos términos que no se mencionan previamente en el blog (Contenedores, Microservicios, DevOps, CI/CD), se estarán abordando más adelante. Este es el primero de una serie de blogs sobre estrategia tecnológica, lo invitamos a leer la siguiente entrega para profundizar en el Desarrollo nativo en la nube. Si le gustaría saber más sobre un tema en particular o tiene una pregunta, lo atenderemos en la sección de comentarios. </span></p><p><b>Enlaces</b><span style="font-weight: 400;">:</span></p><p><a href="https://www.redhat.com/es/engage/devops-forrester-openinnovation-s-201902250310"><span style="font-weight: 400;">https://www.redhat.com/es/engage/devops-forrester-openinnovation-s-201902250310</span></a></p><p><a href="https://www.gartner.com/en/doc/8-steps-playbook-to-optimize-software-and-saas-negotiations-2022"><span style="font-weight: 400;">https://www.gartner.com/en/doc/8-steps-playbook-to-optimize-software-and-saas-negotiations-2022</span></a></p><p><a href="https://aws.amazon.com/es/what-is/cloud-native/#:~:text=El%20desarrollo%20nativo%20en%20la,para%20crear%20aplicaciones%20escalables%20r%C3%A1pidamente"><span style="font-weight: 400;">https://aws.amazon.com/es/what-is/cloud-native/#:~:text=El%20desarrollo%20nativo%20en%20la,para%20crear%20aplicaciones%20escalables%20r%C3%A1pidamente</span></a><span style="font-weight: 400;">.</span></p><p><a href="https://www.stormforge.io/wp-content/uploads/2020/11/451_cloud-container-kubernetes-economics-wp.pdf"><span style="font-weight: 400;">https://www.stormforge.io/wp-content/uploads/2020/11/451_cloud-container-kubernetes-economics-wp.pdf</span></a></p><p><a href="https://www.economist.com/business/2020/03/14/how-corporate-it-is-entering-the-multi-cloud"><span style="font-weight: 400;">https://www.economist.com/business/2020/03/14/how-corporate-it-is-entering-the-multi-cloud</span></a></p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				</div>
		<p>The post <a href="https://softwareevolutivo.com.ec/que-opciones-tiene-mi-empresa-ante-los-cambios-tecnologicos-y-del-mercado/">¿Qué opciones tiene mi empresa ante los cambios tecnológicos y del mercado?</a> appeared first on <a href="https://softwareevolutivo.com.ec">Software Evolutivo</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://softwareevolutivo.com.ec/que-opciones-tiene-mi-empresa-ante-los-cambios-tecnologicos-y-del-mercado/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Cucumber + Spring boot 2 + Junit 5</title>
		<link>https://softwareevolutivo.com.ec/cucumber-spring-boot-2-junit-5/</link>
					<comments>https://softwareevolutivo.com.ec/cucumber-spring-boot-2-junit-5/#comments</comments>
		
		<dc:creator><![CDATA[Johannes Caranqui]]></dc:creator>
		<pubDate>Thu, 24 Nov 2022 15:15:28 +0000</pubDate>
				<category><![CDATA[Aplicaciones Web]]></category>
		<category><![CDATA[Desarrollo de Software]]></category>
		<category><![CDATA[Tecnología]]></category>
		<category><![CDATA[Tendencias]]></category>
		<category><![CDATA[cucumber]]></category>
		<category><![CDATA[junit]]></category>
		<category><![CDATA[pruebas aceptacion cucumber]]></category>
		<category><![CDATA[springboot]]></category>
		<guid isPermaLink="false">https://softwareevolutivo.com.ec/?p=6600</guid>

					<description><![CDATA[<p>Cuando no se realiza un buen testing el costo de arreglar un error en producción es elevado, por lo cual aplicar una buena técnica de testing nos ayuda a dormir mejor en las noches, para ello, poder incluir al equipo de desarrollo y negocio en las pruebas automatizadas será un gran avance para mantener el código y los requerimientos bajo control, aquí nace las pruebas de aceptación y BDD, una buena implementación y planteamiento de requerimientos es fundamental en esta etapa de desarrollo.</p>
<p>The post <a href="https://softwareevolutivo.com.ec/cucumber-spring-boot-2-junit-5/">Cucumber + Spring boot 2 + Junit 5</a> appeared first on <a href="https://softwareevolutivo.com.ec">Software Evolutivo</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="6600" class="elementor elementor-6600">
						<section class="elementor-section elementor-top-section elementor-element elementor-element-85ce7c7 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="85ce7c7" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-e323cba" data-id="e323cba" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-4bb4968 elementor-widget elementor-widget-text-editor" data-id="4bb4968" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span style="text-align: justify;background-color: transparent;font-size: 10.5pt;font-family: Roboto, sans-serif;color: #000000;vertical-align: baseline">&nbsp;</span></p>
<p><span></span></p>
<p dir="ltr" style="line-height:1.38;text-align: justify;margin-top:0pt;margin-bottom:0pt"><span style="font-size:10.5pt;font-family:Roboto,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline">Cuando no se realiza un buen testing el costo de arreglar un error en producción es elevado, por lo cual aplicar una buena técnica de testing nos ayuda a dormir mejor en las noches</span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline">, para ello, poder incluir al equipo de desarrollo y negocio en las pruebas automatizadas será un gran avance para mantener el código y los requerimientos bajo control, aquí nace las </span><a href="https://softwareevolutivo.com.ec/espanol-iniciando-con-las-pruebas-de-aceptacion/" target="_blank">pruebas de aceptación y BDD</a><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline">, una buena implementación y planteamiento de requerimientos es fundamental en esta etapa de desarrollo.</span></p>
<p dir="ltr" style="line-height:1.38;text-align: justify;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline"><br></span></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Como antecedente, comprendamos que </span><a href="https://cucumber.io/" target="_blank" rel="noopener">Cucumber</a><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> es un software de testing TDD que nos permitirá elaborar pruebas automáticas a partir de criterios de aceptación fácilmente entendibles por los intervinientes en el proceso, el cual vamos a implementar en éste tutorial, así como </span><a href="https://spring.io/projects/spring-boot" target="_blank" rel="noopener">Spring Boot</a><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> y </span><a href="https://junit.org/junit5/" target="_blank" rel="noopener">JUnit</a><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">.</span></p>
<p><b style="font-weight: normal">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Para iniciar, necesitamos un proyecto básico con Spring Boot 2, en esta oportunidad lo crearemos con </span><a href="https://start.spring.io/" target="_blank" rel="noopener">Spring Initializer</a><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">, un API que permite la generación de proyectos con sus dependencias permitiendo simplificar esta etapa de arranque, aunque también se puede utilizar el plugin de Spring Boot de IntelliJ o Visual Studio Code.</span></p>
<p><b style="font-weight: normal"><br></b><span style="background-color: transparent;color: #000000;font-family: Arial;font-size: 11pt;text-align: justify">Usaremos la siguiente configuración:</span><b style="font-weight: normal"><br></b></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"><span style="border: none;overflow: hidden;width: 660px;height: 318px"><img loading="lazy" decoding="async" style="margin-left: 0px;margin-top: 0px" src="https://lh4.googleusercontent.com/PGX81K76UH5KJXaCqomM-fMIxQb-rSD73je9w3RP7Usa46az8TjAZzQAMl_wbN54Eou6B3cMLlbH_QbY78C5mYVO42MsYu-3c_hDEFoX2Iy5JSMpx_kFJSC0PvNvuqc7qN6G2wb1W67Z8tTeDAZkvhawRPMIFQ7CggQ15L6RudhV-8vjOV4KvcsNivU3fA" width="660" height="318"></span></span></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 9pt;font-family: Arial;color: #434343;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Configuración inicial con Spring Boot Initializer</span></p>
<p><b style="font-weight: normal">&nbsp;</b></p>
<ol style="margin-top: 0;margin-bottom: 0;padding-inline-start: 48px">
<li dir="ltr" style="list-style-type: decimal;font-size: 15pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt" role="presentation"><span style="font-size: 15pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Configuración de Cucumber y Junit 5</span></p>
</li>
</ol>
<div style="text-align: justify"><span style="color: #000000;font-family: Arial"><span style="font-size: 20px"><b>&nbsp;</b></span></span></div>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">En este paso agregaremos las dependencias de maven (librerías que se necesita para el funcionamiento correcto de Cucumber con Spring y Junit).</span></p>
<p><b style="font-weight: normal">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 12pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">1.1 Dependencias de Maven (pom.xml)</span></p>
<p><b style="font-weight: normal">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 12pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">1.1.1 Cucumber JVM&nbsp;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt">
</p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">dependency</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">groupId</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">io.cucumber</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;/</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">groupId</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">artifactId</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">cucumber-java</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;/</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">artifactId</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">version</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">7.8.1</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;/</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">version</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">scope</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">test</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;/</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">scope</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;/</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">dependency</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt">
</p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Podemos encontrar el listado de versiones </span><a href="https://mvnrepository.com/artifact/io.cucumber/cucumber-jvm" target="_blank">aquí</a><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">.</span></p>
<p><b style="font-weight: normal">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 12pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">1.1.2 Junit y Cucumber</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">dependency</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">groupId</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">io.cucumber</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;/</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">groupId</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">artifactId</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">cucumber-junit-platform-engine</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;/</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">artifactId</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">version</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">7.8.1</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;/</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">version</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">scope</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">test</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;/</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">scope</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;/</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">dependency</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt">
</p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Podemos encontrar el listado de versiones </span><a href="https://mvnrepository.com/artifact/io.cucumber/cucumber-junit-platform-engine" target="_blank">aquí</a><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">.</span></p>
<p><b style="font-weight: normal">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 12pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">1.1.3 Junit platform suite </span><span style="font-size: 12pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">(ya que la opción @Cucumber de Junit4 quedó obsoleta)</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">dependency</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">groupId</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">org.junit.platform</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;/</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">groupId</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">artifactId</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">junit-platform-suite</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;/</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">artifactId</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">version</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">1.9.0</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;/</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">version</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">scope</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">test</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;/</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">scope</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;/</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">dependency</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt">
</p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Podemos encontrar el listado de versiones </span><a href="https://mvnrepository.com/artifact/org.junit.platform/junit-platform-suite" target="_blank">aquí</a><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">.</span></p>
<p><b style="font-weight: normal">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 12pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">1.1.4 Finalmente Spring y Cucumber</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt">
</p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">dependency</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">groupId</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">io.cucumber</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;/</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">groupId</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">artifactId</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">cucumber-spring</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;/</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">artifactId</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">version</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">7.8.1</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;/</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">version</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">scope</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">test</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;/</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">scope</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;/</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">dependency</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Podemos encontrar el listado de versiones </span><a href="https://mvnrepository.com/artifact/io.cucumber/cucumber-spring" target="_blank">aquí</a><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">.</span></p>
<p><b style="font-weight: normal">&nbsp;</b></p>
<ol style="margin-top: 0;margin-bottom: 0;padding-inline-start: 48px" start="2">
<li dir="ltr" style="list-style-type: decimal;font-size: 16pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt" role="presentation"><span style="font-size: 16pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Definición e implementación de “Features”</span></p>
</li>
</ol>
<p><span style="text-align: justify;background-color: transparent;font-size: 11pt;font-family: Arial;color: #000000;vertical-align: baseline">Para esta definición, lo más usual es utilizar </span><a href="https://cucumber.io/docs/gherkin/" target="_blank">Gherkin</a><span style="text-align: justify;background-color: transparent;font-size: 11pt;font-family: Arial;color: #000000;vertical-align: baseline">; al ser de alto nivel, no es tan técnico, por lo que, es posible involucrar al personal de negocio.</span></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Creamos el archivo </span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: italic;font-variant: normal;text-decoration: none;vertical-align: baseline">demo.feature</span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> en </span><span style="font-size: 11pt;font-family: Arial;color: #4a86e8;background-color: transparent;font-weight: 400;font-style: italic;font-variant: normal;text-decoration: none;vertical-align: baseline">src/test/java/&lt;paquete&gt;/cucumber/features </span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">con el siguiente contenido:</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt">
</p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #c586c0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Feature</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">: the hello endpoint can be retrieved</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt">
</p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #c586c0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Scenario</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">: client makes call to GET greeting endpoint</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #c586c0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Given </span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">client wants to write username</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #c586c0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">When </span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">client calls greeting endpoint</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #c586c0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Then </span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">client receives hello text and username</span></p>
<p><b style="font-weight: normal">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">El contenido no debe contener muchas definiciones técnicas, recordemos que el objetivo es que todo el equipo se involucre.</span></p>
<p><b style="font-weight: normal">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Definición de pasos:</span></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;</span></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Given: </span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Dada una situación en la que configuramos el test.</span></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">When:</span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> Acción que se realiza o un evento llega.</span></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Then: </span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Espero que suceda algo o puedo comprobarlo.</span></p>
<p><b style="font-weight: normal">&nbsp;</b></p>
<ol style="margin-top: 0;margin-bottom: 0;padding-inline-start: 48px" start="3">
<li dir="ltr" style="list-style-type: decimal;font-size: 16pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt" role="presentation"><span style="font-size: 16pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Configuración de puntos de entrada</span></p>
</li>
</ol>
<p><span style="background-color: transparent;color: #000000;font-family: Arial;font-size: 11pt;text-align: justify">La siguiente clase nos sirve como punto de entrada de Cucumber para ejecutar los tests, la podemos llamar de cualquier forma pero siempre tomando en cuenta las convenciones.</span></p>
<p><span style="text-align: justify;background-color: transparent;font-size: 11pt;font-family: Arial;color: #000000;vertical-align: baseline">Creamos la clase </span><span style="text-align: justify;background-color: transparent;font-size: 11pt;font-family: Arial;color: #000000;font-weight: bold;vertical-align: baseline">CucumberTest.java</span><span style="text-align: justify;background-color: transparent;font-size: 11pt;font-family: Arial;color: #000000;vertical-align: baseline"> en </span><span style="text-align: justify;background-color: transparent;font-size: 11pt;font-family: Arial;color: #4a86e8;font-style: italic;vertical-align: baseline">src/test/java/&lt;paquete&gt;/cucumber </span><span style="text-align: justify;background-color: transparent;font-size: 11pt;font-family: Arial;color: #000000;vertical-align: baseline">con el siguiente contenido:</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt">
</p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 8.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;@</span><span style="font-size: 8.5pt;font-family: 'Courier New';color: #4ec9b0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Suite</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 8.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;@</span><span style="font-size: 8.5pt;font-family: 'Courier New';color: #4ec9b0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">IncludeEngines</span><span style="font-size: 8.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">(</span><span style="font-size: 8.5pt;font-family: 'Courier New';color: #ce9178;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&#8220;cucumber&#8221;</span><span style="font-size: 8.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">)</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 8.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;@</span><span style="font-size: 8.5pt;font-family: 'Courier New';color: #4ec9b0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">SelectClasspathResource</span><span style="font-size: 8.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">(</span><span style="font-size: 8.5pt;font-family: 'Courier New';color: #ce9178;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&#8220;com/sevolutivo/demo/cucumber/features&#8221;</span><span style="font-size: 8.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">)</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 8.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;@</span><span style="font-size: 8.5pt;font-family: 'Courier New';color: #4ec9b0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">ConfigurationParameter</span><span style="font-size: 8.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">(key = GLUE_PROPERTY_NAME, value = </span><span style="font-size: 8.5pt;font-family: 'Courier New';color: #ce9178;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&#8220;com.sevolutivo.demo.cucumber.stepDefs&#8221;</span><span style="font-size: 8.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">)</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 8.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;</span><span style="font-size: 8.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">public</span> <span style="font-size: 8.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">class</span> <span style="font-size: 8.5pt;font-family: 'Courier New';color: #4ec9b0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">CucumberTest</span><span style="font-size: 8.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> {</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 8.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;}</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt">
</p><p><b style="font-weight: normal">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10pt;font-family: 'Courier New';color: #000000;background-color: #ffff00;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">@Suite</span><span style="font-size: 10pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> y </span><span style="font-size: 10pt;font-family: 'Courier New';color: #000000;background-color: #ffff00;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">@IncludeEngines(&#8220;cucumber&#8221;)</span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> son el equivalente a la antigua </span><span style="font-size: 11pt;font-family: 'Courier New';color: #434343;background-color: transparent;font-weight: bold;font-style: italic;font-variant: normal;text-decoration: none;vertical-align: baseline">@Cucumber</span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">, pero que con la versión 7 de Cucumber quedó obsoleta.&nbsp;</span></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;</span></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">En JUnit 5, podemos definir las opciones de cucumber en el fichero </span><span style="font-size: 10pt;font-family: 'Courier New';color: #000000;background-color: #ffff00;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">junit-platform.properties</span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">, en la carpeta resources de tests.</span></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;</span></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10pt;font-family: 'Courier New';color: #000000;background-color: #ffff00;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">@SelectClasspathResource(&#8220;&lt;paquete&gt;/cucumber/features&#8221;)</span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> nos dice dentro de la carpeta resources donde tenemos los ficheros </span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: italic;font-variant: normal;text-decoration: none;vertical-align: baseline">.feature&nbsp;</span></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: italic;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;</span></p>
<p><span style="text-align: justify;font-size: 10pt;font-family: 'Courier New';color: #000000;background-color: #ffff00;font-weight: bold;vertical-align: baseline">@ConfigurationParameter(key = GLUE_PROPERTY_NAME, value = &#8220;&lt;paquete&gt;.cucumber.stepDefs&#8221;)</span><span style="text-align: justify;background-color: transparent;font-size: 11pt;font-family: Arial;color: #000000;vertical-align: baseline"> le decimos donde están las clases de pegamento, es decir, los steps.</span></p>
<p><b style="font-weight: normal">&nbsp;</b></p>
<ol style="margin-top: 0;margin-bottom: 0;padding-inline-start: 48px" start="4">
<li dir="ltr" style="list-style-type: decimal;font-size: 16pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt" role="presentation"><span style="font-size: 16pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Configuración opcional adicional (junit-platform.properties)</span></p>
</li>
</ol>
<div style="text-align: justify"><font color="#000000" face="Arial"><span style="font-size: 21.3333px"><b><br></b></span></font></div>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Creamos el archivo </span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">junit-platform.properties</span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> en </span><span style="font-size: 11pt;font-family: Arial;color: #4a86e8;background-color: transparent;font-weight: 400;font-style: italic;font-variant: normal;text-decoration: none;vertical-align: baseline">src/test/resources </span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">con el siguiente contenido:</span></p>
<p><b style="font-weight: normal">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt">
</p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;cucumber.publish.quiet=</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #ce9178;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">true</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;cucumber.publish.enabled=</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #ce9178;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">false</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;cucumber.plugin=</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #ce9178;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">pretty, html:target/cucumber-reports/Cucumber.html, &nbsp; json:target/cucumber-reports/Cucumber.json,junit:target/cucumber-reports/Cucumber.xml</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt">
</p><p><b style="font-weight: normal">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">En el ejemplo anterior, estamos quitando el banner que aparece al ejecutar cucumber y le decimos que no publique los resultados en su servicio de la nube. También estamos generando los informes localmente en formato html, json y xml en el directorio target/cucumber-reports.</span></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;</span></p>
<ol style="margin-top: 0;margin-bottom: 0;padding-inline-start: 48px" start="5">
<li dir="ltr" style="list-style-type: decimal;font-size: 16pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt" role="presentation"><span style="font-size: 16pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Configuración de Spring</span></p>
</li>
</ol>
<p><b style="font-weight: normal">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Vamos a configurar Cucumber para que pueda hacer uso del contexto de Spring con la notación </span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">@SpringBootTest</span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">, vamos a inyectar también </span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">TestRestTemplate </span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">para hacer llamadas Rest.</span></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;</span></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Creamos el archivo </span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">CucumberSpringConfiguration.java</span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> en </span><span style="font-size: 11pt;font-family: Arial;color: #4a86e8;background-color: transparent;font-weight: 400;font-style: italic;font-variant: normal;text-decoration: none;vertical-align: baseline">src/test/java/&lt;paquete&gt;/cucumber</span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">:</span></p>
<p><b style="font-weight: normal">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt">
</p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">@</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #4ec9b0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">SpringBootTest</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">(webEnvironment=</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #9cdcfe;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">SpringBootTest</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">.</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #9cdcfe;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">WebEnvironment</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">.</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #9cdcfe;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">RANDOM_PORT</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">)</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">public</span> <span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">class</span> <span style="font-size: 10.5pt;font-family: 'Courier New';color: #4ec9b0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">CucumberSpringConfiguration</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> {</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt">
</p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #4ec9b0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Autowired</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">protected</span> <span style="font-size: 10.5pt;font-family: 'Courier New';color: #4ec9b0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">TestRestTemplate</span> <span style="font-size: 10.5pt;font-family: 'Courier New';color: #9cdcfe;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">testRestTemplate</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;}</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt">
</p><p><b style="font-weight: normal">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Para comprobar el correcto funcionamiento ejecutamos </span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: #ffff00;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">./mvnw clean verify</span> <span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">en consola y el resultado debería ser similar a lo siguiente:</span></p>
<p><b style="font-weight: normal">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"><span style="border: none;overflow: hidden;width: 624px;height: 425px"><img loading="lazy" decoding="async" style="margin-left: 0px;margin-top: 0px" src="https://lh6.googleusercontent.com/A-uPXAfEVj-8thnTrTS5TFdDBaLlOSiSGxEhWgX891C1gHGHZBAZ8FW6YIfCTicPPC-aKijpAwFcmu-c6jHI61srR4emh1_aG_EAulKbc4Ko19b2W8UqOPm8R48mVjnhqLdHNSFjQbW-S5mc9Kpxw6mELhZy4qyEG4n2sFgcnyQY_3DBYG7Zna5Bp-FCdw" width="624" height="425"></span></span></p>
<p><b style="font-weight: normal">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Podemos comprobar que no encuentra la definición de pasos y nos sugiere implementarlos de acuerdo a sus recomendaciones.</span></p>
<p><b style="font-weight: normal">&nbsp;</b></p>
<ol style="margin-top: 0;margin-bottom: 0;padding-inline-start: 48px" start="6">
<li dir="ltr" style="list-style-type: decimal;font-size: 16pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt" role="presentation"><span style="font-size: 16pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Implementación de pasos (steps ó glue code)</span></p>
</li>
</ol>
<p><b style="font-weight: normal">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Los pasos o steps es el mapeo de cada paso del escenario definido en el archivo </span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: italic;font-variant: normal;text-decoration: none;vertical-align: baseline">.feature</span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">, ésta clase tiene la notación </span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">@CucumberContextConfiguration</span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> que hace que Cucumber la use como configuración de contexto de Spring.</span></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Creamos el archivo </span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">DemoSteps.java</span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> en </span><span style="font-size: 11pt;font-family: Arial;color: #4a86e8;background-color: transparent;font-weight: 400;font-style: italic;font-variant: normal;text-decoration: none;vertical-align: baseline">src/test/&lt;paquete&gt;/cucumber/stepDefs:</span></p>
<p><b style="font-weight: normal">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt">
</p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">@</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #4ec9b0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">CucumberContextConfiguration</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">public</span> <span style="font-size: 9.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">class</span> <span style="font-size: 9.5pt;font-family: 'Courier New';color: #4ec9b0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">DemoSteps</span> <span style="font-size: 9.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">extends</span> <span style="font-size: 9.5pt;font-family: 'Courier New';color: #4ec9b0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">CucumberSpringConfiguration</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> {</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt">
</p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">private</span> <span style="font-size: 9.5pt;font-family: 'Courier New';color: #4ec9b0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">String</span> <span style="font-size: 9.5pt;font-family: 'Courier New';color: #9cdcfe;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">username</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">private</span> <span style="font-size: 9.5pt;font-family: 'Courier New';color: #4ec9b0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">ResponseEntity</span> <span style="font-size: 9.5pt;font-family: 'Courier New';color: #9cdcfe;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">response</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt">
</p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #4ec9b0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Given</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">(</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #ce9178;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&#8220;client wants to write username&#8221;</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">)</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">public</span> <span style="font-size: 9.5pt;font-family: 'Courier New';color: #4ec9b0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">void</span> <span style="font-size: 9.5pt;font-family: 'Courier New';color: #dcdcaa;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">clientWantsToWriteAGreeting</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">(){</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;username = </span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #ce9178;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&#8220;user001&#8221;</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt">
</p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #4ec9b0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">When</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">(</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #ce9178;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&#8220;client calls greeting endpoint&#8221;</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">)</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">public</span> <span style="font-size: 9.5pt;font-family: 'Courier New';color: #4ec9b0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">void</span> <span style="font-size: 9.5pt;font-family: 'Courier New';color: #dcdcaa;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">clientCallsToGreetingEndpoint</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">() {</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;response = </span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #9cdcfe;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">testRestTemplate</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">.</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #dcdcaa;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">getForEntity</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">(</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #ce9178;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&#8220;/greeting/&#8221;</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> + username, </span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #9cdcfe;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">String</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">.</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #9cdcfe;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">class</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">);</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt">
</p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #4ec9b0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Then</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">(</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #ce9178;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&#8220;client receives hello text and username&#8221;</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">)</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">public</span> <span style="font-size: 9.5pt;font-family: 'Courier New';color: #4ec9b0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">void</span> <span style="font-size: 9.5pt;font-family: 'Courier New';color: #dcdcaa;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">clientReceivesHelloTextAndGreeting</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">() {</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #9cdcfe;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Assertions</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">.</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #dcdcaa;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">assertEquals</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">(</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #ce9178;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&#8220;hello &#8220;</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> + username, </span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #9cdcfe;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">response</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">.</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #dcdcaa;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">getBody</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">());</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;}</span></p>
<p><b style="font-weight: normal">&nbsp;</b></p>
<ol style="margin-top: 0;margin-bottom: 0;padding-inline-start: 48px" start="7">
<li dir="ltr" style="list-style-type: decimal;font-size: 16pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt" role="presentation"><span style="font-size: 16pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Implementación de Rest API controller</span></p>
</li>
</ol>
<p><b style="font-weight: normal">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Creamos una clase controlador </span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">DemoController.java</span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> con un método GET /greeting en </span><span style="font-size: 11pt;font-family: Arial;color: #4a86e8;background-color: transparent;font-weight: 400;font-style: italic;font-variant: normal;text-decoration: none;vertical-align: baseline">src/main/java/&lt;paquete&gt;/web</span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> que retorna una cadena con un saludo:</span></p>
<p><b style="font-weight: normal">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt">
</p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;@</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #4ec9b0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">RestController</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">public</span> <span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">class</span> <span style="font-size: 10.5pt;font-family: 'Courier New';color: #4ec9b0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">DemoController</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> {</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt">
</p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #4ec9b0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">GetMapping</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">(</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #ce9178;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&#8220;/greeting/{username}&#8221;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">)</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">public</span> <span style="font-size: 10.5pt;font-family: 'Courier New';color: #4ec9b0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">String</span> <span style="font-size: 10.5pt;font-family: 'Courier New';color: #dcdcaa;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">greeting</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">(@</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #4ec9b0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">PathVariable</span> <span style="font-size: 10.5pt;font-family: 'Courier New';color: #4ec9b0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">String</span> <span style="font-size: 10.5pt;font-family: 'Courier New';color: #9cdcfe;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">username</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">){</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #c586c0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">return</span> <span style="font-size: 10.5pt;font-family: 'Courier New';color: #ce9178;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&#8220;hello &#8220;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> + username;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;}</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt">
</p><p><b style="font-weight: normal"></b></p>
<p><b style="font-weight: normal"><br></b></p>
<p><b style="font-weight: normal"></b></p>
<ol style="margin-top: 0;margin-bottom: 0;padding-inline-start: 48px" start="8">
<li dir="ltr" style="list-style-type: decimal;font-size: 16pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt" role="presentation"><span style="font-size: 16pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Ejecución</span></p>
</li>
</ol>
<p><b style="font-weight: normal">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Una vez listo toda la implementación, ejecutar </span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: #ffff00;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">./mvnw clean verify</span> <span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">y obtendremos lo siguiente:</span></p>
<p><b style="font-weight: normal">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"><span style="border: none;overflow: hidden;width: 702px;height: 313px"><img loading="lazy" decoding="async" style="margin-left: 0px;margin-top: 0px" src="https://lh6.googleusercontent.com/Q9I6lUDruL8SJqW4CmCl7UXGGJ0fT74tUK_OtqBpnJbXoycyddTDg6qP9e2Q0XcL6stHTq9wFr4fUbMz_JWzGIWNNnBJ0hWr5R6C3GRBTM7kCThi8BrNCwaF_zgt-NOOQHqBmn1IiLddY7KbHqGhBtWdRkhTOjXHD8K6YobeUpdbwUVoV0yJoOvt32IM1g" width="702" height="313"></span></span></p>
<p><b style="font-weight: normal">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Si se usa IntelliJ Idea, al ejecutar los test de Cucumber implementados, como resultado se obtendrá algo similar a esto:</span></p>
<p><b style="font-weight: normal">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 16pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"><span style="border: none;overflow: hidden;width: 474px;height: 179px"><img loading="lazy" decoding="async" style="margin-left: 0px;margin-top: 0px" src="https://lh5.googleusercontent.com/ln0j_Ef8X-pqzln2SndI6S-ziZoFAuKXY7GJLZGdI2SMwo46JPkJQnKHees8HB0bl_io_yA0VcsSNpUEVWJUAsSlrmrFzWk-WU5dQTMTIgREla549knDl4TokFNOGno_O-YUzTkGO05u2u-zSeByj5zi0wdC28f1D6J9vTYjowW50KyliLJkIj4i2tnJ5w" width="474" height="179"></span></span></p>
<p><b style="font-weight: normal">&nbsp;</b></p>
<ol style="margin-top: 0;margin-bottom: 0;padding-inline-start: 48px" start="9">
<li dir="ltr" style="list-style-type: decimal;font-size: 16pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt" role="presentation"><span style="font-size: 16pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Conclusiones</span></p>
</li>
</ol>
<p><b style="font-weight: normal">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Los tests de aceptación son una herramienta importante si el objetivo es integrar al equipo de negocio y al equipo de desarrollo, mejorando así el planteamiento de los escenarios, requerimientos y casos de análisis.&nbsp;</span></p>
<p><b style="font-weight: normal">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">En éste tutorial hemos planteado un caso básico de implementación y la configuración de Cucumber, Spring Boot y JUnit 5 y así obtener una arquitectura básica o referencial para futuras implementaciones.</span></p>
<p><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline">El código fuente se puede encontrar en </span><a href="https://github.com/softwareevolutivo/spring-boot-cucumber" target="_blank">github.com</a><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline">.</span></p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				</div>
		<p>The post <a href="https://softwareevolutivo.com.ec/cucumber-spring-boot-2-junit-5/">Cucumber + Spring boot 2 + Junit 5</a> appeared first on <a href="https://softwareevolutivo.com.ec">Software Evolutivo</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://softwareevolutivo.com.ec/cucumber-spring-boot-2-junit-5/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>UX: Experiencia de Usuario una Prioridad en el Desarrollo de Sistemas Organizacionales</title>
		<link>https://softwareevolutivo.com.ec/ux-experiencia-de-usuario-una-prioridad-en-el-desarrollo-de-sistemas-organizacionales/</link>
					<comments>https://softwareevolutivo.com.ec/ux-experiencia-de-usuario-una-prioridad-en-el-desarrollo-de-sistemas-organizacionales/#comments</comments>
		
		<dc:creator><![CDATA[Bryan Diaz]]></dc:creator>
		<pubDate>Thu, 27 Oct 2022 21:07:21 +0000</pubDate>
				<category><![CDATA[Aplicaciones Web]]></category>
		<category><![CDATA[Desarrollo de Software]]></category>
		<category><![CDATA[Frontend]]></category>
		<category><![CDATA[Tecnología]]></category>
		<category><![CDATA[Experiencia de Usuario]]></category>
		<category><![CDATA[UX]]></category>
		<guid isPermaLink="false">https://softwareevolutivo.com.ec/?p=6552</guid>

					<description><![CDATA[<p>Actualmente, la compra o alquiler de sistemas dentro de las organizaciones a través de plataformas virtuales presenta un mayor índice de demanda, de modo que, gracias a la pandemia del COVID-19, los usuarios son más flexibles en sus acciones o tareas a la hora de buscar productos o servicios que deseen adquirir. </p>
<p>The post <a href="https://softwareevolutivo.com.ec/ux-experiencia-de-usuario-una-prioridad-en-el-desarrollo-de-sistemas-organizacionales/">UX: Experiencia de Usuario una Prioridad en el Desarrollo de Sistemas Organizacionales</a> appeared first on <a href="https://softwareevolutivo.com.ec">Software Evolutivo</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="6552" class="elementor elementor-6552">
						<section class="elementor-section elementor-top-section elementor-element elementor-element-058640b elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="058640b" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-18f6954" data-id="18f6954" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-50bead3 elementor-widget elementor-widget-text-editor" data-id="50bead3" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 12pt;margin-bottom: 12pt"><span style="font-size: 11pt;font-family: 'Times New Roman';color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Actualmente, la compra o alquiler de sistemas dentro de las organizaciones a través de plataformas virtuales presenta un mayor índice de demanda, de modo que, gracias a la pandemia del COVID-19, los usuarios son más flexibles en sus acciones o tareas a la hora de buscar productos o servicios que deseen adquirir. Razón por la cual, para efectuar una buena negociación y una venta exitosa, se necesita brindarle a sus compradores una herramienta innovadora y una experiencia de usuario rápida, instantánea, y simple para cualquier tipo de dispositivo. </span></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 12pt;margin-bottom: 12pt"><span style="font-size: 11pt;font-family: 'Times New Roman';color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Si bien es cierto, al momento de desarrollar un sistema, tenemos en cuenta todos los lineamientos necesarios para que éste cumpla con los requerimientos del cliente; no obstante, nos hacemos preguntas como: ¿Qué tan difícil será su manejo?, ¿Será agradable para los usuarios? o ¿Estará clara la información plasmada o presentada?, en fin… un sinnúmero de preguntas que en la mayoría de los casos  no consideramos de gran importancia al momento de desarrollar nuestro producto. </span></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 12pt;margin-bottom: 12pt"><span style="font-size: 11pt;font-family: 'Times New Roman';color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Es por ello que, a partir de esta iniciativa resulta de vital importancia considerar al UX como punto de partida indispensable en el desarrollo de un producto, de manera que, dicho término aparte de que se usa muy a menudo en el mundo tecnológico; es una prioridad en el desarrollo de sistemas, ya que gracias a ello los diseñadores ahora son más consciente de cómo su trabajo impacta al usuario y cuales son sus necesidades.Hay que destacar que, el trabajo del diseño de UX se centra en encontrar un equilibrio entre las necesidades del usuario, las necesidades comerciales y las capacidades técnicas, de manera que hallar el balance perfecto crea una experiencia de usuario beneficiosa y le permite al negocio alcanzar sus objetivos.</span></p><p><b style="font-weight: normal"> </b></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 12pt;margin-bottom: 12pt"><span style="font-size: 11pt;font-family: 'Times New Roman';color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">¿Qué es UX o Experiencia de Usuario? </span></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 12pt;margin-bottom: 12pt"><span style="font-size: 11pt;font-family: 'Times New Roman';color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Nielsen Norman Group, empresa estadounidense de consultoría en interfaz de usuario (UI) y experiencia de usuario define a UX como una de las experiencias de usuario más completas que coexisten a nivel global, puesto que que incluye todos los aspectos de la interacción del usuario final con la empresa, con sus servicios y con sus productos. Por ello, su término se menciona con mayor frecuencia en áreas relacionadas con tecnología, tales como teléfonos inteligentes, computadoras, software o sitios web. Se debe tener presente que, la experiencia del usuario no es solo un campo bastante nuevo, sino también un área volátil, ya que, cambia rápidamente debido a los avances tecnológicos, los nuevos tipos de interacción y las preferencias del usuario.</span></p><p> </p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 12pt;margin-bottom: 12pt"><span style="font-size: 11pt;font-family: 'Times New Roman';color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Dicho de otra manera, el UX no es nada más que la experiencia innovadora que obtiene un usuario en los distintos escenarios al momento de utilizar un producto, de manera que, dicha acción les brinda una respuesta/solución a sus preguntas o problemas. Según Yudica (2016), esto suscita porque los diseñadores se encargan de proporcionarle al internauta una variabilidad de soluciones frente a los diversos aspectos comunicativos que puede presentar el mismo con un determinado producto o servicio (incluida la usabilidad, accesibilidad, y capacidad de encontrar/aprender/recordar); por ende, su principal función no es otra cosa que hacer que el producto sea amigable, satisfactorio, accesible y útil para el usuario.</span></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 12pt;margin-bottom: 12pt"><span style="font-size: 11pt;font-family: 'Times New Roman';color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"><span style="font-size: 11pt;background-color: transparent;vertical-align: baseline"><span style="border: none;overflow: hidden;width: 539px;height: 404px"><img loading="lazy" decoding="async" style="margin-left: 0px;margin-top: 0px" src="https://lh3.googleusercontent.com/IvP07lxJ9wjM2C4QUBFExheWhu6kdK9P0kap5kYywRsFb_IT09EPWLDd_yuxzTz4sOz92RAgeHmxv5QwXEsyvW0RdyLCX6mA1EHbciPFwZjBNH-XCByXjybxD9LlU1fM0IfZZN7dB4sEWzz2htltFjwbsIm_5N3y4Cc7kBC8XZ8zYZZj3Me04oiHjQ" width="539" height="404" /></span></span><br /></span></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 12pt;margin-bottom: 12pt"><span style="font-size: 11pt;font-family: 'Times New Roman';color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Prototipos UX </span></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 12pt;margin-bottom: 12pt"><span style="font-size: 11pt;font-family: 'Times New Roman';color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Ayudan a capturar visualmente los objetivos comerciales y alinearlos con las expectativas o necesidades de los usuarios, para así,  tener conocimiento del grado de satisfacción que exhiben los mismo con el producto creado. Hay que tener en cuenta que el coste de modificar un prototipo es inferior al coste de cambiar un producto digital subido a producción, por lo que supone una ventaja de ahorro de costes durante el desarrollo.</span></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 12pt;margin-bottom: 12pt"><span style="border: none;overflow: hidden;width: 186px;height: 459px"> <img loading="lazy" decoding="async" style="margin-left: 0px;margin-top: 0px" src="https://lh4.googleusercontent.com/4pkFGn1HGFcv7nVe-F4BnbpZvyb9BTQGd5UMpGZlZAQJ98Vv9pR3yLZSwLudG7gnXwdx07P8a6nDqGBlTEH3WiH-fCB172nMUISNfDPYdLClin3oizy9M7_RVEer2UOMWi3FdHMN1qAuaaaoNq0KkmV-B168uVRTIApN4nrpUAzy8gVNIQDigDjo-g" width="186" height="459" /></span></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 12pt;margin-bottom: 12pt"><span style="font-size: 11pt;font-family: 'Times New Roman';color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">El diseño de UX no solo prioriza las necesidades del usuario, sino también las capacidades metodológicas y ausencias de un negocio, ya que no todos los individuos poseen las mismas competencias técnicas para brindar una solución ideal a cada problemática; ni todas las empresas poseen el suficiente recurso monetario para invertir constantemente en los formación técnica/profesional de todos sus colaboradores. </span></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 12pt;margin-bottom: 12pt"><span style="font-size: 11pt;font-family: 'Times New Roman';color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> Por este motivo, el trabajo del diseño de UX se centra en encontrar un equilibrio entre las necesidades del usuario, las necesidades comerciales y las capacidades técnicas, de manera que hallar el balance perfecto crea una experiencia de usuario beneficiosa (satisface sus necesidades) y le permite al negocio alcanzar sus objetivos, siempre y cuando esta se encuentre dentro de las capacidades técnicas de la empresa. </span></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 12pt;margin-bottom: 12pt"><span style="font-size: 11pt;font-family: 'Times New Roman';color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Se debe tener en cuenta que el diseño UX, es un proceso que inicia con la comprensión de los usuarios, luego con el diseño de interfaces, y, finalmente con la prueba para ver si el mismo logra satisfacer las necesidades de los usuarios; de modo que aquello representa una parte integral del proceso de desarrollo del producto. </span></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 12pt;margin-bottom: 12pt"> </p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 12pt;margin-bottom: 12pt"><span style="font-size: 11pt;font-family: 'Times New Roman';color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">A su vez, para crear un diseño fácil de usar, los diseñadores de UX deben participar en el proceso de principio a fin. Por ende, es conveniente realizar investigaciones sobre cómo los usuarios buscan un producto, navegan por las páginas, buscan detalle de los productos, e interactúan con el sistema; ya que tras la investigación y el análisis exhaustivo de los datos y registros obtenidos, deberemos de ser capaces de generar diseños y experiencias que satisfagan las necesidades de los usuarios. </span></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 12pt;margin-bottom: 12pt"><span style="font-size: 11pt;font-family: 'Times New Roman';color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Para ofrecer buenos resultados en el proceso de desarrollo de un producto se debe considerar lo siguiente: </span></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 12pt;margin-bottom: 12pt"><span style="font-size: 11pt;font-family: 'Times New Roman';color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"><span style="border: none;overflow: hidden;width: 433px;height: 323px"><img loading="lazy" decoding="async" style="margin-left: 0px;margin-top: 0px" src="https://lh6.googleusercontent.com/Rsk1lZhBnpl8_Hnh6ZPoXb9lSCjclCDs_ORhTWU2Nx-oFlwjWc2A_8uGXdfwwU3h4SP7VzytoAZP1VAUR-pP1P-eno8N7vl-_YCw4-00nfsnxrKRen890lal--uvgUf38r9_jOZYvztYOqh3e7j1eXWeMqNjhANRveKJer1wIhhs21qttYJRdLrj3A" width="433" height="323" /></span></span></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 12pt;margin-bottom: 12pt"><span style="font-size: 11pt;font-family: 'Times New Roman';color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Relación Esfuerzo – Beneficio en UX</span></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 12pt;margin-bottom: 12pt"><span style="font-size: 11pt;font-family: 'Times New Roman';color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Cuando diseñamos tomando en consideración los principios de usabilidad, lo que buscamos es reducir al mínimo las barreras de interacción, y por lo tanto el esfuerzo del usuario para completar tareas interactivas, ya que, el principal objetivo es evitar la frustración del usuario. En la mayoría de los casos el producto ideal es el que se adapta al usuario; no obstante, en ocasiones es imprescindible que sea el usuario quien se adapte al producto, de manera que se pretende reducir el tiempo de dedicación y esfuerzo para aprender cómo usarlo. Debido a aquello,  es posible analizar la experiencia de usuario únicamente en términos de facilidad de uso sin tener en consideración cuál es el beneficio o valor de uso, puesto que, la calidad e idoneidad de un diseño viene determinada por la relación esfuerzo-beneficio y es sólo cuando el beneficio o valor percibido supere el esfuerzo requerido, podremos hablar de experiencias de usuario satisfactorias.</span></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 12pt;margin-bottom: 12pt"><span style="font-size: 11pt;font-family: 'Times New Roman';color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">UX es igual a resolver problemas </span></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 12pt;margin-bottom: 12pt"><span style="font-size: 11pt;font-family: 'Times New Roman';color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Es importante pensar en el usuario en cada parte del proceso de realización de un producto, ya que, ponernos en el lugar del usuario al momento de utilizar dicho producto para conocer la forma en la que va a interactuar con el mismo,  mejora de una manera temprana los posibles problemas que se puedan generar en el  usuario con el producto terminado.Y es ahí, donde parte la importancia para UX, de llevar un proceso e involucrar al usuario en cada etapa del procedimiento, y no simplemente tener la idea de pensar en el usuario. </span></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 12pt;margin-bottom: 12pt"><span style="font-size: 11pt;font-family: 'Times New Roman';color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Diseño de experiencia no solamente se basa en satisfacer al usuario sino también a cumplir con los objetivos del negocio, el diseñador de experiencia hace de puente entre el usuario y el cliente que nos contrata.</span></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 12pt;margin-bottom: 12pt"><span style="font-size: 11pt;font-family: 'Times New Roman';color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Conclusión</span></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 12pt;margin-bottom: 12pt"><span style="font-size: 11pt;font-family: 'Times New Roman';color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">UX resulta ser de gran prioridad para las organizaciones, ya que se obtiene sistemas amigables-fáciles de usar, garantiza la fluidez-eficiencia en el diseño, y exhibe una gran demanda dentro del mercado laboral, ya que actualmente los clientes buscan constantemente satisfacer sus necesidades y solucionar sus problemas de forma breve y simple. Por ello, se caracteriza por ser una experiencia innovadora que obtiene un  usuario en los distintos escenarios al momento de utilizar un sistema, de manera que, dicha acción les brinda una respuesta/solución a sus preguntas o problemas. Cabe recalcar que, aquello suscita porque los diseñadores se encargan de proporcionarle al internauta una variabilidad de soluciones frente a los diversos aspectos comunicativos que puede presentar el mismo con un determinado producto o servicio (incluida la usabilidad, accesibilidad, y capacidad de encontrar/aprender/recordar); por ende, su principal función no es otra cosa que hacer que el producto sea amigable, satisfactorio, accesible y útil para el usuario</span></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 12pt;margin-bottom: 12pt"><span style="font-size: 11pt;font-family: 'Times New Roman';color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Por su parte, la implementación del UX se enfoca en las acciones que realiza el usuario delante de la pantalla, de manera que al tener en cuenta su uso, nivel de afectación y grado de  aceptación; no solo genera beneficios para los usuarios, sino que también  para las empresas u organizaciones, puesto que, el examinar los diferentes escenarios a los que puede estar expuesto el usuario y el brindar solución cada uno de ellos, les genera buena reputación en el mercado laboral. Teniendo presente que el diseño de experiencia no solamente se basa en satisfacer al usuario sino también a cumplir con los objetivos del negocio.</span></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 12pt;margin-bottom: 12pt"><span style="font-size: 11pt;font-family: 'Times New Roman';color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"><b style="font-weight: normal"> </b></span></p><p dir="ltr" style="line-height: 1.38;margin-top: 12pt;margin-bottom: 12pt"><span style="font-size: 11pt;font-family: 'Times New Roman';color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Referencia </span></p><p dir="ltr" style="line-height: 1.38;margin-top: 12pt;margin-bottom: 12pt"> </p><ul style="margin-top: 0;margin-bottom: 0"><li dir="ltr" style="list-style-type: disc;font-size: 12pt;font-family: 'Times New Roman';color: #0000ff;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"><p dir="ltr" style="line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt" role="presentation"><a style="text-decoration: none" href="https://yusef.es/Experiencia_de_Usuario.pdf"><span style="font-size: 12pt;font-family: 'Times New Roman';color: #0000ff;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: underline;vertical-align: baseline">https://yusef.es/Experiencia_de_Usuario.pdf</span></a></p></li><li dir="ltr" style="list-style-type: disc;font-size: 12pt;font-family: 'Times New Roman';color: #0000ff;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"><p dir="ltr" style="line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt" role="presentation"><a style="text-decoration: none" href="http://webs.ucm.es/BUCM/revcul/e-learning-innova/224/art3403.pdf"><span style="font-size: 12pt;font-family: 'Times New Roman';color: #0000ff;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: underline;vertical-align: baseline">http://webs.ucm.es/BUCM/revcul//e-learning-innova/224/art3403.pdf</span></a></p></li><li dir="ltr" style="list-style-type: disc;font-size: 12pt;font-family: 'Times New Roman';color: #0000ff;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"><p dir="ltr" style="line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt" role="presentation"><a style="text-decoration: none" href="https://blog.hubspot.es/marketing/experiencia-de-usuario-ux"><span style="font-size: 12pt;font-family: 'Times New Roman';color: #0000ff;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: underline;vertical-align: baseline">https://blog.hubspot.es/marketing/experiencia-de-usuario-ux</span></a></p></li><li dir="ltr" style="list-style-type: disc;font-size: 12pt;font-family: 'Times New Roman';color: #0000ff;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"><p dir="ltr" style="line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt" role="presentation"><a style="text-decoration: none" href="https://www.scielo.sa.cr/pdf/tem/v30s1/0379-3982-tem-30-s1-49.pdf"><span style="font-size: 12pt;font-family: 'Times New Roman';color: #0000ff;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: underline;vertical-align: baseline">https://www.scielo.sa.cr/pdf/tem/v30s1/0379-3982-tem-30-s1-49.pdf</span></a></p></li><li dir="ltr" style="list-style-type: disc;font-size: 12pt;font-family: 'Times New Roman';color: #0000ff;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"><p dir="ltr" style="line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt" role="presentation"><a style="text-decoration: none" href="https://amgerpro.com/el-53-de-nosotros-abandonara-una-web-si-tarda-mas-de-3-segundos-en-cargar/"><span style="font-size: 12pt;font-family: 'Times New Roman';color: #0000ff;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: underline;vertical-align: baseline">https://amgerpro.com/el-53-de-nosotros-abandonara-una-web-si-tarda-mas-de-3-segundos-en-cargar/</span></a></p></li><li dir="ltr" style="list-style-type: disc;font-size: 12pt;font-family: 'Times New Roman';color: #0000ff;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"><p dir="ltr" style="line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt" role="presentation"><a style="text-decoration: none" href="https://www.scielo.sa.cr/pdf/tem/v30s1/0379-3982-tem-30-s1-49.pdf"><span style="font-size: 12pt;font-family: 'Times New Roman';color: #0000ff;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: underline;vertical-align: baseline">https://www.scielo.sa.cr/pdf/tem/v30s1/0379-3982-tem-30-s1-49.pdf</span></a></p></li><li dir="ltr" style="list-style-type: disc;font-size: 12pt;font-family: 'Times New Roman';color: #0000ff;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"><p dir="ltr" style="line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt" role="presentation"><a style="text-decoration: none" href="https://freed.tools/blogs/ux-cx/rediseno-sistema-colaborativo"><span style="font-size: 12pt;font-family: 'Times New Roman';color: #0000ff;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: underline;vertical-align: baseline">https://freed.tools/blogs/ux-cx/rediseno-sistema-colaborativ</span></a>o</p></li></ul>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				</div>
		<p>The post <a href="https://softwareevolutivo.com.ec/ux-experiencia-de-usuario-una-prioridad-en-el-desarrollo-de-sistemas-organizacionales/">UX: Experiencia de Usuario una Prioridad en el Desarrollo de Sistemas Organizacionales</a> appeared first on <a href="https://softwareevolutivo.com.ec">Software Evolutivo</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://softwareevolutivo.com.ec/ux-experiencia-de-usuario-una-prioridad-en-el-desarrollo-de-sistemas-organizacionales/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>JBoss EAP: Configuración de la memoria</title>
		<link>https://softwareevolutivo.com.ec/jboss-eap-configuracion-de-la-memoria/</link>
					<comments>https://softwareevolutivo.com.ec/jboss-eap-configuracion-de-la-memoria/#respond</comments>
		
		<dc:creator><![CDATA[Jorge Aguilar]]></dc:creator>
		<pubDate>Thu, 13 Oct 2022 20:41:50 +0000</pubDate>
				<category><![CDATA[Desarrollo de Software]]></category>
		<category><![CDATA[Tecnología]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[jboss]]></category>
		<category><![CDATA[jvm]]></category>
		<category><![CDATA[memoria]]></category>
		<guid isPermaLink="false">https://softwareevolutivo.com.ec/?p=6509</guid>

					<description><![CDATA[<p>Una de las tareas de afinamiento más comunes luego de comenzar a operar un servidor de aplicaciones Java suele ser el ajuste de la memoria que utiliza el Java Virtual Machine (JVM). Por defecto, cierta cantidad de memoria es asignada al momento de iniciar el JVM, esta memoria es utilizada para alojar los objetos creados por las aplicaciones y para mantener otra información creada durante la ejecución de las mismas. </p>
<p>The post <a href="https://softwareevolutivo.com.ec/jboss-eap-configuracion-de-la-memoria/">JBoss EAP: Configuración de la memoria</a> appeared first on <a href="https://softwareevolutivo.com.ec">Software Evolutivo</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="6509" class="elementor elementor-6509">
						<section class="elementor-section elementor-top-section elementor-element elementor-element-8f2d4b6 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="8f2d4b6" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-a9a3a8b" data-id="a9a3a8b" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-5aa45fb elementor-widget elementor-widget-text-editor" data-id="5aa45fb" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><br></p>
<p dir="ltr" style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;"><span style="background-color: transparent; font-size: 11pt; font-family: Arial; color: rgb(0, 0, 0); font-variant-numeric: normal; font-variant-east-asian: normal; vertical-align: baseline; white-space: pre-wrap;">Una de las tareas de afinamiento más comunes luego de comenzar a operar un servidor de aplicaciones Java suele ser el ajuste de la memoria que utiliza el </span><a href="https://en.wikipedia.org/wiki/Java_virtual_machine" target="_blank">Java Virtual Machine</a><span style="background-color: transparent; font-size: 11pt; font-family: Arial; color: rgb(0, 0, 0); font-variant-numeric: normal; font-variant-east-asian: normal; vertical-align: baseline; white-space: pre-wrap;"> (JVM). Por defecto, cierta cantidad de memoria es asignada al momento de iniciar el JVM, esta memoria es utilizada para alojar los objetos creados por las aplicaciones y para mantener otra información creada durante la ejecución de las mismas. El valor inicial suele ser suficiente para iniciar a operar pero ciertas aplicaciones necesitarán una mayor cantidad de recursos ya sea de entrada o con el tiempo para cubrir una mayor demanda por parte de los usuarios.</span><br></p>
<p><b style="font-weight: normal;">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Si la cantidad de memoria asignada es insuficiente para la demanda inicial de las aplicaciones o para soportar la carga que reciban éstas, entonces eventualmente se podría experimentar lentitud o la cancelación de las peticiones, llegando a la temida excepción de Java: </span><span style="font-size: 11pt; font-family: 'Courier New'; color: #000000; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">java.lang.OutOfMemoryError</span><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, que se presenta cuando el JVM es incapaz de crear un objeto en memoria y en este punto será necesario reiniciar el servidor, con la correspondiente afectación a los usuarios conectado o nuevos que estén por llegar.</span></p>
<p><b style="font-weight: normal;">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">En esta entrada se va a considerar los pasos a seguir para modificar la cantidad de memoria que es asignada al JVM del servidor de aplicaciones </span><a href="https://www.redhat.com/en/technologies/jboss-middleware/application-platform" target="_blank">JBoss Enterprise Application Platform (EAP)</a><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> en su versión 7 en modo Standalone y utilizando Java 11, aunque para Java 8 los pasos son similares.</span></p>
<p><b style="font-weight: normal;">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">El punto de partida será que contamos con servidor JBoss EAP instalado y aplicada su configuración básica. Para llegar a este punto se puede tomar como referencia la entrega inicial de esta serie de artículos: </span><a href="https://softwareevolutivo.com.ec/jboss-eap-instalacion-y-configuracion-basica/" target="_blank" style="background-color: rgb(255, 255, 255);">JBoss EAP: Instalación y configuración básica</a></p>
<h1 dir="ltr" style="line-height: 1.38; margin-top: 20pt; margin-bottom: 6pt;"><span style="font-size: 20pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Algunos conceptos básicos</span></h1>
<h2 dir="ltr" style="line-height: 1.38; margin-top: 18pt; margin-bottom: 6pt;"><span style="font-size: 16pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Tipos de memoria</span></h2>
<p dir="ltr" style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">En Java 11 existen dos tipos principales de memoria del JVM:</span></p>
<h3 dir="ltr" style="line-height: 1.38; margin-top: 16pt; margin-bottom: 4pt;"><span style="font-size: 13.999999999999998pt; font-family: Arial; color: #434343; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Heap</span></h3>
<p dir="ltr" style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Corresponde al espacio donde se alojarán los objetos y arreglos que son utilizados por las aplicaciones. El tamaño del Heap varía mientras se ejecutan las aplicaciones.</span></p>
<p><b style="font-weight: normal;">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Existen dos parámetros que podemos utilizar para modificar el espacio utilizado por el Heap, éstos son:</span></p>
<p dir="ltr" style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; white-space: pre; line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;" role="presentation"><span style="font-size: 11pt; font-family: Consolas, sans-serif; background-color: transparent; font-variant-numeric: normal; font-variant-east-asian: normal; vertical-align: baseline; white-space: pre-wrap;">-Xms</span><span style="font-size: 11pt; background-color: transparent; font-variant-numeric: normal; font-variant-east-asian: normal; vertical-align: baseline; white-space: pre-wrap;">: Valor inicial</span></p>
<ul>
<li><span style="font-size: 11pt; font-family: Consolas, sans-serif; background-color: transparent; font-variant-numeric: normal; font-variant-east-asian: normal; vertical-align: baseline; white-space: pre-wrap;">-Xmx</span><span style="font-size: 11pt; background-color: transparent; font-variant-numeric: normal; font-variant-east-asian: normal; vertical-align: baseline; white-space: pre-wrap;">: Valor máximo que podría tomar</span></li>
<li>&nbsp;</li>
<li><span style="font-size: 13.999999999999998pt; font-family: Arial; color: #434343; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Non-heap</span></li>
</ul>
<p dir="ltr" style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">El espacio más relevante dentro de lo que no sea Heap se lo conoce como </span><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Metaspace</span><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> y es donde se almacena la metadata, estructura de las clases, constantes, valores de los String, entre otros.</span></p>
<p><b style="font-weight: normal;">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Desde la versión 8 de Java encontramos los siguientes parámetros para lo que se conoce como Metaspace:</span></p>
<p dir="ltr" style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;"><span style="background-color: transparent; color: #000000; font-size: 11pt; font-variant-numeric: normal; font-variant-east-asian: normal; font-family: Consolas, sans-serif; vertical-align: baseline; white-space: pre-wrap;">&nbsp;</span></p>
<p dir="ltr" style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;"><span style="background-color: transparent; color: #000000; font-size: 11pt; font-variant-numeric: normal; font-variant-east-asian: normal; font-family: Consolas, sans-serif; vertical-align: baseline; white-space: pre-wrap;">-XX:MetaspaceSize</span><span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; font-variant-numeric: normal; font-variant-east-asian: normal; vertical-align: baseline; white-space: pre-wrap;">: Valor inicial para almacenar los elementos del Non-heap</span></p>
<p dir="ltr" style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;"><span style="background-color: transparent; color: #000000; font-size: 11pt; font-variant-numeric: normal; font-variant-east-asian: normal; font-family: Consolas, sans-serif; vertical-align: baseline; white-space: pre-wrap;">-XX:MaxMetaspaceSize</span><span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; font-variant-numeric: normal; font-variant-east-asian: normal; vertical-align: baseline; white-space: pre-wrap;">: Valor máximo que podría tomar el espacio de Non-heap</span></p>
<p dir="ltr" style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;"><span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; font-variant-numeric: normal; font-variant-east-asian: normal; vertical-align: baseline; white-space: pre-wrap;">&nbsp;</span></p>
<p dir="ltr" style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Nota: Antes de Java 8, se lo conoce como Permanent Gen y los parámetros eran </span><span style="font-size: 11pt; font-family: Consolas,sans-serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">-XX:PermSize</span><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> y </span><span style="font-size: 11pt; font-family: Consolas,sans-serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">-XX:MaxPermSize</span><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, equivalentes a los antes mencionados.</span></p>
<h2 dir="ltr" style="line-height: 1.38; margin-top: 18pt; margin-bottom: 6pt;"><span style="font-size: 16pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Gestión de la memoria</span></h2>
<p dir="ltr" style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Es bien conocido que como desarrolladores no tenemos que liberar de manera explícita la memoria que ya no estemos utilizando, a diferencia de otros lenguajes de programación como C++. Y ésto es debido a que Java dispone del </span><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Garbage Collector</span><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, un componente del JVM que es el encargado de monitorear y liberar el espacio de memoria que ya no está en uso.</span></p>
<h1 dir="ltr" style="line-height: 1.38; margin-top: 20pt; margin-bottom: 6pt;"><span style="font-size: 20pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Procedimiento de ajuste de la memoria</span></h1>
<h2 dir="ltr" style="line-height: 1.38; margin-top: 18pt; margin-bottom: 6pt;"><span style="font-size: 16pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Heap</span></h2>
<p dir="ltr" style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Cuando encontremos la excepción </span><span style="font-size: 11pt; font-family: 'Courier New'; color: #000000; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">java.lang.OutOfMemoryError </span><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">en el archivo de log&nbsp; (</span><span style="font-size: 11pt; font-family: Consolas,sans-serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">$EAP_HOME/standalone/server.log</span><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)&nbsp; de JBoss EAP podremos tener la certeza de que se va a requerir un incremento en la memoria Heap.</span></p>
<p><b style="font-weight: normal;">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Para el modo Standalone de JBoss EAP simplemente se deberá cambiar el archivo </span><span style="font-size: 11pt; font-family: Consolas,sans-serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">standalone.conf</span><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, el cuál está ubicado en el directorio </span><span style="font-size: 11pt; font-family: Consolas,sans-serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">$EAP_HOME/bin/</span></p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-96eb4d2 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="96eb4d2" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-3a4eda2" data-id="3a4eda2" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-d831517 elementor-widget elementor-widget-image" data-id="d831517" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="1024" height="161" src="https://softwareevolutivo.com.ec/wp-content/uploads/2022/10/image1-1024x161.png" class="attachment-large size-large wp-image-6522" alt="Procedimiento de ajuste de la memoria" srcset="https://softwareevolutivo.com.ec/wp-content/uploads/2022/10/image1-1024x161.png 1024w, https://softwareevolutivo.com.ec/wp-content/uploads/2022/10/image1-300x47.png 300w, https://softwareevolutivo.com.ec/wp-content/uploads/2022/10/image1-768x120.png 768w, https://softwareevolutivo.com.ec/wp-content/uploads/2022/10/image1.png 1486w" sizes="(max-width: 1024px) 100vw, 1024px" />															</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-94014ae elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="94014ae" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-a4e2979" data-id="a4e2979" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-7884b6c elementor-widget elementor-widget-text-editor" data-id="7884b6c" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p dir="ltr" style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&nbsp;</span></p>
<p dir="ltr" style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Según el archivo del ejemplo, se puede ver que en línea 53 están los valores correspondientes para </span><span style="font-size: 11pt; font-family: Consolas,sans-serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">-Xms</span><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> y </span><span style="font-size: 11pt; font-family: Consolas,sans-serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">-Xmx</span><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, en este caso ambos establecidos en 1303 MB.</span></p>
<p><b id="docs-internal-guid-d95917a6-7fff-6d15-0da0-8ec1b5858f31" style="font-weight: normal;">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">NOTA: Para ambientes productivos se recomienda establecer -Xms y -Xmx con el mismo valor, así no se tiene que gestionar el incremento hasta el valor máximo sino que ya está establecido de antemano.</span></p>
<h2 dir="ltr" style="line-height: 1.38; margin-top: 18pt; margin-bottom: 6pt;"><span style="font-size: 16pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Metaspace</span></h2>
<p dir="ltr" style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Usualmente no existe la necesidad de especificar un tamaño máximo para Metaspace a menos que se esté presentando una pérdida de memoria (memory leak), que resulta de la falta de liberación de la misma una vez que ya no se la necesita, afectando al rendimiento del servidor.</span></p>
<h1 dir="ltr" style="line-height: 1.38; margin-top: 20pt; margin-bottom: 6pt;"><span style="font-size: 16pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Conclusiones</span></h1>
<p dir="ltr" style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Dentro de los ajustes que podemos hacer a un servidor de aplicaciones, como JBoss EAP, el espacio </span><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Heap</span><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> es el principal ya que es el más dependiente de la dinámica de nuestras aplicaciones y de la exigencia que reciba por parte de sus clientes.</span></p>
<p><b style="font-weight: normal;">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">La modificación del tamaño del espacio </span><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Heap</span><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> es una tarea sencilla pero requiere el reinicio del servidor de aplicaciones, y como pudimos evidenciar son instrucciones que recibe el JVM al momento de iniciar el mismo. Estos parámetros son los mismo que aplican para cualquier servidor de aplicaciones que se ejecute sobre la máquina virtual de Java (JVM).</span></p>
<p><b style="font-weight: normal;">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Otras modificaciones, como el cambio del </span><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Metaspace</span><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> no son tan habituales, sin embargo podría ser necesarias cuando las aplicaciones mantienen un número extenso de clases o gestionan muchos valores del tipo String.</span></p>
<p><b style="font-weight: normal;">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Te hacemos una cordial&nbsp; invitación ya que en próximas entradas del blog habrá más contenido sobre esta </span><a style="text-decoration: none;" href="https://softwareevolutivo.com.ec/tag/jboss/"><span style="font-size: 11pt; font-family: Arial; color: #1155cc; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: underline; -webkit-text-decoration-skip: none; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">temática</span></a><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">. Hasta pronto.</span></p>
<p></p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				</div>
		<p>The post <a href="https://softwareevolutivo.com.ec/jboss-eap-configuracion-de-la-memoria/">JBoss EAP: Configuración de la memoria</a> appeared first on <a href="https://softwareevolutivo.com.ec">Software Evolutivo</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://softwareevolutivo.com.ec/jboss-eap-configuracion-de-la-memoria/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>¿La Agilidad puede ayudar a mi organización?</title>
		<link>https://softwareevolutivo.com.ec/la-agilidad-puede-ayudar-a-mi-organizacion/</link>
					<comments>https://softwareevolutivo.com.ec/la-agilidad-puede-ayudar-a-mi-organizacion/#respond</comments>
		
		<dc:creator><![CDATA[Gissella Trujillo]]></dc:creator>
		<pubDate>Thu, 04 Aug 2022 19:29:07 +0000</pubDate>
				<category><![CDATA[Agilidad]]></category>
		<category><![CDATA[Desarrollo de Software]]></category>
		<category><![CDATA[Liderazgo]]></category>
		<category><![CDATA[Negocio]]></category>
		<category><![CDATA[Scrum]]></category>
		<category><![CDATA[Tecnología]]></category>
		<category><![CDATA[agilidad]]></category>
		<category><![CDATA[Empirisismo]]></category>
		<category><![CDATA[Gestión de proyectos]]></category>
		<category><![CDATA[liderazgo]]></category>
		<category><![CDATA[Organizaciones Ágiles]]></category>
		<category><![CDATA[scrum]]></category>
		<category><![CDATA[Workshop]]></category>
		<guid isPermaLink="false">https://softwareevolutivo.com.ec/?p=6373</guid>

					<description><![CDATA[<p>El desafío de cambiar la cultura y la forma de pensar a nivel de individuos y equipos es bien conocido para quienes ya conocen de Agilidad .<br />
A continuación se presenta un ejercicio que nos ayudará a enfocarnos en las cosas que sí podemos mejorar. Este ejercicio es parte de una clase del PROFESSIONAL AGILE LEADERSHIP ESSENTIALS™ TRAINING, creado por Kurt Bittner del equipo de Scrum.org. Para ayudar a los líderes del cambio a comprender mejor dónde encaja la agilidad y dónde puede ayudar a tu organización. </p>
<p>The post <a href="https://softwareevolutivo.com.ec/la-agilidad-puede-ayudar-a-mi-organizacion/">¿La Agilidad puede ayudar a mi organización?</a> appeared first on <a href="https://softwareevolutivo.com.ec">Software Evolutivo</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="6373" class="elementor elementor-6373">
						<section class="elementor-section elementor-top-section elementor-element elementor-element-c05b6a3 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="c05b6a3" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-4484868" data-id="4484868" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-12c1533 elementor-widget elementor-widget-text-editor" data-id="12c1533" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">El desafío de cambiar la cultura y la forma de pensar a nivel de individuos y equipos es bien conocido para quienes ya conocen de Agilidad y para las empresas que están en este camino.</span></p><p><b style="font-weight: normal;"> </b></p><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Muchas veces los esfuerzos y decisiones para lograr un cambio se ven poco claras o insatisfactorias, como en una conversación acerca del clima; todos parecemos tener algo que decir al respecto pero nadie puede cambiarlo.</span></p><p><b style="font-weight: normal;"> </b></p><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">A continuación se presenta un ejercicio que nos ayudará a enfocarnos en las cosas que sí podemos mejorar. Este ejercicio es parte de una clase del</span><a style="text-decoration: none;" href="https://www.scrum.org/courses/professional-agile-leadership-essentials-training#:~:text=The%20Professional%20Agile%20Leadership%20Essentials,to%20improve%20their%20agile%20capabilities."> <span style="font-size: 12pt; font-family: Arial; color: #1155cc; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: underline; -webkit-text-decoration-skip: none; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">PROFESSIONAL AGILE LEADERSHIP ESSENTIALS™ TRAINING</span></a><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, creado por Kurt Bittner del equipo de Scrum.org. Para ayudar a los líderes del cambio a comprender mejor </span><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">dónde encaja la agilidad y dónde puede ayudar a tu organización. </span></p><p><b style="font-weight: normal;"> </b></p><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Antes de empezar, recordamos que la agilidad no tiene un único enfoque en su adopción ya que depende del contexto empresarial. Por lo tanto cada esfuerzo realizado por la organización en este sentido es susceptible de ajustes de acuerdo a su realidad. </span></p><p><b style="font-weight: normal;"> </b></p><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Modelo de la afinidad Ágil</span></p><p><b style="font-weight: normal;"> </b></p><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Por agilidad, hablamos del enfoque empírico para entregar valor al negocio de manera incremental, medir el efecto de esa entrega, inspeccionar los resultados y adaptarse basado en el aprendizaje de esta inspección. </span></p><p><b style="font-weight: normal;"> </b></p><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Este modelo de Afinidad Ágil considera 5 dimensiones (</span><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: italic; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> Figura 1 </span><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">) que influyen en la atracción o resistencia al </span><a style="text-decoration: none;" href="https://kenschwaber.wordpress.com/2011/05/03/empiricism-the-act-of-making-decisions-based-on-what-is/"><span style="font-size: 12pt; font-family: Arial; color: #1155cc; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: underline; -webkit-text-decoration-skip: none; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">empirismo</span></a><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> dentro de la organización. </span></p><p><b style="font-weight: normal;"> </b></p><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Arial; color: #ff00ff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="border: none; display: inline-block; overflow: hidden; width: 546px; height: 387px;"><img loading="lazy" decoding="async" style="margin-left: 0px; margin-top: 0px;" src="https://lh3.googleusercontent.com/3iqspRUAokKUsG1swio6jmj9ixQdw4AEGM1Vi4nceaTGDQE45Qtly-w2FcJf_JnenZR6_Ch_9N6tHWSrniK3CFtjCgNsCq10vF5u1i8kRBI2LUcZSSTpbV9CoFat2sFrtDeMbBMjL535IcdOqPXZzg" width="546" height="387" /></span></span></p><p dir="ltr" style="line-height: 1.38; text-align: center; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Figura 1. Modelo de la afinidad Ágil</span></p><p> </p><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Estas 5 dimensiones expresan diferentes </span><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: bold; font-style: italic; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">fuerzas internas y externas</span><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> que afectan a las creencias y valores d</span><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">e una organización.</span></p><p><b style="font-weight: normal;"> </b></p><ul style="margin-top: 0; margin-bottom: 0; padding-inline-start: 48px;"><li dir="ltr" style="list-style-type: disc; font-size: 12pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre;" aria-level="1"><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 0pt;" role="presentation"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Dimensiones externas (Amenaza Competitiva y Potencial de Crecimiento del Mercado): Comúnmente atraen a las organizaciones hacia la agilidad. </span></p></li><li dir="ltr" style="list-style-type: disc; font-size: 12pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre;" aria-level="1"><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 0pt;" role="presentation"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Dimensiones internas (Voluntad de Experimentar, Incertidumbre de la Solución y Descentralización de Decisiones): Casi siempre retrasan a la organización para volverse más Ágil.</span></p></li></ul><p><b style="font-weight: normal;"> </b></p><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">¿Por qué estas dimensiones?</span></p><p><b style="font-weight: normal;"> </b></p><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Estas dimensiones capturan la esencia de los desafíos a los que se enfrentan las organizaciones y proporcionan una forma útil de conocer mejor las actividades y tener debates sobre lo que las personas podrían hacer para cambiar las creencias que frenan su Agilidad.</span></p><p> </p><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Cada una de estas dimensiones se describen a continuación:</span></p><h2 dir="ltr" style="line-height: 1.404; text-align: justify; background-color: #ffffff; margin-top: 0pt; margin-bottom: 0pt; padding: 18pt 0pt 4pt 0pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Amenaza competitiva</span></h2><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Expresa el grado en que el producto o servicio está desafiado por la competencia.</span></p><p> </p><div dir="ltr" style="margin-left: 0pt;" align="left"><table style="border: none; border-collapse: collapse; table-layout: fixed; width: 468pt;"><colgroup> <col /> <col /></colgroup><tbody><tr style="height: 23.5pt;"><td style="vertical-align: top; padding: 5pt 5pt 5pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #000000 1pt;" colspan="2"><p dir="ltr" style="line-height: 1.2; text-align: center; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Indicadores</span></p></td></tr><tr style="height: 0pt;"><td style="vertical-align: top; padding: 5pt 5pt 5pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #000000 1pt;"><p dir="ltr" style="line-height: 1.2; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Bajo</span></p></td><td style="vertical-align: top; padding: 5pt 5pt 5pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #000000 1pt;"><p dir="ltr" style="line-height: 1.2; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Elevado</span></p></td></tr><tr style="height: 0pt;"><td style="vertical-align: top; padding: 5pt 5pt 5pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #000000 1pt;"><p dir="ltr" style="line-height: 1.2; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Tenemos alta cuota de mercado</span></p></td><td style="vertical-align: top; padding: 5pt 5pt 5pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #000000 1pt;"><p dir="ltr" style="line-height: 1.2; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Tenemos baja cuota de mercado </span></p></td></tr><tr style="height: 0pt;"><td style="vertical-align: top; padding: 5pt 5pt 5pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #000000 1pt;"><p dir="ltr" style="line-height: 1.2; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Existe poca competencia</span></p></td><td style="vertical-align: top; padding: 5pt 5pt 5pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #000000 1pt;"><p dir="ltr" style="line-height: 1.2; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Tenemos mucha competencia</span></p></td></tr><tr style="height: 0pt;"><td style="vertical-align: top; padding: 5pt 5pt 5pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #000000 1pt;"><p dir="ltr" style="line-height: 1.2; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">El cliente tiene alta dependencia a nuestro producto / servicio</span></p></td><td style="vertical-align: top; padding: 5pt 5pt 5pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #000000 1pt;"><p dir="ltr" style="line-height: 1.2; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Poca dependencia del cliente hacia nuestro producto / servicio</span></p></td></tr></tbody></table></div><p><b style="font-weight: normal;"> </b></p><h2 dir="ltr" style="line-height: 1.404; text-align: justify; background-color: #ffffff; margin-top: 0pt; margin-bottom: 0pt; padding: 18pt 0pt 4pt 0pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Voluntad de experimentar</span></h2><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Expresa el grado en que la organización se siente cómoda con la incertidumbre.</span></p><p><b style="font-weight: normal;"> </b></p><div dir="ltr" style="margin-left: 0pt;" align="left"><table style="border: none; border-collapse: collapse;"><colgroup> <col width="296" /> <col width="297" /></colgroup><tbody><tr style="height: 40pt;"><td style="vertical-align: top; background-color: #ffffff; padding: 5pt 5pt 5pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #000000 0.99609pt;" colspan="2"><p dir="ltr" style="line-height: 1.38; text-align: center; margin-top: 0pt; margin-bottom: 14pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Indicadores</span></p></td></tr><tr style="height: 40pt;"><td style="vertical-align: top; padding: 5pt 5pt 5pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #000000 0.99609pt;"><p dir="ltr" style="line-height: 1.38; text-align: center; margin-top: 0pt; margin-bottom: 14pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Bajo</span></p></td><td style="vertical-align: top; padding: 5pt 5pt 5pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #000000 0.99609pt;"><p dir="ltr" style="line-height: 1.38; text-align: center; margin-top: 0pt; margin-bottom: 14pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Elevado</span></p></td></tr><tr style="height: 87.25pt;"><td style="vertical-align: top; padding: 5pt 5pt 5pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #000000 0.99609pt;"><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 14pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Incrementamos detalles del plan cuando aumenta la incertidumbre.</span></p></td><td style="vertical-align: top; padding: 5pt 5pt 5pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #000000 0.99609pt;"><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 14pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Formulamos hipótesis y se ejecutamos experimentos para probar suposiciones cuando aumenta la incertidumbre.</span></p></td></tr><tr style="height: 87.25pt;"><td style="vertical-align: top; padding: 5pt 5pt 5pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #000000 0.99609pt;"><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 14pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Agregamos hitos y revisiones cuando aumenta la incertidumbre.</span></p></td><td style="vertical-align: top; padding: 5pt 5pt 5pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #000000 0.99609pt;"><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 14pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Planificamos en pequeños incrementos, medimos, inspeccionamos y adaptamos los planes.</span></p></td></tr><tr style="height: 71.5pt;"><td style="vertical-align: top; padding: 5pt 5pt 5pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #000000 0.99609pt;"><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 14pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Consideramos como un resultado negativo cualquier desviación en el plan.</span></p></td><td style="vertical-align: top; padding: 5pt 5pt 5pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #000000 0.99609pt;"><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 14pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Las desviaciones de los planes se consideran como información nueva.</span></p></td></tr></tbody></table></div><p><b style="font-weight: normal;"> </b></p><h2 dir="ltr" style="line-height: 1.404; text-align: justify; background-color: #ffffff; margin-top: 0pt; margin-bottom: 0pt; padding: 18pt 0pt 4pt 0pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Incertidumbre de la solución</span></h2><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Es el grado en que la organización está segura de saber lo que el mercado y los clientes </span><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">necesitan</span><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> de nuestro producto o servicio.</span></p><p><b style="font-weight: normal;"> </b></p><div dir="ltr" style="margin-left: 0pt;" align="left"><table style="border: none; border-collapse: collapse;"><colgroup> <col width="296" /> <col width="297" /></colgroup><tbody><tr style="height: 40pt;"><td style="vertical-align: top; background-color: #ffffff; padding: 5pt 5pt 5pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #000000 0.99609pt;" colspan="2"><p dir="ltr" style="line-height: 1.38; text-align: center; margin-top: 0pt; margin-bottom: 14pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Indicadores</span></p></td></tr><tr style="height: 40pt;"><td style="vertical-align: top; padding: 5pt 5pt 5pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #000000 0.99609pt;"><p dir="ltr" style="line-height: 1.38; text-align: center; margin-top: 0pt; margin-bottom: 14pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Bajo</span></p></td><td style="vertical-align: top; padding: 5pt 5pt 5pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #000000 0.99609pt;"><p dir="ltr" style="line-height: 1.38; text-align: center; margin-top: 0pt; margin-bottom: 14pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Elevado</span></p></td></tr><tr style="height: 87.25pt;"><td style="vertical-align: top; padding: 5pt 5pt 5pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #000000 0.99609pt;"><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 14pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Las solicitudes de cambio en nuestro producto / servicio se consideran resultados negativos</span></p></td><td style="vertical-align: top; padding: 5pt 5pt 5pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #000000 0.99609pt;"><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 14pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Realizamos focus group o otro tipo de investigación de forma frecuente para evaluar diferentes alternativas y necesidades del cliente</span></p></td></tr><tr style="height: 55.75pt;"><td style="vertical-align: top; padding: 5pt 5pt 5pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #000000 0.99609pt;"><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 14pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Tenemos pocos datos disponibles sobre el uso real del usuario sobre nuestro producto / servicio.</span></p></td><td style="vertical-align: top; padding: 5pt 5pt 5pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #000000 0.99609pt;"><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 14pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Preparamos nuestras aplicaciones para obtener información de uso real del usuario con nuestro producto / servicio </span></p></td></tr><tr style="height: 71.5pt;"><td style="vertical-align: top; padding: 5pt 5pt 5pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #000000 0.99609pt;"><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 14pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Planificamos los lanzamientos y actualizaciones siguiendo en gran medida roadmaps del producto / servicio.</span></p></td><td style="vertical-align: top; padding: 5pt 5pt 5pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #000000 0.99609pt;"><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 14pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Ejecutamos pruebas A / B para probar y validar alternativas o nuevas características a nuestros productos / servicios.</span></p></td></tr><tr style="height: 71.5pt;"><td style="vertical-align: top; padding: 5pt 5pt 5pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #000000 0.99609pt;"><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 14pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Basamos los releases de nuevas características en roadmaps detallados que han sido planificados con mucha anticipación.</span></p></td><td style="vertical-align: top; padding: 5pt 5pt 5pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #000000 0.99609pt;"><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 14pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">No tenemos roadmaps de productos a largo plazo, los roadmaps del producto cambian con el tiempo.</span></p></td></tr></tbody></table></div><p><b style="font-weight: normal;"> </b></p><h2 dir="ltr" style="line-height: 1.404; text-align: justify; background-color: #ffffff; margin-top: 0pt; margin-bottom: 0pt; padding: 18pt 0pt 4pt 0pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Descentralización de decisiones</span></h2><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Expresa el grado en que la autoridad para la toma de decisiones está dispersa en la organización, en el que ciertas decisiones específicas pueden ser tomadas por individuos o equipos sin tener que buscar la aprobación de mandos superiores.</span></p><p><b style="font-weight: normal;"> </b></p><div dir="ltr" style="margin-left: 0pt;" align="left"><table style="border: none; border-collapse: collapse;"><colgroup> <col width="296" /> <col width="297" /></colgroup><tbody><tr style="height: 40pt;"><td style="vertical-align: top; background-color: #ffffff; padding: 5pt 5pt 5pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #000000 0.99609pt;" colspan="2"><p dir="ltr" style="line-height: 1.38; text-align: center; margin-top: 0pt; margin-bottom: 14pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Indicadores</span></p></td></tr><tr style="height: 40pt;"><td style="vertical-align: top; padding: 5pt 5pt 5pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #000000 0.99609pt;"><p dir="ltr" style="line-height: 1.38; text-align: center; margin-top: 0pt; margin-bottom: 14pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Bajo</span></p></td><td style="vertical-align: top; padding: 5pt 5pt 5pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #000000 0.99609pt;"><p dir="ltr" style="line-height: 1.38; text-align: center; margin-top: 0pt; margin-bottom: 14pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Elevado</span></p></td></tr><tr style="height: 87.25pt;"><td style="vertical-align: top; padding: 5pt 5pt 5pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #000000 0.99609pt;"><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 14pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Todas las decisiones de gasto deben pasar por un gerente con la autoridad presupuestaria adecuada.</span></p></td><td style="vertical-align: top; padding: 5pt 5pt 5pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #000000 0.99609pt;"><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 14pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Permitimos que los equipos sean responsables de un presupuesto que pueden usar para ayudarlos a cumplir sus objetivos.</span></p></td></tr><tr style="height: 71.5pt;"><td style="vertical-align: top; padding: 5pt 5pt 5pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #000000 0.99609pt;"><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 14pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Todas las decisiones de contratación y despido las toman los mandos superiores.</span></p></td><td style="vertical-align: top; padding: 5pt 5pt 5pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #000000 0.99609pt;"><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 14pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Permitimos que los equipos se involucren, participen o tomen decisiones de contratación / despido.</span></p></td></tr><tr style="height: 71.5pt;"><td style="vertical-align: top; padding: 5pt 5pt 5pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #000000 0.99609pt;"><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 14pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Todas las decisiones de productos las toman los mandos superiores.</span></p></td><td style="vertical-align: top; padding: 5pt 5pt 5pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #000000 0.99609pt;"><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 14pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Permitimos tomar decisiones sobre el producto a los equipos (incluido Product Owner) </span></p></td></tr></tbody></table></div><p><b style="font-weight: normal;"> </b></p><h2 dir="ltr" style="line-height: 1.404; text-align: justify; background-color: #ffffff; margin-top: 0pt; margin-bottom: 0pt; padding: 18pt 0pt 4pt 0pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Potencial de crecimiento </span></h2><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Expresa el grado en que el producto tiene potencial de crecimiento en el mercado, es decir el grado en el que puede aumentar significativamente los ingresos.</span></p><p><b style="font-weight: normal;"> </b></p><div dir="ltr" style="margin-left: 0pt;" align="left"><table style="border: none; border-collapse: collapse;"><colgroup> <col width="296" /> <col width="297" /></colgroup><tbody><tr style="height: 40pt;"><td style="vertical-align: top; background-color: #ffffff; padding: 5pt 5pt 5pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #000000 0.99609pt;" colspan="2"><p dir="ltr" style="line-height: 1.38; text-align: center; margin-top: 0pt; margin-bottom: 14pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Indicadores</span></p></td></tr><tr style="height: 40pt;"><td style="vertical-align: top; padding: 5pt 5pt 5pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #000000 0.99609pt;"><p dir="ltr" style="line-height: 1.38; text-align: center; margin-top: 0pt; margin-bottom: 14pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Bajo</span></p></td><td style="vertical-align: top; padding: 5pt 5pt 5pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #000000 0.99609pt;"><p dir="ltr" style="line-height: 1.38; text-align: center; margin-top: 0pt; margin-bottom: 14pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Elevado</span></p></td></tr><tr style="height: 55.75pt;"><td style="vertical-align: top; padding: 5pt 5pt 5pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #000000 0.99609pt;"><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 14pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">El producto está en un mercado que se está contrayendo.</span></p></td><td style="vertical-align: top; padding: 5pt 5pt 5pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #000000 0.99609pt;"><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 14pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">El producto está en un mercado en rápida expansión.</span></p></td></tr><tr style="height: 55.75pt;"><td style="vertical-align: top; padding: 5pt 5pt 5pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #000000 0.99609pt;"><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 14pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">La cuota de mercado del producto se está reduciendo</span></p></td><td style="vertical-align: top; padding: 5pt 5pt 5pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #000000 0.99609pt;"><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 14pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Los competidores dominantes en el mercado se debilitan y pierden cuota de mercado.</span></p></td></tr><tr style="height: 87.25pt;"><td style="vertical-align: top; padding: 5pt 5pt 5pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #000000 0.99609pt;"><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 14pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">El producto proporciona un ingreso o ganancia constante, ha alcanzado una gran participación de mercado.</span></p></td><td style="vertical-align: top; padding: 5pt 5pt 5pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #000000 0.99609pt;"><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 14pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Es posible aumentar los ingresos del producto aumentando el número absoluto de clientes o aumentando la participación de mercado.</span></p></td></tr></tbody></table></div><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 13.999999999999998pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Aplicando el modelo en tu equipo de trabajo</span></p><p><b style="font-weight: normal;"> </b></p><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Objetivos: </span></p><p><b style="font-weight: normal;"> </b></p><ul style="margin-top: 0; margin-bottom: 0; padding-inline-start: 48px;"><li dir="ltr" style="list-style-type: disc; font-size: 12pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre;" aria-level="1"><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 0pt;" role="presentation"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Sacar a la superficie supuestos tácitos pero muy importantes.</span></p></li><li dir="ltr" style="list-style-type: disc; font-size: 12pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre;" aria-level="1"><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 0pt;" role="presentation"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Lograr que el equipo piense en el entorno en el que se va a introducir un enfoque ágil o empírico.</span></p></li></ul><p><b style="font-weight: normal;"> </b></p><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Antes de empezar, recuerda:</span></p><p><b style="font-weight: normal;"> </b></p><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Arial; color: #ff00ff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="border: none; display: inline-block; overflow: hidden; width: 624px; height: 443px;"><img loading="lazy" decoding="async" style="margin-left: 0px; margin-top: 0px;" src="https://lh4.googleusercontent.com/hoTdDZl1EGjZllai1LfS965QaTkFQO_1QW-knaKRe1rhXXYzyc7Y2oB4Fzob7oWDd_M_ptnekxi1KqEa5FDrF-ILkUTfhThbqjRQgPHNlW9mcqtWKSkJwfz0MiQ6pUyJiMaJZ1BfIN77tUZabyZfHg" width="624" height="443" /><span style="color: #000000; font-size: 12pt; font-weight: bold;">¿Cómo empezar?:</span></span></span></p><p><b style="font-weight: normal;"> </b><span style="color: #000000; font-family: Arial; font-size: 12pt; font-weight: bold; white-space: pre-wrap; text-align: justify;">¿Cómo empezar?:</span></p><div><span style="color: #000000; font-family: Arial; font-size: 12pt; font-weight: bold; white-space: pre-wrap; text-align: justify;"> </span></div><ol style="margin-top: 0; margin-bottom: 0; padding-inline-start: 48px;"><li dir="ltr" style="list-style-type: decimal; font-size: 12pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre;" aria-level="1"><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 0pt;" role="presentation"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Organizar idealmente en equipos de menos de 5 personas para cada producto.</span></p></li><li dir="ltr" style="list-style-type: decimal; font-size: 12pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre;" aria-level="1"><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 0pt;" role="presentation"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Cada equipo marca las dimensiones para el producto / equipo en el que trabaja.</span></p></li><li dir="ltr" style="list-style-type: decimal; font-size: 12pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre;" aria-level="1"><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 0pt;" role="presentation"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Si hay personas de diferentes productos en el mismo equipo, pídeles que marquen las dimensiones de cada producto.</span></p></li><li dir="ltr" style="list-style-type: decimal; font-size: 12pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre;" aria-level="1"><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 0pt;" role="presentation"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Dibujar las líneas entre puntuaciones. Tendrá un resultado similar a este (Figura 2) , donde cada color representa un producto diferente.</span></p></li></ol><p><b style="font-weight: normal;"> </b></p><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="border: none; display: inline-block; overflow: hidden; width: 624px; height: 443px;"><img loading="lazy" decoding="async" style="margin-left: 0px; margin-top: 0px;" src="https://lh6.googleusercontent.com/pajJYmwnWi050NOI9RpnLBesveZLILaGIvyNNVgTFvGJCZmK99oUg9Yw1qHKJdS_DGdimoembKtnmMVr-3PWYE2MeGkpQp0XlweKqFVrU70KPS0S3tQAenuNovBEhlnMd_yIy9TEOw90B8kSBzvVkQ" width="624" height="443" /></span></span></p><p dir="ltr" style="line-height: 1.38; text-align: center; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Figura 2. Resultado Modelo de Afinidad Ágil</span></p><p><b style="font-weight: normal;"> </b></p><ol style="margin-top: 0; margin-bottom: 0; padding-inline-start: 48px;" start="5"><li dir="ltr" style="list-style-type: decimal; font-size: 12pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre;" aria-level="1"><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 0pt;" role="presentation"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Cada equipo revisa sus puntuaciones y explica sus porqué mientras los demás equipos solo pueden escuchar y hacer preguntas aclaratorias </span></p></li><li dir="ltr" style="list-style-type: decimal; font-size: 12pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre;" aria-level="1"><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 0pt;" role="presentation"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Después de la presentación se ayuda a los grupos a sacar algunas conclusiones.</span></p></li></ol><p><b style="font-weight: normal;"> </b></p><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Interpretación de los resultados</span></p><p><b style="font-weight: normal;"> </b></p><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Recuerde: </span><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: underline; -webkit-text-decoration-skip: none; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">No existen respuestas correctas</span><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> y el valor del ejercicio es estimular la conversación sobre los desafíos que cada organización enfrenta al adoptar un enfoque Ágil.</span></p><p><b style="font-weight: normal;"> </b></p><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Algunos puntos de discusión comunes</span></p><p><b style="font-weight: normal;"> </b></p><ol style="margin-top: 0; margin-bottom: 0; padding-inline-start: 48px;"><li dir="ltr" style="list-style-type: lower-alpha; font-size: 12pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre;" aria-level="1"><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 0pt;" role="presentation"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Baja amenaza de la competencia/ Potencial de crecimiento del mercado</span></p></li></ol><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">En este caso es importante distinguir si este producto realmente se beneficia del empirismo. Sin mucha amenaza y pocas oportunidades, la organización puede enfocar esfuerzos en productos con mayor necesidad.</span></p><p><b style="font-weight: normal;"> </b></p><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Ágil no es la forma de ejecutar todo y necesitamos ser reflexivos sobre ello. Debido a que la organización sólo puede respaldar cierta cantidad de cambios y forzar un cambio sin gran beneficio puede privar a otro equipo de la ayuda necesaria.</span></p><p><b style="font-weight: normal;"> </b></p><ol style="margin-top: 0; margin-bottom: 0; padding-inline-start: 48px;" start="2"><li dir="ltr" style="list-style-type: lower-alpha; font-size: 12pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre;" aria-level="1"><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 0pt;" role="presentation"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Alta amenaza de la competencia/ Potencial de crecimiento del mercado</span></p></li></ol><p><b style="font-weight: normal;"> </b></p><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">El producto tiene oportunidades con las que el empirismo puede ayudar. Si además tenemos </span><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">una calificación</span> <span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">baja en dimensiones internas, </span><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">éstas representan barreras internas que pueden impedir que funcione el empirismo. </span></p><p><b style="font-weight: normal;"> </b></p><ol style="margin-top: 0; margin-bottom: 0; padding-inline-start: 48px;" start="3"><li dir="ltr" style="list-style-type: lower-alpha; font-size: 12pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre;" aria-level="1"><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 0pt;" role="presentation"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Baja incertidumbre de la solución</span></p></li></ol><p><b style="font-weight: normal;"> </b></p><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Puede parecer algo bueno pero no lo es, podemos estar pensando que sabemos lo que quiere el cliente pero sin una medición sobre la experiencia del cliente ¿Cómo podemos estar seguros? El primer paso es medir la experiencia para saber que creencias son ciertas, caso contrario podríamos estar perdiendo oportunidades de brindar un mejor servicio a los clientes.</span></p><p><b style="font-weight: normal;"> </b></p><ol style="margin-top: 0; margin-bottom: 0; padding-inline-start: 48px;" start="4"><li dir="ltr" style="list-style-type: lower-alpha; font-size: 12pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre;" aria-level="1"><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 0pt;" role="presentation"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Baja disposición a experimentar</span></p></li></ol><p><b style="font-weight: normal;"> </b></p><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Surge de la aversión a cometer errores y de la creencia de que planificar al detalle aumenta la probabilidad de un plan totalmente seguro. Sin embargo, a menudo las </span><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: underline; -webkit-text-decoration-skip: none; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">suposiciones</span><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> en las que se basa el plan, </span><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: underline; -webkit-text-decoration-skip: none; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">resultan no ser realistas.</span></p><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Hacer pequeños experimentos es menos costoso y dañino que elaborar grandes planes detallados que a menudo salen mal.</span></p><p><b style="font-weight: normal;"> </b></p><p dir="ltr" style="line-height: 1.38; margin-left: 18pt; text-indent: -18pt; text-align: justify; margin-top: 0pt; margin-bottom: 0pt; padding: 0pt 0pt 0pt 18pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">e. Baja descentralización de decisión</span></p><p><b style="font-weight: normal;"> </b></p><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Refleja falta de confianza entre gerentes y el equipo. Siempre que haya disposición de las partes hay muchos caminos para aumentar la confianza empezando por otorgar gradualmente a los equipos autonomía en la toma de decisiones pequeñas y seguir avanzando a cosas más grandes.</span></p><p><b style="font-weight: normal;"> </b></p><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">La actividad final del ejercicio, después de crear estas conversaciones valiosas, es preguntarse si como equipo están de acuerdo con su enfoque de trabajo actual, y si no lo están, ¿qué cambiarían?, para que puedan generarse acciones al respecto.</span></p><p><b style="font-weight: normal;"> </b></p><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Para recordar </span></p><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span></p><p><span style="color: #000000; font-family: Arial; font-size: 12pt; white-space: pre-wrap; text-align: justify;">Las organizaciones son diferentes entre sí y dentro de ellas mismas encontramos equipos con objetivos diferentes. Por esta razón al adoptar prácticas ágiles o escalarlas, no existe un único enfoque. </span></p><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Te invitamos a leer más sobre </span><a style="text-decoration: none;" href="https://softwareevolutivo.com.ec/agilidad-empresarial-abrazar-el-cambio-o-morir-en-el-intento/"><span style="font-size: 12pt; font-family: Arial; color: #1155cc; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: underline; -webkit-text-decoration-skip: none; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">agilidad empresarial</span></a><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> y agilidad desde el punto de vista del negocio en nuestro blog.</span></p><p><b style="font-weight: normal;"> </b></p><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Arial; color: #000000; background-color: #ffffff; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><b>Fuentes:</b></span></p><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 0pt;"><a style="text-decoration: none;" href="https://www.scrum.org/pathway/product-owner-learning-path"><span style="font-size: 12pt; font-family: Arial; color: #1155cc; background-color: #ffffff; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: underline; -webkit-text-decoration-skip: none; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">https://www.scrum.org/pathway/product-owner-learning-path</span></a></p><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 0pt;"><a style="text-decoration: none;" href="https://www.scrum.org/resources/blog/whats-driving-your-need-agility"><span style="font-size: 12pt; font-family: Arial; color: #1155cc; background-color: #ffffff; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: underline; -webkit-text-decoration-skip: none; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">https://www.scrum.org/resources/blog/whats-driving-your-need-agility</span></a></p><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 0pt;"><a style="text-decoration: none;" href="https://kenschwaber.wordpress.com/2011/05/03/empiricism-the-act-of-making-decisions-based-on-what-is/"><span style="font-size: 12pt; font-family: Arial; color: #1155cc; background-color: #ffffff; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: underline; -webkit-text-decoration-skip: none; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">https://kenschwaber.wordpress.com/2011/05/03/empiricism-the-act-of-making-decisions-based-on-what-is/</span></a></p><p dir="ltr" style="line-height: 1.38; text-align: justify; margin-top: 0pt; margin-bottom: 0pt;"><a style="text-decoration: none;" href="https://www.scrum.org/resources/blog/business-agility"><span style="font-size: 12pt; font-family: Arial; color: #1155cc; background-color: #ffffff; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: underline; -webkit-text-decoration-skip: none; text-decoration-skip-ink: none; vertical-align: baseline; white-space: pre-wrap;">https://www.scrum.org/resources/blog/business-agility</span></a></p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				</div>
		<p>The post <a href="https://softwareevolutivo.com.ec/la-agilidad-puede-ayudar-a-mi-organizacion/">¿La Agilidad puede ayudar a mi organización?</a> appeared first on <a href="https://softwareevolutivo.com.ec">Software Evolutivo</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://softwareevolutivo.com.ec/la-agilidad-puede-ayudar-a-mi-organizacion/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Arquitectura de Microservicios: qué es, ventajas y desventajas</title>
		<link>https://softwareevolutivo.com.ec/arquitectura-de-microservicios/</link>
					<comments>https://softwareevolutivo.com.ec/arquitectura-de-microservicios/#respond</comments>
		
		<dc:creator><![CDATA[Fernando Paz]]></dc:creator>
		<pubDate>Thu, 21 Jul 2022 19:57:23 +0000</pubDate>
				<category><![CDATA[Desarrollo de Software]]></category>
		<category><![CDATA[microservicios]]></category>
		<category><![CDATA[software development]]></category>
		<guid isPermaLink="false">http://softwareevolutivo.com.ec/?p=6347</guid>

					<description><![CDATA[<p>Existen dos grandes paradigmas a la hora de diseñar Software: la Arquitectura Monolítica y la Arquitectura de Microservicios. En este artículo vamos a revisar qué es la Arquitectura de Microservicios, y cuáles son sus ventajas y desventajas. Qué es la Arquitectura de Microservicios Características de los Microservicios Ventajas de la Arquitectura de Microservicios Desventajas de [&#8230;]</p>
<p>The post <a href="https://softwareevolutivo.com.ec/arquitectura-de-microservicios/">Arquitectura de Microservicios: qué es, ventajas y desventajas</a> appeared first on <a href="https://softwareevolutivo.com.ec">Software Evolutivo</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="6347" class="elementor elementor-6347">
						<section class="elementor-section elementor-top-section elementor-element elementor-element-4f2c10a elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="4f2c10a" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-3f546e59" data-id="3f546e59" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-1c4a4f0b elementor-widget elementor-widget-text-editor" data-id="1c4a4f0b" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									
<p>Existen dos grandes paradigmas a la hora de diseñar Software: la Arquitectura Monolítica y la Arquitectura de Microservicios. En este artículo vamos a revisar qué es la Arquitectura de Microservicios, y cuáles son sus ventajas y desventajas.</p>



<ul class="wp-block-list"><li><a href="#que-es">Qué es la Arquitectura de Microservicios</a></li><li><a href="#caracteristicas">Características de los Microservicios</a></li><li><a href="#ventajas">Ventajas de la Arquitectura de Microservicios</a></li><li><a href="#desventajas">Desventajas de la Arquitectura de Microservicios</a></li></ul>



<h2 class="wp-block-heading" id="que-es">Qué es la Arquitectura de Microservicios</h2>



<p>Antes de hablar de la Arquitectura de Microservicios, vamos a partir identificando a su predecesor que es la Arquitectura Monolítica.</p>



<p>La <strong>Arquitectura Monolítica</strong>, es un enfoque en donde todos los conceptos y dominios de negocio de un producto de Software se implementan como componentes completamente acoplados, por lo que, tanto las entradas como las salidas de cada componente tienen su razón y especificación en contexto de un único producto de Software que es indivisible.</p>



<p>Iniciando desde la interfaz del usuario (en algunos casos), pasando por una o varias capas de lógica de negocio, la capa de persistencia, y, hasta la base de datos, el producto de Software se construía como un solo concepto, y a menudo se ejecuta como un solo binario o unidad entregable (JAR, WAR, EAR, Folder, etc.).</p>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="373" height="303" src="https://softwareevolutivo.com.ec/wp-content/uploads/2022/07/Arquitectura-Monolitica-y-Microservicios-Monolitica.jpg" alt="Arquitectura Monolítica" class="wp-image-6349" srcset="https://softwareevolutivo.com.ec/wp-content/uploads/2022/07/Arquitectura-Monolitica-y-Microservicios-Monolitica.jpg 373w, https://softwareevolutivo.com.ec/wp-content/uploads/2022/07/Arquitectura-Monolitica-y-Microservicios-Monolitica-300x244.jpg 300w" sizes="(max-width: 373px) 100vw, 373px" /></figure>



<p>La <strong>Arquitectura de Microservicios</strong> es un enfoque para el desarrollo de un producto de Software, en donde cada concepto específico de negocio es construido en una unidad pequeña de código accesible a través de una API liviana y bien definida.</p>



<p>El TODO del producto de Software entonces, constituye la ejecución sincronizada de un conjunto de estos servicios, cada uno con su propia e independiente definición, para el proceso de una transacción padre disparada desde una interfaz de usuario o sistema.</p>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="611" height="301" src="https://softwareevolutivo.com.ec/wp-content/uploads/2022/07/Arquitectura-Monolitica-y-Microservicios-Microservicios.jpg" alt="Arquitectura de Microservicios" class="wp-image-6350" srcset="https://softwareevolutivo.com.ec/wp-content/uploads/2022/07/Arquitectura-Monolitica-y-Microservicios-Microservicios.jpg 611w, https://softwareevolutivo.com.ec/wp-content/uploads/2022/07/Arquitectura-Monolitica-y-Microservicios-Microservicios-300x148.jpg 300w" sizes="(max-width: 611px) 100vw, 611px" /></figure>



<h2 class="wp-block-heading" id="caracteristicas">Características de los Microservicios</h2>



<p>Aunque parece no existir una especificación única para crear Microservicios, y más depende del caso de negocio y/o planificación; generalmente se sugiere que deban cumplir las siguientes características:</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%">
<figure class="wp-block-image aligncenter size-full is-resized"><img decoding="async" src="https://softwareevolutivo.com.ec/wp-content/uploads/2022/07/interface-icon.png" alt="" class="wp-image-6352" width="150" srcset="https://softwareevolutivo.com.ec/wp-content/uploads/2022/07/interface-icon.png 899w, https://softwareevolutivo.com.ec/wp-content/uploads/2022/07/interface-icon-300x252.png 300w, https://softwareevolutivo.com.ec/wp-content/uploads/2022/07/interface-icon-768x646.png 768w" sizes="(max-width: 899px) 100vw, 899px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<h3 class="wp-block-heading">Interfaz Única</h3>



<p>Cada Microservicio debe proveer una interfaz ligera y bien definida para consumo, que aísle todos los detalles técnicos, estructura de datos y datos de la capacidad de negocio que maneja, a sus clientes.</p>
</div>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%">
<figure class="wp-block-image aligncenter size-full is-resized"><img decoding="async" src="https://softwareevolutivo.com.ec/wp-content/uploads/2022/07/specialized_icon.png" alt="" class="wp-image-6354" width="150" srcset="https://softwareevolutivo.com.ec/wp-content/uploads/2022/07/specialized_icon.png 512w, https://softwareevolutivo.com.ec/wp-content/uploads/2022/07/specialized_icon-300x300.png 300w, https://softwareevolutivo.com.ec/wp-content/uploads/2022/07/specialized_icon-150x150.png 150w, https://softwareevolutivo.com.ec/wp-content/uploads/2022/07/specialized_icon-450x450.png 450w, https://softwareevolutivo.com.ec/wp-content/uploads/2022/07/specialized_icon-106x106.png 106w, https://softwareevolutivo.com.ec/wp-content/uploads/2022/07/specialized_icon-70x70.png 70w" sizes="(max-width: 512px) 100vw, 512px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<h3 class="wp-block-heading">Especializado</h3>



<p>Cada servicio es diseñado con un conjunto limitado de capacidades que resuelvan uno y solo un problema de negocio, y que incluye su propia estructura de datos persistentes.</p>
</div>
</div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%">
<figure class="wp-block-image aligncenter size-full is-resized"><img decoding="async" src="https://softwareevolutivo.com.ec/wp-content/uploads/2022/07/autonomuos.png" alt="" class="wp-image-6353" width="150" srcset="https://softwareevolutivo.com.ec/wp-content/uploads/2022/07/autonomuos.png 492w, https://softwareevolutivo.com.ec/wp-content/uploads/2022/07/autonomuos-300x261.png 300w" sizes="(max-width: 492px) 100vw, 492px" /></figure>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%">
<h3 class="wp-block-heading">Autónomo</h3>



<p>Cada servicio puede ser desarrollado, desplegado, operado y escalado sin afectar o depender de otros servicios o sistemas, o, de otros datos fuera de su especialización.</p>
</div>
</div>



<p>Claramente una Arquitectura de Microservicios es una aplicación del paradigma de <a href="https://es.wikipedia.org/wiki/Computación_distribuida" target="_blank" rel="noreferrer noopener">Cómputo Distribuido,</a> lo que representa muchas ventajas para el negocio pero también muchos retos en la operación y mantenimiento.</p>



<h2 class="wp-block-heading" id="ventajas">Ventajas de la Arquitectura de Microservicios</h2>



<figure class="wp-block-table setdverticaltop is-style-stripes"><table><tbody><tr><td><strong>Agilidad</strong><br>Este paradigma de desarrollo permite crear equipos pequeños e independientes que se apropian de la especialización de los servicios, acelerando el tiempo de desarrollo, facilitando la auto-organización e incluso el soporte post-producción.</td><td><strong>Escalamiento</strong><br>Esta división de funcionalidad hace más fácil la medición y observabilidad de la implementación, permitiendo planificar mejor la disponibilidad y escalabilidad.</td></tr><tr><td><strong>Simplificación de Despliegue</strong><br>Una unidad pequeña de implementación, permite ciclos de CI/CD más simples, reduciendo el tiempo de despliegue de la misma y el rollback en caso de fallos. Esto agiliza las operaciones y al mismo tiempo reduce el riesgo de innovación con nuevas características.</td><td><strong>Resiliencia</strong><br>A diferencia de una Arquitectura Monolítica, un fallo en una Arquitectura de Microservicios compete a un componente específico, lo que hace más fácil su recuperación y no desestabiliza el producto de Software por completo, sino la capacidad de negocio concreta que le compete.</td></tr><tr><td><strong>Independencia Tecnológica</strong><br>El uso de una sola tecnología no es una restricción en la Arquitectura de Microservicios, dado que su interfaz de consumo abstrae los detalles de implementación y habilita a la selección de la mejor herramienta de acuerdo a la especialización del servicio.</td><td><strong>Reutilización de Código</strong><br>Evidentemente una vez construido un servicio que atiende una capacidad de negocio, el mismo puede ser utilizado por otros productos de Software de forma que su construcción aproveche la funcionalidad ya implementada.</td></tr></tbody></table></figure>



<h2 class="wp-block-heading" id="desventajas">Desventajas de la Arquitectura de Microservicios</h2>



<p>Más que desventajas, se puede hablar de retos a la hora de adoptar una Arquitectura de Microservicios, y entre los principales tenemos:</p>



<figure class="wp-block-table setdverticaltop is-style-stripes"><table><tbody><tr><td><strong>Versionamiento</strong><br>Un Microservicio, al ser autónomo, suele evolucionar independientemente del producto o de los productos de Software a los cuales provee funcionalidad. Esto significa que su interfaz API y la validación del esquema de datos varía continuamente, sin embargo para no afectar la estabilidad de sus clientes antiguos debe mantener un versionamiento de los mismos y obviamente mantenerlos operando. Esto tanto para áreas de operaciones y de desarrollo implica una tarea adicional en su implementación.</td><td><strong>Pruebas</strong><br>Si bien un Microservicio por sí solo es más simple de probar, su orquestación con otros servicios (test de integración) y las pruebas integrales (pruebas end to end) son mucho más complejas. Esto resulta a menudo en una cobertura incompleta de escenarios de pruebas y un esfuerzo redoblado en su desarrollo.</td></tr><tr><td><strong>Rollback y Sistemas Distribuidos</strong><br>El reto más grande, para mí, es el diseño de sistemas distribuidos, puesto que hay que definir qué sucede en caso de fallos esperados o inesperados en la orquestación de los servicios, analizar patrones de resiliencia y recuperación de transacciones, mirar la atomicidad de operaciones y consistencia de datos, entre otros. Claro está, que para esto nos podemos apoyar en conceptos como “<a href="https://www.enterpriseintegrationpatterns.com" target="_blank" rel="noreferrer noopener">Patrones de Integración Empresarial</a>”, “<a href="https://www.redhat.com/es/topics/microservices/what-is-a-service-mesh" target="_blank" rel="noreferrer noopener">Mallas de servicios</a>” o similares, pero sin duda estas decisiones son extremadamente relevantes no solo para el desarrollo sino para el soporte post-producción.</td><td><strong>Coordinación de equipos</strong><br>Si bien, al desarrollar un Microservicio, paradigmas como la Agilidad y un equipo responsable puede representar una gran ventaja para generar valor e innovación constante en su implementación, al tener decenas o centenas de microservicios con decenas o centenas de equipos responsables, la cooperación y comunicación de estos equipos es un reto, pues el TODO de un Sistema y su evolución se puede poner en riesgo cuando se carece de una acción combinada.</td></tr><tr><td><strong>Sobrecarga de infraestructura</strong><br>En la Arquitectura Monolítica un operador a menudo mira un servidor y un Software correspondiente con su archivo log; en un paradigma de Arquitectura de Microservicios puede enfrentarse a escenarios donde un Software tiene 100 servicios y centenas de servidores, con uno o varios balanceadores, muchos archivos de logs y decenas de formatos. Aunque hoy existen esquemas de contenerización como <a href="https://softwareevolutivo.com.ec/docker-primeros-pasos/" target="_blank" rel="noreferrer noopener">Docker</a> y Kubernetes, la administración sigue siendo un reto y se necesita varias tecnologías complementarias para enfrentarlo.</td><td><strong>Tiempo y esfuerzo 1x</strong><br>A este punto del artículo ya hemos descrito muchas actividades adicionales en el diseño, implementación, operación y mantenimiento de la Arquitectura de Microservicios, por su característica de Sistema Distribuido. Por este motivo es importante sopesar el beneficio de este paradigma en contraste con el caso de negocio y los resultados esperados a corto, medio y largo plazo; del mismo modo debemos pensar en el soporte post implementación, en relación al equipo, sus capacidades.</td></tr><tr><td><strong>Despliegue</strong><br>¡Si!, desplegar un solo microservicio es simple, sin embargo desplegar cientos de ellos de forma manual se vuelve imposible. El orden de despliegue, los cambios de base de datos que implica, la estratégia de entrega (Blue-Green, Canary, etc.), entre otros, son cosas a planificar y deben estar automatizadas, con prácticas DevOps entre otras como Integración Continua (CI) y entrega Continua (CD).</td><td><strong>Logs y Monitoreo</strong><br>De la misma manera, un producto de Software Monolítico deja un solo log de operación y se puede medir su performance centralizadamente. En una Arquitectura de Microservicios, vamos a tener tantos logs como servicios implementados para el producto de Software y además si estos son redundantes, tendremos logs multiplicados por cada servicio. Debemos planificar una estratégia para rastrear errores, identificar la salud de cada servicio y del sistema como tal.</td></tr><tr><td><strong>Debug</strong><br>Encontrar un problema no siempre va a ser posible revisando logs (que al ser tantos ya nos agrega una complejidad), a veces vamos a tener que depurar la implementación y esto en un sistema distribuido no va a ser factible, por lo que se requerirá de otras técnicas y patrones que permitan repetir ciertas ciclos de transacciones.</td><td></td></tr></tbody></table></figure>



<h2 class="wp-block-heading">Pensamientos Finales</h2>



<p>A este punto del artículo, puede sonar complejo decidir por microservicios, y la verdad lo es; sin embargo, esta complejidad no se evidencia desde el momento cero de una implementación, sino que irá apareciendo gradualmente mientras vamos creando más microservicios y escalándolos.</p>



<p>Son muchas sus ventajas, y aunque hay retos, en una estratégia digital a largo plazo es sin duda el camino a adoptar, y así mismo, debe venir acompañada de un soporte directivo dado que la estructura organizacional, técnica y de costos va a tener que evolucionar también.</p>



<p>¿Debo usar Microservicios? La realidad es que muchos desarrollos de Software nacen con este enfoque, sin abordar en un primer momento las soluciones a estos desafíos, pero eventualmente lo harán. Les invito a ver una interesante conversación entre <a href="https://youtu.be/GBTdnfD6s5Q" target="_blank" rel="noreferrer noopener">Martin Fowler y Sam NewMan sobre cuando usar microservicios y cuando no</a>.</p>



<p>El soporte de este tipo de aplicaciones es complejo, pues detectar un fallo en una Arquitectura de Microservicios requiere de un entrenamiento en el flujo de negocio, en los puntos de integración y en la interpretación de los logs de información. En muchos casos al soporte de primera línea le faltan insumos para responder y el escalamiento de las incidencias es muy rápido al equipo técnico, resultando en una sobrecarga de operación y costo.</p>
								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				</div>
		<p>The post <a href="https://softwareevolutivo.com.ec/arquitectura-de-microservicios/">Arquitectura de Microservicios: qué es, ventajas y desventajas</a> appeared first on <a href="https://softwareevolutivo.com.ec">Software Evolutivo</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://softwareevolutivo.com.ec/arquitectura-de-microservicios/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Mob Programming, colaboración en equipo</title>
		<link>https://softwareevolutivo.com.ec/mob-programming-el-arte-de-colaborar-con-el-equipo/</link>
					<comments>https://softwareevolutivo.com.ec/mob-programming-el-arte-de-colaborar-con-el-equipo/#respond</comments>
		
		<dc:creator><![CDATA[Johannes Caranqui]]></dc:creator>
		<pubDate>Thu, 16 Jun 2022 22:36:52 +0000</pubDate>
				<category><![CDATA[Agilidad]]></category>
		<category><![CDATA[Desarrollo de Software]]></category>
		<category><![CDATA[Tecnología]]></category>
		<category><![CDATA[Tendencias]]></category>
		<category><![CDATA[Coding]]></category>
		<category><![CDATA[equipo]]></category>
		<category><![CDATA[mob]]></category>
		<category><![CDATA[programacion]]></category>
		<category><![CDATA[remoto]]></category>
		<category><![CDATA[versionamiento]]></category>
		<guid isPermaLink="false">https://softwareevolutivo.com.ec/?p=1773</guid>

					<description><![CDATA[<p>Es una estrategia de programación para desarrolladores en grupo en la que trabajan en una única tarea al mismo tiempo, podríamos tomar como referencia a pair programming pero a una escala mayor</p>
<p>The post <a href="https://softwareevolutivo.com.ec/mob-programming-el-arte-de-colaborar-con-el-equipo/">Mob Programming, colaboración en equipo</a> appeared first on <a href="https://softwareevolutivo.com.ec">Software Evolutivo</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="1773" class="elementor elementor-1773">
						<section class="elementor-section elementor-top-section elementor-element elementor-element-497e6b3 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="497e6b3" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-6eb27a3" data-id="6eb27a3" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-0fc80f0 elementor-widget elementor-widget-text-editor" data-id="0fc80f0" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><b style="font-weight: normal"> </b></p><p dir="ltr" style="line-height: 1.38;text-align: center;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 15pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"><span style="border: none;overflow: hidden;width: 524px;height: 299px"><img loading="lazy" decoding="async" style="margin-left: 0px;margin-top: 0px" src="https://lh3.googleusercontent.com/NS5nJXzIuCHH7UnIYfjTmzuHeBELx3KThkjl6NNzaN-cx8E3mOJo2fpSYg662i77j0oafVkq9XcBck1twk7ryVVZExkN9mfZBR6jlKehwP-ZUfq0Tu_RytDb_lxYytICOQKo0WUrNWE5-ftlrg" width="524" height="299" /></span></span></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">¿Qué es mob programming?</span></p><p><b style="font-weight: normal"> </b></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Popularizado por </span><a style="text-decoration: none" href="https://twitter.com/WoodyZuill"><span style="font-size: 11pt;font-family: Arial;color: #1155cc;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: underline;vertical-align: baseline">Woody Zuill</span></a><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">, es una estrategia de programación para desarrolladores en grupo en la que trabajan en una única tarea al mismo tiempo, podríamos tomar como referencia a pair programming pero a una escala mayor.</span></p><p><b style="font-weight: normal"> </b></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Originalmente fue pensado para sesiones presenciales, pero poco a poco se ha adaptado para sesiones remotas, la idea principal es que un desarrollador sea </span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">piloto </span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">y sea el encargado de “pilotar” mientras que el resto actuará de “navegadores” brindando mejores prácticas para afrontar la tarea, refactorización de código y reducción de “smells” o malas prácticas de programación.</span></p><p><b style="font-weight: normal"> </b></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Para sesiones presenciales, se utilizará un solo ordenador, proyector y todos los desarrolladores en una misma sala, mientras que en sesiones remotas se utiliza varios ordenadores (uno por desarrollador remoto, lo cual puede sonar una desventaja ya que cada máquina debe tener un ambiente listo para desarrollar) y se proyecta su código en cualquier herramienta de videoconferencia como </span><a style="text-decoration: none" href="https://meet.google.com/"><span style="font-size: 11pt;font-family: Arial;color: #1155cc;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: underline;vertical-align: baseline">Google Meet</span></a><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">, </span><a style="text-decoration: none" href="https://meet.jit.si/"><span style="font-size: 11pt;font-family: Arial;color: #1155cc;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: underline;vertical-align: baseline">Jitsi</span></a><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">, etc, así como manejar un repositorio de versionamiento como </span><a style="text-decoration: none" href="https://github.com/"><span style="font-size: 11pt;font-family: Arial;color: #1155cc;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: underline;vertical-align: baseline">Github</span></a><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">, </span><a style="text-decoration: none" href="https://gitlab.com/"><span style="font-size: 11pt;font-family: Arial;color: #1155cc;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: underline;vertical-align: baseline">Gitlab</span></a><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">, entre otros.</span></p><p><b style="font-weight: normal"> </b></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Más información en el </span><a style="text-decoration: none" href="https://mobprogramming.org/"><span style="font-size: 11pt;font-family: Arial;color: #1155cc;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: underline;vertical-align: baseline">sitio web oficial</span></a><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">.</span></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> </span></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Principios:</span></p><p><b style="font-weight: normal"> </b></p><p dir="ltr" style="line-height: 1.38;text-align: center;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"><span style="border: none;overflow: hidden;width: 657px;height: 492px"><img loading="lazy" decoding="async" style="margin-left: 0px;margin-top: 0px" src="https://lh5.googleusercontent.com/CZoQ4q8KqtpC0c0LLPxB-zt0gToCDZ3lsiQXo9SbB4JOwvusu5ODDbB1zlxUeq8JKhDpgq7SLqQ3mE0zH3pRfXiwwmwRmoOHqwzcMYVZ0D5cXwppkefJZ4LFyGTY8AuStwh4iRAGnX_lMj1xvg" width="657" height="492" /></span></span></p><p><b style="font-weight: normal"> </b></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Herramienta para Mob remoto: </span></p><p><b style="font-weight: normal"> </b></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Para sesiones remotas se popularizó la herramienta </span><a style="text-decoration: none" href="https://github.com/remotemobprogramming/mob"><span style="font-size: 11pt;font-family: Arial;color: #1155cc;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: underline;vertical-align: baseline">Mob</span></a><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">, la cual mejora la agilidad para el versionamiento de código.</span></p><p><b style="font-weight: normal"> </b></p><p dir="ltr" style="line-height: 1.38;text-align: center;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"><span style="border: none;overflow: hidden;width: 300px;height: 94px"><img loading="lazy" decoding="async" style="margin-left: 0px;margin-top: 0px" src="https://lh3.googleusercontent.com/A4XcCqg4dAeb_AHzjzJbVAqwkMa6vbb6m8NwAymAF8oQ2N4zk9DWH09MaMA--pqjvy33XqKMmMFy2ScEI5tWfSQzwvuGRjbmkGch9kDPd4KeYYJ9eEzco8SyA6Pq5SZPZ-WLSNnxMDJf8ZlJ_A" width="300" height="94" /></span></span></p><p><b style="font-weight: normal"> </b></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Desarrollado por </span><a style="text-decoration: none" href="https://github.com/remotemobprogramming"><span style="font-size: 11pt;font-family: Arial;color: #1155cc;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: underline;vertical-align: baseline">Remote Mob Programming</span></a><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">, es una herramienta desarrollada en GO, mantiene las ramas limpias y solo crea “commits” temporales de proceso entre desarrolladores.</span></p><p><b style="font-weight: normal"> </b></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"> </p>								</div>
				</div>
				<section class="elementor-section elementor-inner-section elementor-element elementor-element-dc05a62 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="dc05a62" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-inner-column elementor-element elementor-element-2f4f7ff" data-id="2f4f7ff" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-c94a1b1 elementor-widget elementor-widget-image" data-id="c94a1b1" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img loading="lazy" decoding="async" width="1024" height="508" src="https://softwareevolutivo.com.ec/wp-content/uploads/2022/06/image1-1024x508.png" class="attachment-large size-large wp-image-6269" alt="Remote Mob Programming" srcset="https://softwareevolutivo.com.ec/wp-content/uploads/2022/06/image1-1024x508.png 1024w, https://softwareevolutivo.com.ec/wp-content/uploads/2022/06/image1-300x149.png 300w, https://softwareevolutivo.com.ec/wp-content/uploads/2022/06/image1-768x381.png 768w, https://softwareevolutivo.com.ec/wp-content/uploads/2022/06/image1-1536x762.png 1536w, https://softwareevolutivo.com.ec/wp-content/uploads/2022/06/image1.png 1999w" sizes="(max-width: 1024px) 100vw, 1024px" />															</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-inner-section elementor-element elementor-element-0cb96c7 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="0cb96c7" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-inner-column elementor-element elementor-element-6ea5f25" data-id="6ea5f25" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-00bf516 elementor-widget elementor-widget-text-editor" data-id="00bf516" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p dir="ltr" style="margin-top: 0pt;margin-bottom: 0pt;font-family: Lato, Helvetica, sans-serif;font-style: normal;font-weight: 400;line-height: 1.38"><span style="font-family: Arial;font-size: 11pt;font-style: normal;font-weight: 400;color: #000000;background-color: transparent">El tiempo de versionamiento se reduce considerablemente, lo que permite a los desarrolladores mantener su concentración en el código y no en el versionamiento.</span></p><p style="font-family: Lato, Helvetica, sans-serif;font-style: normal;font-weight: 400"><span style="font-weight: normal"> </span></p><p dir="ltr" style="margin-top: 0pt;margin-bottom: 0pt;font-family: Lato, Helvetica, sans-serif;font-style: normal;font-weight: 400;line-height: 1.38"><span style="font-family: Arial;font-size: 11pt;font-style: normal;font-weight: 400;color: #000000;background-color: transparent">Remote Mob Programming ofrece plugins para los principales IDEs de desarrollo como </span><a href="https://github.com/remotemobprogramming/mob-vscode-gui"><span style="font-family: Arial;font-size: 11pt;font-style: normal;font-weight: 400;color: #1155cc;background-color: transparent">Visual Studio Code</span></a><span style="font-family: Arial;font-size: 11pt;font-style: normal;font-weight: 400;color: #000000;background-color: transparent"> e </span><a href="https://github.com/remotemobprogramming/intellij-mob"><span style="font-family: Arial;font-size: 11pt;font-style: normal;font-weight: 400;color: #1155cc;background-color: transparent">IntelliJ</span></a><span style="font-family: Arial;font-size: 11pt;font-style: normal;font-weight: 400;color: #000000;background-color: transparent">.</span></p><p dir="ltr" style="margin-top: 0pt;margin-bottom: 0pt;font-family: Lato, Helvetica, sans-serif;font-style: normal;font-weight: 400;line-height: 1.38"><span style="font-family: Arial;font-size: 11pt;font-style: normal;font-weight: bold;color: #000000;background-color: transparent">Conclusiones:</span></p><p style="font-family: Lato, Helvetica, sans-serif;font-style: normal;font-weight: 400"><span style="font-weight: normal"> </span></p><ul style="margin-bottom: 0px;font-family: Lato, Helvetica, sans-serif;font-style: normal;font-weight: 400"><li style="font-family: Arial;font-size: 11pt;font-style: normal;font-weight: 400;list-style-type: disc;color: #000000;background-color: transparent"><p dir="ltr" style="margin-top: 0pt;margin-bottom: 0pt;line-height: 1.38" role="presentation"><span style="font-family: Arial;font-size: 11pt;font-style: normal;font-weight: 400;background-color: transparent">Mob se da muy bien para trabajar con historias de usuario grandes y de alto valor de negocio.</span></p></li><li style="font-family: Arial;font-size: 11pt;font-style: normal;font-weight: 400;list-style-type: disc;color: #000000;background-color: transparent"><p dir="ltr" style="margin-top: 0pt;margin-bottom: 0pt;line-height: 1.38" role="presentation"><span style="font-family: Arial;font-size: 11pt;font-style: normal;font-weight: 400;background-color: transparent">Mob facilita el proceso de aprendizaje de los miembros del equipo de negocio y tecnológico.</span></p></li><li style="font-family: Arial;font-size: 11pt;font-style: normal;font-weight: 400;list-style-type: disc;color: #000000;background-color: transparent"><p dir="ltr" style="margin-top: 0pt;margin-bottom: 0pt;line-height: 1.38" role="presentation"><span style="font-family: Arial;font-size: 11pt;font-style: normal;font-weight: 400;background-color: transparent">Cuando las personas se respetan, colaboran y están dispuestas a aprender, Mob funciona muy bien.</span></p></li></ul>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
					</div>
		</div>
					</div>
		</section>
				</div>
		<p>The post <a href="https://softwareevolutivo.com.ec/mob-programming-el-arte-de-colaborar-con-el-equipo/">Mob Programming, colaboración en equipo</a> appeared first on <a href="https://softwareevolutivo.com.ec">Software Evolutivo</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://softwareevolutivo.com.ec/mob-programming-el-arte-de-colaborar-con-el-equipo/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
