<?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>CSSLab &#187; Metodología</title>
	<atom:link href="http://www.csslab.cl/category/metodologia/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.csslab.cl</link>
	<description>Un laboratorio de ideas para la web en español</description>
	<lastBuildDate>Thu, 12 Jan 2012 02:32:35 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>Por una metodología</title>
		<link>http://www.csslab.cl/2009/10/21/por-una-metodologia/</link>
		<comments>http://www.csslab.cl/2009/10/21/por-una-metodologia/#comments</comments>
		<pubDate>Wed, 21 Oct 2009 12:59:25 +0000</pubDate>
		<dc:creator>Jorge Epuñan</dc:creator>
				<category><![CDATA[Metodología]]></category>
		<category><![CDATA[Misc]]></category>
		<category><![CDATA[desarrollo web]]></category>
		<category><![CDATA[Scrum]]></category>

		<guid isPermaLink="false">http://www.csslab.cl/?p=486</guid>
		<description><![CDATA[Suele ser bastante complicado trabajar para la web, tomando en cuenta el ritmo en que est&#225;n evolucionando las tecnolog&#237;as y lo exigente que se pone el mercado ante la vor&#225;gine de Internet. Es en momentos como &#233;stos que se necesita poner orden en el gallinero, pausar un momento y sentarse a reflexionar en cu&#225;les ser&#225;n [...]]]></description>
			<content:encoded><![CDATA[<p>Suele ser bastante complicado trabajar para la web, tomando en cuenta el ritmo en que est&aacute;n evolucionando las tecnolog&iacute;as y lo exigente que se pone el mercado ante la vor&aacute;gine de Internet. Es en momentos como &eacute;stos que se necesita poner orden en el gallinero, pausar un momento y sentarse a reflexionar en cu&aacute;les ser&aacute;n los pasos a tomar para enfrentar un proyecto web. Estimar tiempos, quiz&aacute;s transparent&aacute;rselo al cliente a trav&eacute;s de una <em>Gantt</em> y apoyarte con una metodolog&iacute;a clara, robusta y que te apoye al momento de esa tan ansiada entrega final ser&iacute;a el ideal en estas instancias.</p>
<p><em><strong>Scrum</strong></em> es una metodolog&iacute;a &aacute;gil de manejo de proyectos digitales (generalmente <em>software</em>). Puede ser tomado como un proceso, lo que hace m&aacute;s interesante a&uacute;n esta metodolog&iacute;a. Algunos incluso se atreven a mencionarlo como capaz de ser utilizado en el  desarrollo de cualquier producto; pero lo que m&aacute;s interesa es la capacidad de entregar un producto con un conjunto de funcionalidades espec&iacute;ficas a cada iteraci&oacute;n.</p>
<p>Algunas de sus caracter&iacute;sticas son:</p>
<p><span id="more-486"></span></p>
<ul>
<li> Es &aacute;gil ya que funciona con cortas iteraciones de tareas pre-definidas.</li>
<li> <em>Scrum</em> no controla tiempos, sino que tareas de desarrollo.</li>
<li> Envuelve pr&aacute;cticas ya existentes, por lo que su implementaci&oacute;n no confiere un cambio radical en la manera de trabajar.</li>
<li> Es basado en el trabajo en equipo.</li>
<li> Al ser &aacute;gil, se incrementan en cada iteraci&oacute;n funcionalidades y se adapta rapidamente a los cambios que &eacute;stos pueden sufrir.</li>
<li> Aumenta la cooperaci&oacute;n entre los integrantes del equipo y su comunicaci&oacute;n.</li>
<li> <em>Scrum</em> es una manera de detectar causas de conflictos y errores en la entrega de productos.</li>
<li> Maximiza la productividad.</li>
<li> Es escalable desde simples proyectos hasta organizaciones enteras.</li>
<li> Puede ser implementado al inicio del proyecto, a la mitad o cuando est&eacute; con problemas y retrasos en su entrega.</li>
</ul>
<p><em>Scrum</em> es un set de pr&aacute;cticas y reglas interrelacionadas que optimizan el desarrollo, reduce la sobrecarga organizacional y sincroniza los requerimientos con prototipos iterativos. Basado en teor&iacute;as de control de procesos modernas, <em>Scrum</em> permite que un desarrollo sea mejor abordado teniendo en cuenta los recursos disponibles y tiempos predefinidos.</p>
<p>Parece milagroso, pero no es la soluci&oacute;n a nuestros problemas. Por mi experiencia, necesitas que se junten algunos factores para que puedas implementar <em>Scrum</em> en un proyecto con &eacute;xito:</p>
<p><img src="http://www.csslab.cl/wp-content/uploads/2009/10/no_scrum.png" alt="CSSLab: lo que NO es Scrum" width="235" height="150" class="alignright size-full wp-image-490" align="right" /></p>
<ul>
<li> Un peque&ntilde;o tiempo (hasta 2 dias) de implementaci&oacute;n y/o adaptaci&oacute;n.</li>
<li> Un equipo ordenado y acostumbrado a cambios a mitad de un proceso.</li>
<li> Un jefe de proyecto que sepa lo que est&aacute; haciendo.</li>
<li> Un cliente que acepte la propuesta de que es un cambio que ser&aacute; para mejor.
  </li>
</ul>
<h3>Bueno, y &iquest;c&oacute;mo se utiliza?</h3>
<p>La clave del &eacute;xito de <em>Scrum</em> est&aacute; en el uso de medidas que maximizen la flexibilidad y riesgo mientras mantienes el control. La mayor&iacute;a de los proyectos tratan de evitar riesgos, aunque &eacute;sta sea una parte inherente del desarrollo web y de <em>software</em>. </p>
<blockquote><p>Manten tus amigos cerca, y tus enemigos m&aacute;s cerca a&uacute;n</p></blockquote>
<p>Las variables de un desarrollo son: <strong>riesgo</strong>, <strong>funcionalidad</strong>, <strong>costo</strong>, <strong>tiempo</strong> y <strong>calidad</strong>, las que pueden ser estimadas al inicio mismo del proyecto. Cada variable comenzar&aacute; a cambiar en el momento en que el proyecto comience, y pueden ser aumentadas o disminuidas de acuerdo al avance del desarrollo (aumenta funcionalidad por mayor tiempo y costo, por ejemplo).</p>
<p>El uso de <strong>controles</strong> es la espina dorsal de <em>Scrum</em>, y sirve para establecer, mantener y monitorear par&aacute;metros claves. Estos controles se tornan cr&iacute;ticos cuando te encuentras con incertidumbres, comportamiento impredecible y el amargo caos (sabemos que siempre existen&hellip;). Los controles utilizados en <em>Scrum</em> son:</p>
<dl>
<dt>Backlog (cartera)</dt>
<dd>Una identificaci&oacute;n de todos los requerimientos que deben cumplirse al final del desarrollo.</dd>
<dt>Objetos / Componentes</dt>
<dd>Contenedor de reutilizables</dd>
<dt>Paquetes</dt>
<dd>Grupo de objetos dentro del cual se desarrollar&aacute; un &iacute;tem del <em>backlog</em>.</dd>
<dt>Problemas</dt>
<dd>Que deben ser resueltos por un miembro del equipo al implementar un &iacute;tem del <em>backlog</em>.</dd>
<dt>Temas</dt>
<dd>Que deben ser resueltos antes que un &iacute;tem del <em>backlog</em> sea asignado a un paquete.</dd>
<dt>Soluciones</dt>
<dd>A un tema &oacute; problema.</dd>
<dt>Cambios</dt>
<dd>De actividades que son realizadas para solucionar un problema.</dd>
<dt>Riesgos</dt>
<dd>Asociados a un problema, tema &oacute; &iacute;tem del <em>backlog</em>.</dd>
</dl>
<p>Estos controles son medidos y cont&iacute;nuamente mantenidos. Los mayores controles son <em>backlog</em> y riesgos; mientras <em>backlog</em> comenzar&aacute; siendo grande, aumentar&aacute; m&aacute;s a&uacute;n cuando culmine la etapa de planificaci&oacute;n pero disminuir&aacute; considerablemente mientras el proyecto avance y se vayan quemando cada uno de sus requerimientos. Riesgos por su parte ir&aacute; en aumento a medida que se sumen temas y problemas, pero debe disminuir cuando se acerque la entrega del proyecto. 
</p>
<h3>La clave: los Sprint</h3>
<p>Un <strong>sprint</strong> es un conjunto de actividades de desarrollo en un tiempo pre-definido que conducen en un ejecutable demostrable. El intervalo entre cada sprint est&aacute; basado en la complejidad del producto, evaluaci&oacute;n de los riesgos y el grado de control deseado. Dentro del desarrollo del proyecto existir&aacute;n varios <em>sprint</em>; inicialmente sus duraciones ser&aacute;n largas (hasta 6 semanas) pero deben acortarse a medida que avanzan (1 semana). Al final de cada <em>sprint</em>, el <strong>Scrum Master</strong> (quien maneja y aplica la metodolog&iacute;a) puede cambiar <em>backlog</em> y riesgo en respuesta a eventos externos al proyecto (nuevas tecnolog&iacute;as, competitividades, fallos en herramientas, etc.) lo que se traduce en productos cada vez m&aacute;s acabados y cuya funcionalidad se va incrementando en cada <em>sprint</em>.</p>
<p>En un equipo de trabajo pueden haber muchos <em>sprints</em> trabajando en diferentes funcionalidades de un mismo producto; se recomiendan equipos de <em>sprint</em> que incluyan: desarrolladores, especialista en <strong>QA</strong> y un encargado de la documentaci&oacute;n. Cada equipo debe trabajar en sus paquetes asignados para resolver los problemas al implementar <em>backlogs</em>. La idea es que al final de cada <em>sprint</em> el equipo entregue un c&oacute;digo ejecutable y demostrable.</p>
<p>Se recomienda crear una reuni&oacute;n diaria (<strong>Scrum Meeting</strong>) donde se discuten los avances, problemas y posibles soluciones por parte de cada miembro del equipo; as&iacute; todos estar&aacute;n al tanto de lo que cada uno est&aacute; haciendo y pueden aportar con soluciones. Esta reuni&oacute;n no debe durar m&aacute;s de 15 minutos y ojal&aacute; se haga al inicio de la jornada laboral.</p>
<p><img src="http://www.csslab.cl/wp-content/uploads/2009/10/csslab_scrum.png" alt="CSSLab: Scrum" width="550" height="300" /></p>
<h3>Finalmente, el cierre</h3>
<p>Cuando todos los factores determinados en el backlog est&aacute;n terminados y los problemas fueron completados, el encargado puede determinar que el proyecto est&aacute; cerrado. Lo interesante en <em>Scrum</em> es que se asume que un producto nunca est&aacute; completo y que constantemente se puede mejorar en cuanto a funcionalidades. A partir que aqu&iacute;, se permite generar un nuevo ciclo y recomenzar <em>Scrum</em>.
</p>
<h3>Y &iquest;C&oacute;mo lo aplico?</h3>
<p>Primero, debes documentarte bastante y entender bien lo que involucra implementar una nueva metodolog&iacute;a de trabajo dentro de un equipo ya consolidado. Recuerda que manejar personas suele ser complicado y debes tener un proyecto algo liviano para hacer un primer intento. En una empresa de desarrollo de <em>software</em> o de <strong>TI</strong> no deber&iacute;a ser complicado, pero implementarlo en una agencia multimedia puede llegar a ser doloroso y con una alta tasa de fracaso, debido al ritmo vertiginoso con que se trabaja y la poca posibilidad de manejar proyectos individuales por vez (si entra un nuevo cliente, se debe tomarlo con la misma gente que ya est&aacute; trabajando en otros proyectos con <em>sprints</em> ya definidos). En ese caso, el <em>Scrum Master</em> debe saber manejar muy bien multiples proyectos simultaneamente y tratar en lo posible de mantener el orden con el cliente.</p>
<p>No deja de ser un buen desaf&iacute;o, es cosa de atreverse.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.csslab.cl/2009/10/21/por-una-metodologia/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

