<?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>Bosque Viejo &#187; desarrollo ágil</title>
	<atom:link href="http://bosqueviejo.net/tag/desarrollo-agil/feed/" rel="self" type="application/rss+xml" />
	<link>http://bosqueviejo.net</link>
	<description>Sitio web sobre programación, software libre, redes, servidores, ofimática... y todo lo relacionado con la informática que nos rodea</description>
	<lastBuildDate>Tue, 08 May 2012 14:40:56 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>En busca de la excelencia del código</title>
		<link>http://bosqueviejo.net/2012/02/14/en-busca-de-la-excelencia-del-codigo/</link>
		<comments>http://bosqueviejo.net/2012/02/14/en-busca-de-la-excelencia-del-codigo/#comments</comments>
		<pubDate>Tue, 14 Feb 2012 14:33:57 +0000</pubDate>
		<dc:creator>bombadil</dc:creator>
				<category><![CDATA[Libros]]></category>
		<category><![CDATA[desarrollo ágil]]></category>
		<category><![CDATA[excelencia del código]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[raúl herranz]]></category>
		<category><![CDATA[scrum manager]]></category>

		<guid isPermaLink="false">http://bosqueviejo.net/?p=1236</guid>
		<description><![CDATA[ Así se titula el primer libro de Raúl Herranz, uno de los profesores acreditados de Scrum Manager. El documento es libre y gratuito y puede descargarse de la siguiente dirección:
Scrum Manager &#8211; En busca de la excelencia del CódigoRaúl HerranzRev. 1.0
El texto es conciso y no muy extenso, por lo que se hace amena su lectura. Lo más importante, es que expone una serie de criterios para definir lo que se considera la excelencia del código, así como prácticas y técnicas para hacer que se consiga. El libro nos da un repaso a temas tan interesantes como la automatización de tareas, con lecciones tan importantes como la colectivización del código; pasando por las revisiones de código, la programación por parejas y revisiones por pares; las pruebas: unitarias, de integración, de sistema, de implantación, de aceptación e incluso regresión; y por último, pero no por ello menos importante, la refactorización, esa tarea siempre olvidada y que nos ahorra a la larga mucha deuda técnica.
Me gusta el formato del documento y su narrativa. Lo que quizá cambiaría es que está muy focalizado en sus ejemplos a entornos de desarrollo Java. Los pondría más genéricos y/o orientados a diferentes lenguajes y entornos [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://bosqueviejo.net/wp-content/uploads/excelencia_codigo-150x150.png" alt="" title="excelencia_codigo" width="150" height="150" class="alignleft size-thumbnail wp-image-1237" /> Así se titula el primer libro de <a href="http://www.linkedin.com/in/raulherranz">Raúl Herranz</a>, uno de los profesores acreditados de <a href="http://www.scrummanager.net/oks/">Scrum Manager</a>. El documento es libre y gratuito y puede descargarse de la siguiente dirección:</p>
<p><a href="http://www.scrummanager.net/files/scrum_manager_excelencia_del_codigo.pdf">Scrum Manager &#8211; En busca de la excelencia del Código</a><br /><strong>Raúl Herranz</strong><br />Rev. 1.0</p>
<p>El texto es conciso y no muy extenso, por lo que se hace amena su lectura. Lo más importante, es que expone una serie de criterios para definir lo que se considera <em>la excelencia del código</em>, así como prácticas y técnicas para hacer que se consiga. El libro nos da un repaso a temas tan interesantes como la automatización de tareas, con lecciones tan importantes como la colectivización del código; pasando por las revisiones de código, la programación por parejas y revisiones por pares; las pruebas: unitarias, de integración, de sistema, de implantación, de aceptación e incluso regresión; y por último, pero no por ello menos importante, la refactorización, esa tarea siempre olvidada y que nos ahorra a la larga mucha deuda técnica.</p>
<p>Me gusta el formato del documento y su narrativa. Lo que quizá cambiaría es que está muy focalizado en sus ejemplos a entornos de desarrollo Java. Los pondría más genéricos y/o orientados a diferentes lenguajes y entornos de desarrollo.</p>
<p>En conclusión, un buen documento que nos permite hacer repaso de las técnicas que ya aplicamos y las que aún no hacemos para poder mejorar nuestro quehacer diario con buenas prácticas, buena metodología y buenos consejos. Gracias Raúl por este material, y sobretodo por poder disponer de él de forma libre y gratuita.</p>
]]></content:encoded>
			<wfw:commentRss>http://bosqueviejo.net/2012/02/14/en-busca-de-la-excelencia-del-codigo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ChicagoBoss: web y erlang&#8230; cada vez más cerca</title>
		<link>http://bosqueviejo.net/2011/05/16/chicagoboss-web-y-erlang-cada-vez-mas-cerca/</link>
		<comments>http://bosqueviejo.net/2011/05/16/chicagoboss-web-y-erlang-cada-vez-mas-cerca/#comments</comments>
		<pubDate>Mon, 16 May 2011 16:33:28 +0000</pubDate>
		<dc:creator>bombadil</dc:creator>
				<category><![CDATA[Desarrollo de Software]]></category>
		<category><![CDATA[chicagoboss]]></category>
		<category><![CDATA[desarrollo ágil]]></category>
		<category><![CDATA[desarrollo web]]></category>
		<category><![CDATA[django]]></category>
		<category><![CDATA[erlang]]></category>
		<category><![CDATA[erlydtl]]></category>
		<category><![CDATA[evan miller]]></category>
		<category><![CDATA[mvc]]></category>
		<category><![CDATA[rails]]></category>

		<guid isPermaLink="false">http://bosqueviejo.net/?p=708</guid>
		<description><![CDATA[ Hace un tiempo, Juanse, un compañero de trabajo, me envió un enlace de un framework desarrollado por Evan Miller que se llama ChicagoBoss. Este framework ha sido concebido con Ruby on Rails en mente, no es de extrañar cuando a lo largo de toda la documentación, se hacen referencias a cosas de Ruby on Rails, y las similitudes son tan extraordinariamente grandes, para ser dos lenguajes bastante diferentes.
Los datos y su acceso
En un principio, me resultó curioso, el sistema de ChicagoBoss había resuelto de una forma muy elegante un problema que llevaba tiempo intentando resolver en Erlang&#8230; la definición rápida de los modelos. Para un proyecto de ChicagoBoss, un modelo  puede definirse tal que así:

-module&#40;person, &#91;Id, Firstname, Lastname&#93;&#41;.

Algo bastante impresionante. Agregado con la posibilidad de conectar con base de datos tan variadas como: MySQL, PostgreSQL, MongoDB, Tokyo Tyrant o Mnesia.
Un &#8220;vista&#8221;zo
Otro factor bastante curioso, la forma en la que escribir código mezclado con el código HTML en modo de tags, tal y como hacen lenguajes como Ruby (con el erb de rails), JSP, PHP, ASP&#8230; me parecía muy curioso y potente al mismo tiempo. La solución acogida por ChicagoBoss ha sido la misma que se empleó en Django [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://bosqueviejo.net/wp-content/uploads/chicago-boss-150x150.png" alt="" title="chicago-boss" width="150" height="150" class="alignleft size-thumbnail wp-image-709" /> Hace un tiempo, Juanse, un compañero de trabajo, me envió un enlace de un framework desarrollado por <a href="http://www.evanmiller.org/">Evan Miller</a> que se llama <a href="http://www.chicagoboss.org/">ChicagoBoss</a>. Este framework ha sido concebido con Ruby on Rails en mente, no es de extrañar cuando a lo largo de toda la documentación, se hacen referencias a cosas de Ruby on Rails, y las similitudes son tan extraordinariamente grandes, para ser dos lenguajes bastante diferentes.</p>
<h3>Los datos y su acceso</h3>
<p>En un principio, me resultó curioso, el sistema de ChicagoBoss había resuelto de una forma muy elegante un problema que llevaba tiempo intentando resolver en Erlang&#8230; la definición rápida de los modelos. Para un proyecto de ChicagoBoss, un modelo  puede definirse tal que así:</p>

<div class="wp_syntax"><div class="code"><pre class="erlang" style="font-family:monospace;"><span style="color: #014ea4;">-</span><span style="color: #5400b3;">module</span><span style="color: #109ab8;">&#40;</span>person<span style="color: #6bb810;">,</span> <span style="color: #109ab8;">&#91;</span><span style="color: #45b3e6;">Id</span><span style="color: #6bb810;">,</span> <span style="color: #45b3e6;">Firstname</span><span style="color: #6bb810;">,</span> <span style="color: #45b3e6;">Lastname</span><span style="color: #109ab8;">&#93;</span><span style="color: #109ab8;">&#41;</span><span style="color: #6bb810;">.</span></pre></div></div>

<p>Algo bastante impresionante. Agregado con la posibilidad de conectar con base de datos tan variadas como: MySQL, PostgreSQL, MongoDB, Tokyo Tyrant o Mnesia.</p>
<h3>Un &#8220;vista&#8221;zo</h3>
<p>Otro factor bastante curioso, la forma en la que escribir código mezclado con el código HTML en modo de tags, tal y como hacen lenguajes como Ruby (con el erb de rails), JSP, PHP, ASP&#8230; me parecía muy curioso y potente al mismo tiempo. La solución acogida por ChicagoBoss ha sido la misma que se empleó en Django (en Python):</p>

<div class="wp_syntax"><div class="code"><pre class="erlang" style="font-family:monospace;"><span style="color: #109ab8;">&#123;</span><span style="color: #666666; font-style: italic;">% for person in people %}</span>
 <span style="color: #014ea4;">-</span> <span style="color: #109ab8;">&#123;</span><span style="color: #109ab8;">&#123;</span> person<span style="color: #6bb810;">.</span>full_name <span style="color: #109ab8;">&#125;</span><span style="color: #109ab8;">&#125;</span>
<span style="color: #109ab8;">&#123;</span><span style="color: #666666; font-style: italic;">% endfor %}</span></pre></div></div>

<p>El código que hace esta magia es el <a href="http://code.google.com/p/erlydtl/">ErlyDTL</a>.</p>
<h3>Por último&#8230; los controladores</h3>
<p>Los controladores son tan simples de generar como lo son los de Rails. Para quien no haya manejado ninguno de estos sistemas, puede que un ejemplo le resulte aclarador:</p>

<div class="wp_syntax"><div class="code"><pre class="erlang" style="font-family:monospace;"><span style="color: #014ea4;">-</span><span style="color: #5400b3;">module</span><span style="color: #109ab8;">&#40;</span>book_controller<span style="color: #6bb810;">,</span> <span style="color: #109ab8;">&#91;</span><span style="color: #45b3e6;">Req</span><span style="color: #109ab8;">&#93;</span><span style="color: #109ab8;">&#41;</span><span style="color: #6bb810;">.</span>
<span style="color: #014ea4;">-</span><span style="color: #5400b3;">compile</span><span style="color: #109ab8;">&#40;</span>export_all<span style="color: #109ab8;">&#41;</span><span style="color: #6bb810;">.</span>
&nbsp;
<span style="color: #ff3c00;">edit</span><span style="color: #109ab8;">&#40;</span><span style="">'GET'</span><span style="color: #6bb810;">,</span> <span style="color: #109ab8;">&#91;</span><span style="color: #109ab8;">&#93;</span><span style="color: #109ab8;">&#41;</span> <span style="color: #6bb810;">-&gt;</span>
   <span style="color: #006600;">ok</span><span style="color: #6bb810;">;</span>
<span style="color: #ff3c00;">edit</span><span style="color: #109ab8;">&#40;</span><span style="">'POST'</span><span style="color: #6bb810;">,</span> <span style="color: #109ab8;">&#91;</span><span style="color: #109ab8;">&#93;</span><span style="color: #109ab8;">&#41;</span> <span style="color: #6bb810;">-&gt;</span>
   <span style="color: #109ab8;">&#123;</span>redirect<span style="color: #6bb810;">,</span> <span style="color: #ff7800;">&quot;/somewhere&quot;</span><span style="color: #109ab8;">&#125;</span><span style="color: #6bb810;">.</span></pre></div></div>

<p>Como se puede ver, si el controlador atiende a la ruta <tt>/book/edit</tt>, si lo hace mediante método GET, se ejecutará el primer método retornando simplemente <tt>ok</tt>. Si se tratase de un formulario con método POST, entraría por el segundo método y se redireccionaría la página a la ruta <tt>/somewhere</tt>.</p>
<p>La capacidad de gestión de los datos entre los modelos y el paso de estos a través del controlador hacia la vista, es igual de potente que en rails, django y frameworks similares. El controlador se hace bastante simple y puede contener código más volcado al flujo de las llamadas y la lógica propia del sitio web que se desee desarrollar.</p>
<h3>Las rutas y la administración&#8230; bonus track!</h3>
<p>Como agregados, aunque otros frameworks similares tienen también algunas de estas facilidades, como son los ficheros de rutas, nos encontramos por otro lado con la interfaz de administración. La cual nos brinda información del entorno, la posibilidad de escribir ficheros de idioma (para traducir la web) y visualizar las rutas.</p>
<h3>Conclusiones</h3>
<p>Hace tiempo <a href="http://bosqueviejo.net/2009/08/13/lenguajes-funcionales-para-el-desarrollo-web/">comentaba la potencia que se comenzaba a ver en el desarrollo de proyectos erlang para la web</a>, ahora, cada vez es más una realidad, gracias a trabajos de tanta calidad como <a href="http://nitrogen-erlang.tumblr.com/">Nitrogen</a>, <a href="https://github.com/yariv/erlyweb">Erlyweb</a> o este, ChicagoBoss.</p>
<p>Aún no llevo el suficiente tiempo jugando con la herramienta en sí, pero me ha resultado bastante cómoda la generación del entorno (aunque algo buggy&#8230; se nota que hay que pulir aún por ahí un poco) y la documentación aún es algo escasa&#8230; no obstante, se perfila como un entorno a tener en cuenta por su versatilidad y porque ofrece cosas que en otros entornos son bastante más complejas de conseguir: escalabilidad y redundancia.</p>
]]></content:encoded>
			<wfw:commentRss>http://bosqueviejo.net/2011/05/16/chicagoboss-web-y-erlang-cada-vez-mas-cerca/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Inversión de Control, el patrón de los frameworks</title>
		<link>http://bosqueviejo.net/2011/03/08/inversion-de-control-el-patron-de-los-frameworks/</link>
		<comments>http://bosqueviejo.net/2011/03/08/inversion-de-control-el-patron-de-los-frameworks/#comments</comments>
		<pubDate>Tue, 08 Mar 2011 17:48:39 +0000</pubDate>
		<dc:creator>bombadil</dc:creator>
				<category><![CDATA[Desarrollo de Software]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[desarrollo ágil]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[martin fowler]]></category>
		<category><![CDATA[patrones de diseño]]></category>

		<guid isPermaLink="false">http://bosqueviejo.net/?p=571</guid>
		<description><![CDATA[ Leyendo un artículo de Martin Fowler, sobre el tema Inversión de Control (en inglés), comenzando por el final, la etimología de la frase (entendido como el origen del concepto), se comenta que, en un principio (sobre los años 80) la gente se refería a una nueva forma de hacer las cosas como el Principio de Hollywood, teniendo presente la famosa frase de los cineastas: &#8220;no nos llames, nosotros te llamaremos&#8221;.
Si pensamos en las librerías, en cualquier lenguaje, ya sean módulos, paquetes u objetos, siempre alcanzamos una funcionalidad encapsulada dentro de una forma específica a la que se la puede llamar para realizar una acción. Pero esto cambia radicalmente en los frameworks, u entornos de desarrollo, ya que estos entornos, normalmente, realizan un cierto trabajo, y te permiten extender esa funcionalidad base, con ciertas reglas, a través de código que se escribe.
Se podría pensar en los frameworks como piezas de software que permiten agregar una funcionalidad extra desarrollada por el programador que usa el framework, a modo de addon, plugin o extensión. Pero no es eso. Las extensiones (o llámese como se quiera) son trozos de código, que opcionalmente se puede ejecutar en un programa completamente funcional. Como es obvio, [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://bosqueviejo.net/wp-content/uploads/ioc.jpeg" alt="" title="ioc" width="120" height="120" class="alignleft size-full wp-image-685" /> Leyendo un artículo de Martin Fowler, sobre el tema <a href="http://martinfowler.com/bliki/InversionOfControl.html">Inversión de Control</a> (en inglés), comenzando por el final, la etimología de la frase (entendido como el origen del concepto), se comenta que, en un principio (sobre los años 80) la gente se refería a una nueva forma de hacer las cosas como <em>el Principio de Hollywood</em>, teniendo presente la famosa frase de los cineastas: &#8220;no nos llames, nosotros te llamaremos&#8221;.</p>
<p>Si pensamos en las librerías, en cualquier lenguaje, ya sean módulos, paquetes u objetos, siempre alcanzamos una funcionalidad encapsulada dentro de una forma específica a la que se la puede llamar para realizar una acción. Pero esto cambia radicalmente en los <em>frameworks</em>, u entornos de desarrollo, ya que estos entornos, normalmente, realizan un cierto trabajo, y te permiten extender esa funcionalidad base, con ciertas reglas, a través de código que se escribe.</p>
<p>Se podría pensar en los <em>frameworks</em> como piezas de software que permiten agregar una funcionalidad extra desarrollada por el programador que usa el <em>framework</em>, a modo de <em>addon</em>, <em>plugin</em> o extensión. Pero no es eso. Las extensiones (o llámese como se quiera) son trozos de código, que opcionalmente se puede ejecutar en un programa completamente funcional. Como es obvio, ningún <em>framework</em> es completamente funcional sin agregar ningún código por parte del programador.</p>
<p>Por lo tanto, la inversión de control es más una base sobre la que construir un elemento, es nuestra arquitectura de soporte, mientras que la base sobre la que se programa un plugin es un elemento completo y funcional que se extiende mediante el plugin, pero que no depende de él.</p>
<p>Este es otro de los grandes elementos en los que se basa la Ingeniería del Software al decir que, lo importante, es la lógica de negocio o el sistema en sí que se quiere desarrollar, dejando la parte de arquitectura de soporte y el trasfondo sobre el que se ejecuta la solución al <em>framework</em>.</p>
<p>Si aún se tiene alguna duda, puede que con este ejemplo se disipen (o aumenten <img src='http://bosqueviejo.net/wp-includes/images/smilies/icon_razz.gif' alt=':-P' class='wp-smiley' />  ), tomado del artículo de Martin Fowler comentado antes, tenemos un trozo de código en Ruby tal que así:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#CC0066; font-weight:bold;">puts</span> <span style="color:#996600;">'¿Cómo te llamas?'</span>
nombre = <span style="color:#CC0066; font-weight:bold;">gets</span>
procesa_nombre<span style="color:#006600; font-weight:bold;">&#40;</span>nombre<span style="color:#006600; font-weight:bold;">&#41;</span>
&nbsp;
<span style="color:#CC0066; font-weight:bold;">puts</span> <span style="color:#996600;">'¿Qué buscas?'</span>
busqueda = <span style="color:#CC0066; font-weight:bold;">gets</span>
procesa_busqueda<span style="color:#006600; font-weight:bold;">&#40;</span>busqueda<span style="color:#006600; font-weight:bold;">&#41;</span></pre></div></div>

<p>En este trozo de código todo está bajo control, el sistema se ejecuta de forma lineal, pide la información en el momento en el que se le ha escrito y descrito y el código se ejecuta, secuencialmente, de forma predecible.</p>
<p>Ahora veremos otro ejemplo:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#CC0066; font-weight:bold;">require</span> <span style="color:#996600;">'tk'</span>
&nbsp;
root = TkRoot.<span style="color:#9900CC;">new</span>
nombre_etiqueta = TkLabel.<span style="color:#9900CC;">new</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#123;</span> text <span style="color:#996600;">&quot;¿Cómo te llamas?&quot;</span> <span style="color:#006600; font-weight:bold;">&#125;</span>
nombre_etiqueta.<span style="color:#9900CC;">pack</span>
&nbsp;
nombre = TkEntry.<span style="color:#9900CC;">new</span><span style="color:#006600; font-weight:bold;">&#40;</span>root<span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color:#9900CC;">pack</span>
nombre.<span style="color:#9900CC;">bind</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">&quot;FocusOut&quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#123;</span> procesa_nombre<span style="color:#006600; font-weight:bold;">&#40;</span>nombre<span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#125;</span>
&nbsp;
busqueda_etiqueta = TkLabel.<span style="color:#9900CC;">new</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#123;</span> text <span style="color:#996600;">&quot;¿Qué buscas?&quot;</span> <span style="color:#006600; font-weight:bold;">&#125;</span>
busqueda_etiqueta.<span style="color:#9900CC;">pack</span>
&nbsp;
busqueda = TkEntry.<span style="color:#9900CC;">new</span><span style="color:#006600; font-weight:bold;">&#40;</span>root<span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="color:#9900CC;">pack</span>
busqueda.<span style="color:#9900CC;">bind</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">&quot;FocusOut&quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#123;</span> procesa_busqueda<span style="color:#006600; font-weight:bold;">&#40;</span>busqueda<span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#125;</span>
&nbsp;
Tk.<span style="color:#9900CC;">mainloop</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span></pre></div></div>

<p>Aquí hay una gran diferencia en el flujo de ejecución, ya que los mensajes se ejecutan en el orden que el framework los llama, según la interacción del usuario. En este caso, el framework controla la ventana, los eventos que se suceden sobre los elementos gráficos y, en el caso de que haya un evento, si hemos desarrollado código para atender a ese evento, es el framework el que llama a nuestro código. Eso es <em>inversión de control</em>.</p>
]]></content:encoded>
			<wfw:commentRss>http://bosqueviejo.net/2011/03/08/inversion-de-control-el-patron-de-los-frameworks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Propiedad del Código</title>
		<link>http://bosqueviejo.net/2010/08/06/propiedad-del-codigo/</link>
		<comments>http://bosqueviejo.net/2010/08/06/propiedad-del-codigo/#comments</comments>
		<pubDate>Fri, 06 Aug 2010 12:04:01 +0000</pubDate>
		<dc:creator>bombadil</dc:creator>
				<category><![CDATA[Desarrollo de Software]]></category>
		<category><![CDATA[desarrollo ágil]]></category>
		<category><![CDATA[desarrollo profesional]]></category>
		<category><![CDATA[programación]]></category>
		<category><![CDATA[xtreme programming]]></category>

		<guid isPermaLink="false">http://bosqueviejo.net/?p=490</guid>
		<description><![CDATA[Cuando comencé a leer libros sobre Extreme Programming, me llamó la atención una de las propiedades de esta metodología de desarrollo, que era la propiedad del código.
Por mi parte he sido siempre muy comunista con respecto al código, no tengo el menor reparo en mirar, ampliar y corregir código de otras personas y dejo que los demás vean, opinen y corrijan y/o agreguen cosas a mis códigos&#8230; es la mentalidad del software libre.
Pero en las empresas ocurre lo contrario. Es muy normal, yo diría que incluso enfermizo, llegar a ver cómo cuando entras en una empresa en la que hay más de tres programadores, cómo cuando algo falla, cuando hay que hacer una nueva mejora, ampliación, adaptación, siempre dice uno en voz alta: ese código es de fulanito; indicando que ni lo va a ver, ni lo piensa modificar.
Concepto de Propiedad del Código
Eso es a lo que se refieren muchos de los autores de las metodologías ágiles. El hecho de que un código sea de alguien, es nocivo, perjudicial, para el desarrollo conjunto de aplicaciones.
Si se quiere desarrollar una aplicación, normalmente, llega hasta el programador (o programadores) que comienzan a escribir el código que hará que esa aplicación funcione. Si [...]]]></description>
			<content:encoded><![CDATA[<p>Cuando comencé a leer libros sobre Extreme Programming, me llamó la atención una de las propiedades de esta metodología de desarrollo, que era <em>la propiedad del código</em>.</p>
<p>Por mi parte he sido siempre muy <em>comunista</em> con respecto al código, no tengo el menor reparo en mirar, ampliar y corregir código de otras personas y dejo que los demás vean, opinen y corrijan y/o agreguen cosas a mis códigos&#8230; es la mentalidad del software libre.</p>
<p>Pero en las empresas ocurre lo contrario. Es muy normal, yo diría que incluso enfermizo, llegar a ver cómo cuando entras en una empresa en la que hay más de tres programadores, cómo cuando algo falla, cuando hay que hacer una nueva mejora, ampliación, adaptación, siempre dice uno en voz alta: <em>ese código es de fulanito</em>; indicando que ni lo va a ver, ni lo piensa modificar.</p>
<h3>Concepto de Propiedad del Código</h3>
<p>Eso es a lo que se refieren muchos de los autores de las metodologías ágiles. El hecho de que un código <em>sea de alguien</em>, es nocivo, perjudicial, para el desarrollo conjunto de aplicaciones.</p>
<p>Si se quiere desarrollar una aplicación, normalmente, llega hasta el programador (o programadores) que comienzan a escribir el código que hará que esa aplicación funcione. Si nos ponemos en el caso de una aplicación comercial de gestión de clientes, que se separa en modo MVC, y tenemos tres programadores que, se han segmentado y trabaja cada uno de forma autónoma en cada una de las capas, tendremos que entre ellos se comunicarán para hacer peticiones del tipo: <em>Necesito que el modelo valide este dato</em>; <em>No puedo seguir hasta que la interfaz no la termine mi compañero</em>; &#8230;</p>
<h3>Inconvenientes y Perjuicios</h3>
<p>Como he mencionado antes, crear parcelas en una aplicación en desarrollo, cuando es muy normal que se tengan que hacer modificaciones que influyan en todas las partes, hace que cada cambio esté guiado por conversaciones aisladas con gente del equipo que opina que eso no es suyo, que hables con otra persona que es la que lo ha hecho, etc.</p>
<p>Esta actitud crea incertidumbre de vistas hacia arriba, ya que un arquitecto, analista, jefe de proyecto, o director técnico, puede pensar que su desarrollo está demasiado atado a una persona, que puede irse de vacaciones durante dos semanas quedándose todo el trabajo parado, o incluso irse de la empresa, teniendo que hacer <em>herencia</em> de ese código a otros que tendrán que comenzar a <em>estudiarlo</em>.</p>
<p>Desde el punto de vista del programador, realmente y visto en frío, con esta actitud <em>está solo</em>. Es decir, ante cualquier trabajo que haya que realizar nuevo sobre su área, cada error que se produzca, cada tarea o incidencia que caiga en el trozo de código que <em>tiene en propiedad</em> es responsabilidad suya y solo suya, no pudiendo aprovechar la visión conjunta que puede aportar un equipo multidisciplinar.</p>
<h3>Propiedad Comunitaria del Código</h3>
<p>El hecho de que un código sea de un grupo (no de un individuo) hace que el código sea creado, modificado y ampliado por un equipo, por más de una cabeza pensante, por lo que dará más riqueza al código y se evitarán muchos errores, al ser más ojos los que ven ese código.</p>
<p>En principio, de cara a la alta esfera de la compañía, se ve al equipo de programación como un todo, cada uno puede realizar el trabajo sobre el código que se le diga que debe trabajar (por asignación), ya que es parte del equipo o grupo que lo ha creado. </p>
<p>Puede rotarse la delegación de su tarea (por vacaciones, marcha de la compañía, o baja laboral) en cualquier momento, puesto que sus compañeros saben lo que hacen y sobre qué lo está haciendo.</p>
<p>Ante un error o una incidencia, hay un grupo, un equipo, que puede revisar el código y corregirlo.</p>
<h3>Conclusiones</h3>
<p>Es sentido común el pensar que esto debería de ser así en todas las compañías, pero aún queda bastante en tema de educación el hacer ver a muchas personas que las cosas que hacen <em>no son suyas</em>, sino que son de la compañía para la que trabajan y en esa misma compañía, junto a ellas, han contratado a compañeros para hacer el trabajo más llevadero, más rápido y más profesional. Si esto no se aprovecha, entonces, no se ganará del intercambio de conocimiento  entre personas que sepan más de un campo concreto, ni de la riqueza a la que puede llegar un software cuando se programa por un equipo, no por un individuo.</p>
]]></content:encoded>
			<wfw:commentRss>http://bosqueviejo.net/2010/08/06/propiedad-del-codigo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Calidad Interna</title>
		<link>http://bosqueviejo.net/2010/07/01/calidad-interna/</link>
		<comments>http://bosqueviejo.net/2010/07/01/calidad-interna/#comments</comments>
		<pubDate>Thu, 01 Jul 2010 19:46:30 +0000</pubDate>
		<dc:creator>bombadil</dc:creator>
				<category><![CDATA[Desarrollo de Software]]></category>
		<category><![CDATA[calidad]]></category>
		<category><![CDATA[desarrollo ágil]]></category>
		<category><![CDATA[deuda técnica]]></category>

		<guid isPermaLink="false">http://bosqueviejo.net/?p=451</guid>
		<description><![CDATA[el tema de la calidad ha llenado páginas y páginas de la literatura informática en todos los idiomas. Es tal la necesidad de la búsqueda de la calidad, que hay estudios, técnicas y departamentos dentro de empresas, e incluso empresas, que se dedican en cuerpo y alma a establecer parámetros de calidad a los productos y proyectos que se realizan en las empresas de desarrollo de software.
Dentro del tema de la calidad, visto como un amplio abanico de elementos que la conforman, nos topamos con uno bastante confuso y complejo al principio: la calidad interna.
¿Qué es la calidad interna?
Cuando se desarrolla un software, se desarrolla con una calidad medida según sus requisitos que pueden determinar su alto grado de calidad, midiendo una serie de parámetros. Pero estos parámetros no reflejan ni tienen en cuenta la calidad del proceso de creación del software en sí, ni la calidad del software escrito, solo la calidad externa, es decir, la función que realiza el software.
La calidad interna, sin embargo, mide y tiene presente la forma en la que se ha desarrollado el código de modo que pueda mantenerse (corregirse, ampliarse y adaptarse) de forma rápida y sencilla, gracias a un diseño e implementación [...]]]></description>
			<content:encoded><![CDATA[<p>el tema de la calidad ha llenado páginas y páginas de la literatura informática en todos los idiomas. Es tal la necesidad de la búsqueda de la calidad, que hay estudios, técnicas y departamentos dentro de empresas, e incluso empresas, que se dedican en cuerpo y alma a establecer parámetros de calidad a los productos y proyectos que se realizan en las empresas de desarrollo de software.</p>
<p>Dentro del tema de la calidad, visto como un amplio abanico de elementos que la conforman, nos topamos con uno bastante confuso y complejo al principio: <strong>la calidad interna</strong>.</p>
<h3>¿Qué es la calidad interna?</h3>
<p>Cuando se desarrolla un software, se desarrolla con una calidad medida según sus requisitos que pueden determinar su alto grado de calidad, midiendo una serie de parámetros. Pero estos parámetros no reflejan ni tienen en cuenta la calidad del proceso de creación del software en sí, ni la calidad del software escrito, solo la calidad externa, es decir, la función que realiza el software.</p>
<p>La calidad interna, sin embargo, mide y tiene presente la forma en la que se ha desarrollado el código de modo que pueda mantenerse (corregirse, ampliarse y adaptarse) de forma rápida y sencilla, gracias a un diseño e implementación limpia, simple y clara.</p>
<p>La importancia que tiene este tipo de calidad se muestra de manifiesto en varios textos como <a href="/2010/03/08/scrum-y-xp-desde-las-trincheras/">Scrum y XP desde las trincheras</a> (de Henrik Kniberg) y algunos blogs como el de <a href="http://jmbeas.iexpertos.com/tag/agile/">José Manuel Beas</a>, <a href="http://secugest.blogspot.com/2007/11/calidad-interna-o-externa.html">Joseba Enjuto</a>, una entrada de Diego Gómez en la web <a href="http://www.dosideas.com/noticias/metodologias/189-como-hacer-yo-comprar-software-de-calidad.html">Dos Ideas</a>, o incluso en el propio estándar <a href="http://es.wikipedia.org/wiki/ISO/IEC_9126">ISO/IEC 9126</a>.</p>
<h3>¿Por qué es tan importante?</h3>
<p>Para un desarrollador, la calidad interna es tan o más importante que la calidad externa, puesto que si un software hace lo que debe, pero una de cada 1000 veces no funciona, puede deberse a un fallo interno difícil de detectar que, pueda incluso verse agravado por la mala calidad con la que se ha desarrollado (diseñado o implementado) el sistema en sí.</p>
<p>En base a tiempo, un software desarrollado con una calidad baja o nula, puede ser desarrollado en un tiempo muy pequeño, ya que no se tiene en consideración muchos aspectos necesarios y útiles, como por ejemplo, una buena orientación a objetos, modularización del código, reutilización, algoritmos excesivamente complejos u ofuscados, etc.</p>
<p>Cuando, por un fallo (mantenimiento correctivo) hay que volver al código para corregir un defecto, y se detecta un error de diseño, modificar un código <em>mal oliente</em>, es más complicado que corregir un defecto en un código que está mejor desarrollado en base a patrones y reglas básicas de análisis, diseño o codificación.</p>
<p>En otras palabras: <strong>un programa con calidad interna baja es un programa que generará <a href="/2010/06/20/deuda-tecnica/">deuda técnica</a>.</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://bosqueviejo.net/2010/07/01/calidad-interna/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Kanban y Scrum</title>
		<link>http://bosqueviejo.net/2010/04/19/kanban-y-scrum/</link>
		<comments>http://bosqueviejo.net/2010/04/19/kanban-y-scrum/#comments</comments>
		<pubDate>Mon, 19 Apr 2010 00:25:07 +0000</pubDate>
		<dc:creator>bombadil</dc:creator>
				<category><![CDATA[Libros]]></category>
		<category><![CDATA[desarrollo ágil]]></category>
		<category><![CDATA[henri kniberg]]></category>
		<category><![CDATA[kanban]]></category>
		<category><![CDATA[mattias skarin]]></category>
		<category><![CDATA[scrum]]></category>

		<guid isPermaLink="false">http://bosqueviejo.net/?p=402</guid>
		<description><![CDATA[En este blog he escrito bastante sobre estos temas, y ahora, después de haber terminado de leer un gran libro, escrito sobre uno de los autores que más ha aportado a estas metodologías con su trabajo incansable, hablo de Henri Kniberg, me complace poder aconsejar la lectura de este libro, que se puede descargar libremente.
El libro, escrito por Kniberg y Mattias Skarin (otro personaje dentro del mundo de las metodologías ágiles), explora ambas metodologías desde el punto de vista de la comparación. Vamos, que las compara entre sí para sacar los mejor de ambas en cada elemento específico, o cada situación en la que ambas pueden emplearse.
La lectura es muy amena y está plagada de imágenes que ilustran todas las situaciones que se van sucediendo a lo largo del libro, por lo que engancha de principio a fin.
La segunda parte del libro, además, es un ejemplo, con un proyecto real, de cómo se puede emplear kanban en el mundo real. Los problemas que pueden surgir y como este grupo los solventó.
No olvido también el mencionar que está disponible la versión en castellano (y en francés) tal y como la propia página oficial del libro informa. Así como agradecer a la [...]]]></description>
			<content:encoded><![CDATA[<p>En este blog he escrito bastante sobre estos temas, y ahora, después de haber terminado de leer un gran libro, escrito sobre uno de los autores que más ha aportado a estas metodologías con su trabajo incansable, hablo de Henri Kniberg, me complace poder aconsejar la lectura de este libro, que <a href="http://www.infoq.com/minibooks/kanban-scrum-minibook">se puede descargar libremente</a>.</p>
<div style="float:left;padding-right:10px;padding-bottom:10px;"><a href='http://openlibrary.org/books/OL24194258M/Kanban_and_Scrum' ><img src='http://covers.openlibrary.org/b/id/6372745-M.jpg' alt='Kanban and Scrum' title='View this title in Open Library' /></a></div><div style="font-size:18px;font-weight:bold;"><a href='http://openlibrary.org/books/OL24194258M/Kanban_and_Scrum' title='View this title in Open Library' >Kanban and Scrum: Making the most of both</a></div><div style="font-size:14px;">; InfoQ 2009</div><div style="font-size:10px;"><a href="http://www.worldcat.org/search?q=ti%3AKanban and Scrum&qt=advanced" title="View this title at WorldCat">WorldCat</a>&#8226;<a href="http://www.librarything.com/search_works.php?q=Kanban and Scrum" title="View this title at LibraryThing">LibraryThing</a>&#8226;<a href="http://books.google.com/books?&as_vt=Kanban and Scrum" title="View this title at Google Books">Google Books</a>&#8226;<a href="http://www.bookfinder.com/search/?submit=Begin+search&new_used=*&mode=basic&st=sr&ac=qr&title=Kanban and Scrum" title="Search for the best price at BookFinder">BookFinder</a></div><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rfr_id=info%3Asid%2Fbosqueviejo.net%3AOpenBook&amp;rft.genre=book&amp;rft.btitle=Kanban+and+Scrum&amp;rft.au=&amp;rft.pub=InfoQ&amp;rft.date=2009&amp;rft.tpages=120">&nbsp;</span><p>
<p>El libro, escrito por Kniberg y Mattias Skarin (otro personaje dentro del mundo de las metodologías ágiles), explora ambas metodologías desde el punto de vista de la comparación. Vamos, que las compara entre sí para sacar los mejor de ambas en cada elemento específico, o cada situación en la que ambas pueden emplearse.</p>
<p>La lectura es muy amena y está plagada de imágenes que ilustran todas las situaciones que se van sucediendo a lo largo del libro, por lo que engancha de principio a fin.</p>
<p>La segunda parte del libro, además, es un ejemplo, con un proyecto real, de cómo se puede emplear kanban en el mundo real. Los problemas que pueden surgir y como este grupo los solventó.</p>
<p>No olvido también el mencionar que está disponible la versión en castellano (y en francés) tal y como la propia <a href="http://www.infoq.com/minibooks/kanban-scrum-minibook">página oficial del libro</a> informa. Así como agradecer a la comunidad ágil en español que se coordinase tan bien, bajo la dirección de <a href="http://presionblogosferica.com">Ángel Medinilla</a>, para darnos la posibilidad de poder leer tan gran obra en nuestro idioma.</p>
<p>Recomiendo la lectura a todos aquellos que tengan o pertenezcan a un grupo de trabajo.</p>
]]></content:encoded>
			<wfw:commentRss>http://bosqueviejo.net/2010/04/19/kanban-y-scrum/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Scrum y XP desde las trincheras</title>
		<link>http://bosqueviejo.net/2010/03/08/scrum-y-xp-desde-las-trincheras/</link>
		<comments>http://bosqueviejo.net/2010/03/08/scrum-y-xp-desde-las-trincheras/#comments</comments>
		<pubDate>Mon, 08 Mar 2010 16:47:45 +0000</pubDate>
		<dc:creator>bombadil</dc:creator>
				<category><![CDATA[Libros]]></category>
		<category><![CDATA[burndown]]></category>
		<category><![CDATA[desarrollo ágil]]></category>
		<category><![CDATA[scrum]]></category>
		<category><![CDATA[xtreme programming]]></category>

		<guid isPermaLink="false">http://bosqueviejo.net/?p=349</guid>
		<description><![CDATA[Un año y medio después de haber comenzado con las tecnologías y metdologías ágiles, no tengo más que recomendar el libro que me ayudó a comenzar y que ha sido una guía durante todo este tiempo.
Este libro (y su traducción al castellano), han supuesto una guía práctica de cómo comenzar en el desarrollo ágil tomando a Scrum como referencia y empleando, en lo que se refiere a técnicas de programación, algunos ejemplos de la metodología de Xtreme Programming.
El libro brinda la visión personal de Henri, una persona que ha estado empleando estas metodologías como consultor con muchos grupos de trabajo a lo largo de muchos años de trabajo y, gracias a ello, y a su excelente labor pedagógica, ha conseguido escribir un buen libro, claro, conciso y bastante corto para todo el material que contiene. Son libros que se leen de forma rápida y te preguntas, cuando llegas a su última hoja: ¿ya se acabó?
]]></description>
			<content:encoded><![CDATA[<p><a href="http://bosqueviejo.net/2008/10/29/scrum-y-xp/">Un año y medio después de haber comenzado con las tecnologías y metdologías ágiles</a>, no tengo más que recomendar el libro que me ayudó a comenzar y que ha sido una guía durante todo este tiempo.</p>
<div style="float:left;padding-right:10px;padding-bottom:10px;"><a href='http://openlibrary.org/books/OL11899421M/Scrum_and_XP_from_the_Trenches' ><img src='http://covers.openlibrary.org/b/id/2860595-M.jpg' alt='Scrum and XP from the Trenches' title='View this title in Open Library' /></a></div><div style="font-size:18px;font-weight:bold;"><a href='http://openlibrary.org/books/OL11899421M/Scrum_and_XP_from_the_Trenches' title='View this title in Open Library' >Scrum and XP from the Trenches</a></div><div style="font-size:14px;"><a href='http://openlibrary.org/authors/OL3776956A/Henrik_Kniberg' title='View this author in Open Library' >Henrik Kniberg</a>; Lulu.com 2007</div><div style="font-size:10px;"><a href="http://www.worldcat.org/oclc/229309136" title="View this title at WorldCat">WorldCat</a>&#8226;<a href="http://www.librarything.com/work/3540433" title="View this title at LibraryThing">LibraryThing</a>&#8226;<a href="http://books.google.com/books?as_isbn=9781430322641" title="View this title at Google Books">Google Books</a>&#8226;<a href="http://www.bookfinder.com/search/?st=xl&ac=qr&isbn=9781430322641" title="Search for the best price at BookFinder">BookFinder</a></div><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rfr_id=info%3Asid%2Fbosqueviejo.net%3AOpenBook&amp;rft.genre=book&amp;rft.btitle=Scrum+and+XP+from+the+Trenches&amp;rft.isbn=9781430322641&amp;rft.au=Henrik+Kniberg&amp;rft.pub=Lulu.com&amp;rft.date=October+5%2C+2007&amp;rft.tpages=140">&nbsp;</span><p>
<p>Este libro (y su traducción <a href="http://www.proyectalis.com/wp-content/uploads/2008/02/scrum-y-xp-desde-las-trincheras.pdf">al castellano</a>), han supuesto una guía práctica de cómo comenzar en el desarrollo ágil tomando a Scrum como referencia y empleando, en lo que se refiere a técnicas de programación, algunos ejemplos de la metodología de Xtreme Programming.</p>
<p>El libro brinda la visión personal de Henri, una persona que ha estado empleando estas metodologías como consultor con muchos grupos de trabajo a lo largo de muchos años de trabajo y, gracias a ello, y a su excelente labor pedagógica, ha conseguido escribir un buen libro, claro, conciso y bastante corto para todo el material que contiene. Son libros que se leen de forma rápida y te preguntas, cuando llegas a su última hoja: <em>¿ya se acabó?</em></p>
]]></content:encoded>
			<wfw:commentRss>http://bosqueviejo.net/2010/03/08/scrum-y-xp-desde-las-trincheras/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Extreme Programming explained</title>
		<link>http://bosqueviejo.net/2010/03/08/extreme_programming_explained/</link>
		<comments>http://bosqueviejo.net/2010/03/08/extreme_programming_explained/#comments</comments>
		<pubDate>Sun, 07 Mar 2010 23:43:46 +0000</pubDate>
		<dc:creator>bombadil</dc:creator>
				<category><![CDATA[Libros]]></category>
		<category><![CDATA[desarrollo ágil]]></category>
		<category><![CDATA[xtreme programming]]></category>

		<guid isPermaLink="false">http://bosqueviejo.net/?p=243</guid>
		<description><![CDATA[Este es uno de esos libros pioneros que hacen que nos planteemos muchas de las cosas que hacemos y, sobretodo, el cómo lo hacemos.
La metodología de la programación extrema fue acuñada por Kent Beck, como un conjunto de buenas prácticas y una forma de realizar los desarrollos, siempre basándose en dar el mayor valor al cliente, tal y cómo se supone que debe de ser siempre.
No obstante, el propio Beck sabe que esta metodología, al igual que las demás, tiene sus ventajas e inconvenientes, ya que si se intenta seguir de forma inflexible, puede resultar en que los proyectos terminen siendo, en algunos casos infructuosos. En este sentido, Beck, nos llama hacia la agilidad como una forma de sacar nuestro sentido común y emplear nuestro saber hacer, y no los procedimientos tipo que aplicar.
Buen libro, de principio a fin, enseña no solo las bases y teorías, sino que plantea, desde el comentario de cómo funcionarían equipos dentro de la metodología, escenarios de cómo se puede aplicar.
]]></description>
			<content:encoded><![CDATA[<p>Este es uno de esos libros pioneros que hacen que nos planteemos muchas de las cosas que hacemos y, sobretodo, el cómo lo hacemos.</p>
<div style="float:left;padding-right:10px;padding-bottom:10px;"><a href='http://openlibrary.org/books/OL7408148M/Extreme_Programming_Explained' ><img src='http://covers.openlibrary.org/b/id/135419-M.jpg' alt='Extreme Programming Explained' title='View this title in Open Library' /></a></div><div style="font-size:18px;font-weight:bold;"><a href='http://openlibrary.org/books/OL7408148M/Extreme_Programming_Explained' title='View this title in Open Library' >Extreme Programming Explained: Embrace Change</a></div><div style="font-size:14px;"><a href='http://openlibrary.org/authors/OL235459A/Kent_Beck' title='View this author in Open Library' >Kent Beck</a>; Addison-Wesley Professional 1999</div><div style="font-size:10px;"><a href="http://worldcat.org/isbn/9780201616415" title="View this title at WorldCat">WorldCat</a>&#8226;<a href="http://www.librarything.com/work/669" title="View this title at LibraryThing">LibraryThing</a>&#8226;<a href="http://books.google.com/books?as_isbn=9780201616415" title="View this title at Google Books">Google Books</a>&#8226;<a href="http://www.bookfinder.com/search/?st=xl&ac=qr&isbn=9780201616415" title="Search for the best price at BookFinder">BookFinder</a></div><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rfr_id=info%3Asid%2Fbosqueviejo.net%3AOpenBook&amp;rft.genre=book&amp;rft.btitle=Extreme+Programming+Explained&amp;rft.isbn=9780201616415&amp;rft.au=Kent+Beck&amp;rft.pub=Addison-Wesley+Professional&amp;rft.date=October+5%2C+1999&amp;rft.tpages=224">&nbsp;</span><p>
<p>La metodología de la programación extrema fue acuñada por Kent Beck, como un conjunto de buenas prácticas y una forma de realizar los desarrollos, siempre basándose en dar el mayor valor al cliente, tal y cómo se supone que debe de ser siempre.</p>
<p>No obstante, el propio Beck sabe que esta metodología, al igual que las demás, tiene sus ventajas e inconvenientes, ya que si se intenta seguir de forma inflexible, puede resultar en que los proyectos terminen siendo, en algunos casos infructuosos. En este sentido, Beck, nos llama hacia la agilidad como una forma de sacar nuestro sentido común y emplear nuestro saber hacer, y no los procedimientos tipo que aplicar.</p>
<p>Buen libro, <a href="http://bosqueviejo.net/2009/02/26/mentalidad-de-suficiencia/">de principio a fin</a>, enseña no solo las bases y teorías, sino que plantea, desde el comentario de cómo funcionarían equipos dentro de la metodología, escenarios de cómo se puede aplicar.</p>
]]></content:encoded>
			<wfw:commentRss>http://bosqueviejo.net/2010/03/08/extreme_programming_explained/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>TDD, ¡libro en castellano!</title>
		<link>http://bosqueviejo.net/2010/01/12/tdd-libro-en-castellano/</link>
		<comments>http://bosqueviejo.net/2010/01/12/tdd-libro-en-castellano/#comments</comments>
		<pubDate>Tue, 12 Jan 2010 13:45:09 +0000</pubDate>
		<dc:creator>bombadil</dc:creator>
				<category><![CDATA[Libros]]></category>
		<category><![CDATA[carlos ble]]></category>
		<category><![CDATA[desarrollo ágil]]></category>
		<category><![CDATA[tdd]]></category>

		<guid isPermaLink="false">http://bosqueviejo.net/?p=223</guid>
		<description><![CDATA[Ayer leí un email de la lista de TDD en la que se anunciaba el publicación del libro TDD de Carlos Ble.
Es de agradecer que se haya publicado en castellano un libro sobre esta metodología (o técnica) de programación que es el desarrollo dirigido por pruebas (o test driven development). Casi que puedo asegurar que es el único libro escrito hasta el momento en castellano sobre este tema, que ya abordaba hace muchos años Kent Beck, en su libro Xtreme Programming Explained.
El libro de Carlos está cargado de información sobre lo que significa la programación ágil, ser ágil y las ventajas que ofrece, sobre el modelo tradicional este tipo de técnica de programación, que roza a ser incluso una disciplina, la importancia de aprender y renovarse, así como una crítica y justificación al sistema de enseñanza universitario con respecto a la informática, con el cual coincido.
Además, las aportaciones de los co-autores realizadas al libro son de gran calidad, desde el prólogo, escrito por J.M.Beas hasta el Apéndice sobre integración continua, de Fran Reyes Perdomo, así como las aportaciones y correcciones de Juan Gutiérrez Plaza y Gregorio Mena.
Lo mejor es que el libro no es solo teórico, sino que aporta muchos [...]]]></description>
			<content:encoded><![CDATA[<p>Ayer leí un email de la lista de TDD en la que se anunciaba el publicación del libro <a href="http://www.dirigidoportests.com/el-libro">TDD</a> de <a href="http://www.carlosble.com/">Carlos Ble</a>.</p>
<div style="float:left;padding-right:10px;padding-bottom:10px;"><a href='http://openlibrary.org/books/OL24083063M/Diseño_Ágil_con_TDD' ><img src='http://covers.openlibrary.org/b/id/6295146-M.jpg' alt='Diseño Ágil con TDD' title='View this title in Open Library' /></a></div><div style="font-size:18px;font-weight:bold;"><a href='http://openlibrary.org/books/OL24083063M/Diseño_Ágil_con_TDD' title='View this title in Open Library' >Diseño Ágil con TDD</a></div><div style="font-size:14px;">; lulu.com 2010</div><div style="font-size:10px;"><a href="http://worldcat.org/isbn/9781445264714" title="View this title at WorldCat">WorldCat</a>&#8226;<a href="http://librarything.com/isbn/9781445264714" title="View this title at LibraryThing">LibraryThing</a>&#8226;<a href="http://books.google.com/books?as_isbn=9781445264714" title="View this title at Google Books">Google Books</a>&#8226;<a href="http://www.bookfinder.com/search/?st=xl&ac=qr&isbn=9781445264714" title="Search for the best price at BookFinder">BookFinder</a></div><span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rfr_id=info%3Asid%2Fbosqueviejo.net%3AOpenBook&amp;rft.genre=book&amp;rft.btitle=Dise%C3%B1o+%C3%81gil+con+TDD&amp;rft.isbn=9781445264714&amp;rft.au=&amp;rft.place=http%3A%2F%2Fwww.dirigidoportests.com%2Fel-libro&amp;rft.pub=lulu.com&amp;rft.date=2010&amp;rft.tpages=297">&nbsp;</span><p>
<p>Es de agradecer que se haya publicado en castellano un libro sobre esta metodología (o técnica) de programación que es el desarrollo dirigido por pruebas (o <em>test driven development</em>). Casi que puedo asegurar que es el único libro escrito hasta el momento en castellano sobre este tema, que ya abordaba hace muchos años Kent Beck, en su libro Xtreme Programming Explained.</p>
<p>El libro de Carlos está cargado de información sobre lo que significa la programación ágil, ser ágil y las ventajas que ofrece, sobre el modelo tradicional este tipo de técnica de programación, que roza a ser incluso una disciplina, la importancia de aprender y renovarse, así como una crítica y justificación al sistema de enseñanza universitario con respecto a la informática, con el cual coincido.</p>
<p>Además, las aportaciones de los co-autores realizadas al libro son de gran calidad, desde el prólogo, escrito por J.M.Beas hasta el Apéndice sobre integración continua, de Fran Reyes Perdomo, así como las aportaciones y correcciones de Juan Gutiérrez Plaza y Gregorio Mena.</p>
<p>Lo mejor es que el libro no es solo teórico, sino que aporta muchos escenarios y ejemplos, con lo que constituye uno de los mejores libros que he leído sobre el tema en bastante tiempo. Por lo que recomiendo su lectura, de principio a fin.</p>
]]></content:encoded>
			<wfw:commentRss>http://bosqueviejo.net/2010/01/12/tdd-libro-en-castellano/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>La Técnica Pomodoro</title>
		<link>http://bosqueviejo.net/2009/09/14/la-tecnica-pomodoro/</link>
		<comments>http://bosqueviejo.net/2009/09/14/la-tecnica-pomodoro/#comments</comments>
		<pubDate>Mon, 14 Sep 2009 10:47:02 +0000</pubDate>
		<dc:creator>bombadil</dc:creator>
				<category><![CDATA[Noticias]]></category>
		<category><![CDATA[desarrollo ágil]]></category>
		<category><![CDATA[gestión del tiempo]]></category>

		<guid isPermaLink="false">http://bosqueviejo.net/wordpress/?p=203</guid>
		<description><![CDATA[La técnica de pomodoro al igual que GTD (getting things done) o ZTD (zend to done), son técnicas para realizar las tareas diarias de forma ordenada y evitando distracciones.
Esta técnica debe su nombre a un reloj de cocina con forma de tomate (pomodoro), ya que, la propia técnica se basa en la medición del tiempo con un cronómetro, como los utilizados en la cocina.
La lista de tareas
Básicamente, hay tres artecfactos que se emplean para poder realizar esta técnica:

Inventario de Actividades: donde habrá que recoger todas las tareas a realizar.
Tareas para Hoy: las tareas que se han planteado para hacer hoy. El criterio para su selección puede ser la prioridad, dificultad o antigüedad.
Registro: donde, diariamente se apuntarán las tareas realizadas, junto con los pomodoros empleados para su compleción.

La gestión del tiempo
La técnica en sí, se basa en la gestión del tiempo mediante cortos periódos de dedicación exclusiva. Esto quiere decir que, cuando se comienza un periódo, se debe de estar completamente dedicado a esa actividad hasta que suene la campana.
Para desarrollar la técnica con precisión, necesitaremos un cronómetro o un sistema que nos alerte de cuando comienza y termina un pomodoro. Como su origen indica, puede ser un cronómetro fijo y [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://bosqueviejo.net/wordpress/wp-content/uploads/pomodoro.jpg" alt="pomodoro" title="pomodoro" width="201" height="168" class="alignleft size-full wp-image-204" />La técnica de pomodoro al igual que GTD (<em>getting things done</em>) o ZTD (<em>zend to done</em>), son técnicas para realizar las tareas diarias de forma ordenada y evitando distracciones.</p>
<p>Esta técnica debe su nombre a un reloj de cocina con forma de tomate (pomodoro), ya que, la propia técnica se basa en la medición del tiempo con un cronómetro, como los utilizados en la cocina.</p>
<h3>La lista de tareas</h3>
<p>Básicamente, hay tres <em>artecfactos</em> que se emplean para poder realizar esta técnica:</p>
<ul>
<li><strong>Inventario de Actividades</strong>: donde habrá que recoger todas las tareas a realizar.</li>
<li><strong>Tareas para Hoy</strong>: las tareas que se han planteado para hacer hoy. El criterio para su selección puede ser la prioridad, dificultad o antigüedad.</li>
<li><strong>Registro</strong>: donde, diariamente se apuntarán las tareas realizadas, junto con los <em>pomodoros</em> empleados para su compleción.</li>
</ul>
<h3>La gestión del tiempo</h3>
<p>La técnica en sí, se basa en la gestión del tiempo mediante cortos periódos de dedicación exclusiva. Esto quiere decir que, cuando se comienza un periódo, se debe de estar completamente dedicado a esa actividad hasta que <em>suene la campana</em>.</p>
<p>Para desarrollar la técnica con precisión, necesitaremos un cronómetro o un sistema que nos alerte de cuando comienza y termina un pomodoro. Como su origen indica, puede ser un cronómetro fijo y real en la mesa del trabajador (lo cual puede ser algo incómodo en una oficina con muchas personas trabajando) o uno informático como <a href="http://www.itlanddata.no/the-pomodoro-technique/">este</a>.</p>
<p>Los pomodoros (entendidos como los periódos de tiempo) deben de ser de no más de 30 minutos, con lo que, lo ideal, sería tener períodos de 25 minutos, con 5 minutos de descanso y, cada 4 períodos, hacer el descanso extensible de 15 a 30 minutos.</p>
<p>Cada tarea puede ocupar no solo un pomodoro, sino varios, esto se registra al final en el registro, poniendo las tareas realizadas, junto con el número de pomodoros <em>invertidos</em> en su realización.</p>
<h3>Las interrupciones</h3>
<p>Cuando se está trabajando en una tarea concreta y entra otra distinta con mucha prioridad, tanto que no puede esperar al final del pomodoro actual, se anula el pomodoro en curso y se comienza otro nuevo con la nueva tarea.</p>
<p>Este es el punto débil, quizás, de esta técnica, ya que si la dinámica de trabajo es hacerlo con incidencias y/o peticiones, podría producirse un momento en el que ningún pomodoro pudiese completarse en ninguna tarea, con lo que, llegamos al punto de que no se usa, realmente, esta técnica.</p>
<h3>Conclusiones</h3>
<p>Para las tareas de desarrollo y sobre todo en proyectos, sin incidencias, esta es una gran técnica equiparable a GTD y ZTD. No obstante, si el entorno de trabajo es más <em>orientado a eventos</em>, a interrupciones, esta técnica no aplica, puesto que las propias interrupciones son las que van marcando los tiempos a poder aplicar.</p>
<p>Para saber más:</p>
<ul>
<li><a href="http://es.wikipedia.org/wiki/Getting_Things_Done">Getting Things Done</a></li>
<li><a href="http://zenhabits.net/2007/04/zen-to-done-ztd-the-ultimate-simple-productivity-system/">Zend To Done</a> (inglés)</li>
<li><a href="http://www.pomodorotechnique.com/">The Pomodoro Technique</a> (inglés)</li>
<li><a href="http://es.agilebar.com/2009/06/la-tecnica-pomodoro/">La Técnica Pomodoro en Café Bar Ágil</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://bosqueviejo.net/2009/09/14/la-tecnica-pomodoro/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

