<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://msmvps.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Angel "Java" Lopez : Desarrollo Agil, Video</title><link>http://msmvps.com/blogs/lopez/archive/tags/Desarrollo+Agil/Video/default.aspx</link><description>Tags: Desarrollo Agil, Video</description><dc:language>en</dc:language><generator>CommunityServer 2008.5 SP2 (Build: 40407.4157)</generator><item><title>Ejemplo de TDD: Implementando una pila (parte 1)</title><link>http://msmvps.com/blogs/lopez/archive/2010/04/28/ejemplo-de-tdd-implementando-una-pila-parte-1.aspx</link><pubDate>Wed, 28 Apr 2010 10:42:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1764469</guid><dc:creator>lopez</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/lopez/rsscomments.aspx?PostID=1764469</wfw:commentRss><comments>http://msmvps.com/blogs/lopez/archive/2010/04/28/ejemplo-de-tdd-implementando-una-pila-parte-1.aspx#comments</comments><description>&lt;p&gt;Siguiendo con los ejemplos que se han armado para el material del &lt;a target="_blank" href="http://msmvps.com/blogs/lopez/archive/2010/03/26/hogwarts_2D00_project.aspx"&gt;Proyecto Hogwarts&lt;/a&gt;, quiero hoy publicar un caso de uso de Test-Driven Development con Visual Studio 2008 y C#. Ya hab&amp;iacute;a publicado un ejemplo anterior con video en:&lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="http://msmvps.com/blogs/lopez/archive/2010/04/22/un-ejemplo-de-tdd.aspx"&gt;Un ejemplo de TDD&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;La idea es implementar una pila. Ya tenemos una implementaci&amp;oacute;n dentro del propio framework de .NET. Pero la idea ac&amp;aacute; es desarrollarla usando TDD. Para eso, planteamos una serie de test iniciales, a cumplir por nuestra implementaci&amp;oacute;n. Programar de esta forma, permite poner expl&amp;iacute;citamente c&amp;oacute;mo esperamos consumir al software que estamos construyendo. Al escribir los tests, estamos poniendo c&amp;oacute;mo queremos que se consuma y act&amp;uacute;e nuestro objeto pila. En una pila, colocamos elementos, en este caso enteros, y los retiramos, con el criterio &amp;uacute;ltimo entrado, primero salido.&lt;/p&gt;
&lt;p&gt;Por simplicidad, hacia el final de este ejemplo, se implement&amp;oacute; usando una pila interna de .NET. Pero podr&amp;iacute;amos haber implementado con una lista o de otra forma. Puede quedar el caso para un pr&amp;oacute;ximo refactoring. Tambi&amp;eacute;n se repiti&amp;oacute; c&amp;oacute;digo de inicializaci&amp;oacute;n: hay que estudiar c&amp;oacute;mo podemos mejorar esto. Y un tema para la pr&amp;oacute;xima edici&amp;oacute;n de este ciclo, es el uso de code coverage: c&amp;oacute;mo podemos conocer qu&amp;eacute; parte de nuestro c&amp;oacute;digo hemos probado.&lt;/p&gt;
&lt;p&gt;(Please visit the site to view this media)&lt;/p&gt;
&lt;p&gt;Pueden verlo directamente en Youtube, m&amp;aacute;s grande, en &lt;a href="http://www.youtube.com/watch?v=d6JrhC1u2Dw"&gt;http://www.youtube.com/watch?v=d6JrhC1u2Dw&lt;/a&gt; y con opci&amp;oacute;n a pantalla completa.&lt;/p&gt;
&lt;p&gt;Espero que les sirva, cualquier &amp;ldquo;feedback&amp;rdquo; es bienvenido.&lt;/p&gt;
&lt;p&gt;El c&amp;oacute;digo del ejemplo en &lt;a href="http://cid-9f903f3d6db0c176.skydrive.live.com/self.aspx/Examples/Hogwarts/TddStack01.zip"&gt;TddStack01.zip&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Nos leemos!&lt;/p&gt;
&lt;p&gt;Angel &amp;ldquo;Java&amp;rdquo; Lopez &lt;br /&gt;&lt;a href="http://www.ajlopez.com"&gt;http://www.ajlopez.com&lt;/a&gt; &lt;br /&gt;&lt;a href="http://twitter.com/ajlopez"&gt;http://twitter.com/ajlopez&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1764469" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/lopez/archive/tags/Desarrollo+de+Software/default.aspx">Desarrollo de Software</category><category domain="http://msmvps.com/blogs/lopez/archive/tags/Video/default.aspx">Video</category><category domain="http://msmvps.com/blogs/lopez/archive/tags/Desarrollo+Agil/default.aspx">Desarrollo Agil</category><category domain="http://msmvps.com/blogs/lopez/archive/tags/TDD/default.aspx">TDD</category><category domain="http://msmvps.com/blogs/lopez/archive/tags/Hogwarts/default.aspx">Hogwarts</category></item><item><title>Un ejemplo de TDD</title><link>http://msmvps.com/blogs/lopez/archive/2010/04/22/un-ejemplo-de-tdd.aspx</link><pubDate>Thu, 22 Apr 2010 17:40:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1764041</guid><dc:creator>lopez</dc:creator><slash:comments>5</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/lopez/rsscomments.aspx?PostID=1764041</wfw:commentRss><comments>http://msmvps.com/blogs/lopez/archive/2010/04/22/un-ejemplo-de-tdd.aspx#comments</comments><description>&lt;p&gt;Ya coment&amp;eacute; sobre &lt;a target="_blank" href="http://msmvps.com/blogs/lopez/archive/2010/03/26/hogwarts_2D00_project.aspx"&gt;el Proyecto Hogwarts&lt;/a&gt;: el desarrollo de material, entregables, que sirva de soporte para el entrenamiento de desarrolladores de software. Los puntos claves a atacar en este primer release, son:&lt;/p&gt;
&lt;p&gt;- TDD Test-Driven Development &lt;br /&gt;- DI Dependency Injection, contenedores de Inversion of Control &lt;br /&gt;- Mocks, usos y librer&amp;iacute;as &lt;br /&gt;- Principios SOLID&lt;/p&gt;
&lt;p&gt;Una de las ideas que estamos explorando, es producir peque&amp;ntilde;os ejemplos de los temas, como parte de los entregables. En este post, viene una primera versi&amp;oacute;n de un ejemplo que proponemos como parte de una charla de introducci&amp;oacute;n a TDD.&lt;/p&gt;
&lt;p&gt;El instructor describe primero a grandes rasgos los elementos de TDD, como el ciclo rojo-verde-refactor, pero para fijar el concepto, se necesita mostrar un ejemplo andando.&lt;/p&gt;
&lt;p&gt;En este video, mostramos el uso de Visual Studio 2008, con sus proyectos de tests, y la forma de encarar el ejemplo: queremos desarrollar una simple clase que implemente una calculadora, y la suma de dos n&amp;uacute;meros.&lt;/p&gt;
&lt;p&gt;(Please visit the site to view this media)&lt;/p&gt;
&lt;p&gt;Esperamos ir generando m&amp;aacute;s videos de los ejemplos que estamos preparando, como forma de exponer a la comunidad parte de los entregables que se van sumando al proyecto. Se agradece cualquier comentario, sugerencia, sobre este video y los pr&amp;oacute;ximos (resoluci&amp;oacute;n, calidad de video, sonido, as&amp;iacute; como ejemplos elegidos, claridad de exposici&amp;oacute;n, etc&amp;hellip;)&lt;/p&gt;
&lt;p&gt;Pueden bajar el c&amp;oacute;digo de &lt;a href="http://cid-9f903f3d6db0c176.skydrive.live.com/self.aspx/Examples/Hogwarts/TddCalculator01.zip"&gt;TddCalculator01.zip&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Nos leemos!&lt;/p&gt;
&lt;p&gt;Angel &amp;ldquo;Java&amp;rdquo; Lopez &lt;br /&gt;&lt;a href="http://www.ajlopez.com"&gt;http://www.ajlopez.com&lt;/a&gt; &lt;br /&gt;&lt;a href="http://twitter.com/ajlopez"&gt;http://twitter.com/ajlopez&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1764041" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/lopez/archive/tags/Desarrollo+de+Software/default.aspx">Desarrollo de Software</category><category domain="http://msmvps.com/blogs/lopez/archive/tags/Video/default.aspx">Video</category><category domain="http://msmvps.com/blogs/lopez/archive/tags/Desarrollo+Agil/default.aspx">Desarrollo Agil</category><category domain="http://msmvps.com/blogs/lopez/archive/tags/TDD/default.aspx">TDD</category><category domain="http://msmvps.com/blogs/lopez/archive/tags/Hogwarts/default.aspx">Hogwarts</category></item><item><title>Tales from the Scrum: Estimación Agil por Mike Cohn</title><link>http://msmvps.com/blogs/lopez/archive/2010/01/08/agile_2D00_estimation_2D00_by_2D00_mike_2D00_cohn.aspx</link><pubDate>Fri, 08 Jan 2010 10:01:32 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1750497</guid><dc:creator>lopez</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/lopez/rsscomments.aspx?PostID=1750497</wfw:commentRss><comments>http://msmvps.com/blogs/lopez/archive/2010/01/08/agile_2D00_estimation_2D00_by_2D00_mike_2D00_cohn.aspx#comments</comments><description>&lt;p&gt;Una de las preguntas más frecuentes de los asistentes a mis charlas de Scrum, es ¿cómo se estima en un proyecto de Scrum o ágil? Hace unos meses, encontré estos videos. Quiero hoy compartirlos con Uds.&amp;#160; &lt;a href="http://www.mountaingoatsoftware.com/" target="_blank"&gt;Mike Cohn&lt;/a&gt; es un reconocido experto en el mundo Agile y Scrum. Pueden visitar &lt;a href="http://blog.mountaingoatsoftware.com/" target="_blank"&gt;su blog&lt;/a&gt; donde publica posts sobre temas que nos podemos encontrar en un proyecto Scrum.&lt;/p&gt;  &lt;p&gt;En estos dos videos, él explica claramente que significa estimación en un proyecto ágil (involucrando al equipo en la estimación, haciendo iteraciones, planning poker, todas las prácticas de Scrum …):&lt;/p&gt;  &lt;p&gt;(Please visit the site to view this media)&lt;/p&gt;  &lt;p&gt;Alta resolución: &lt;a href="http://www.youtube.com/watch?v=fb9Rzyi8b90" target="_blank"&gt;http://www.youtube.com/watch?v=jeT0pOVg0EI&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;(Please visit the site to view this media)&lt;/p&gt;  &lt;p&gt;Alta resolución: &lt;a href="http://www.youtube.com/watch?v=jeT0pOVg0EI" target="_blank"&gt;http://www.youtube.com/watch?v=jeT0pOVg0EI&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Los videos fueron tomados el 20 de Marzo del 2007, en la Bay XP Meeting.&lt;/p&gt;  &lt;p&gt;Espero ir comentando en español los principales puntos que expone Mike Cohn, en futuros posts de esta serie.&lt;/p&gt;  &lt;p&gt;Nos leemos!&lt;/p&gt;  &lt;p&gt;Angel “Java” Lopez    &lt;br /&gt;&lt;a href="http://www.ajlopez.com"&gt;http://www.ajlopez.com&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://twitter.com/ajlopez"&gt;http://twitter.com/ajlopez&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1750497" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/lopez/archive/tags/Scrum/default.aspx">Scrum</category><category domain="http://msmvps.com/blogs/lopez/archive/tags/Desarrollo+de+Software/default.aspx">Desarrollo de Software</category><category domain="http://msmvps.com/blogs/lopez/archive/tags/Video/default.aspx">Video</category><category domain="http://msmvps.com/blogs/lopez/archive/tags/Desarrollo+Agil/default.aspx">Desarrollo Agil</category></item><item><title>Ejemplo de TDD con Python</title><link>http://msmvps.com/blogs/lopez/archive/2009/12/24/python_2D00_tdd_2D00_example.aspx</link><pubDate>Thu, 24 Dec 2009 09:40:35 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1747490</guid><dc:creator>lopez</dc:creator><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/lopez/rsscomments.aspx?PostID=1747490</wfw:commentRss><comments>http://msmvps.com/blogs/lopez/archive/2009/12/24/python_2D00_tdd_2D00_example.aspx#comments</comments><description>&lt;p&gt;Una de las prácticas que siempre intento “vender” a cualquiera involucrado en el desarrollo de software, es la práctica de Test-Driven Development. Una vez que se practica TDD, no quieren volver atrás. Es una forma de programar con tanta recompensa y gozo asociados, que me siento incómodo si no lo usa cuando escribo software real.&lt;/p&gt;  &lt;p&gt;Gracias a un tweet de ayer de &lt;a href="http://twitter.com/jjfalcon" target="_blank"&gt;@jjfalcon&lt;/a&gt;, descubrí este ejemplo, en Youtube, del usuario &lt;a href="http://www.youtube.com/user/objarni" target="_blank"&gt;objarni&lt;/a&gt;. El usa Ubuntu, programando en Python, usa pyTDDemon para ver inmediatamente el resultado de los tests.&lt;/p&gt;  &lt;p&gt;Implementa algo sencillo: código que dado un string con una URL, identificar el protocolo, el dominio, y el recurso que está contenida en esa dirección. En TDD, se va escribiendo el test, el código que pasa el test, y se va progresando de a poco. No hace falta escribir el código correcto y completo desde el principio. Como en otras tantas actividades, el “baby-step”, el “pequeños pasos” de avance, nos ayuda para ir incrementalmente produciendo el resultado esperado.&lt;/p&gt;  &lt;p&gt;Noten el ciclo rojo-verde-refactor, el código mínimo que se agrega en cada tests (a veces, retornando valores puestos a mano, sólo para pasar los tests), refactorizando el test si hay código duplicado, las micro-decisiones de diseño que se van tomando, etc… Excelente trabajo para mostrar en video!&lt;/p&gt;  &lt;p&gt;(Please visit the site to view this media)&lt;/p&gt;  &lt;p&gt;(Please visit the site to view this media)&lt;/p&gt;  &lt;p&gt;(Please visit the site to view this media)&lt;/p&gt;  &lt;p&gt;(Please visit the site to view this media)&lt;/p&gt;  &lt;p&gt;Habría tanto para comentar de TDD. Por ahora, dos recursos. He “tagueado” más videos sobre TDD, en mi delicious:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://delicious.com/ajlopez/tdd+video" href="http://delicious.com/ajlopez/tdd+video"&gt;http://delicious.com/ajlopez/tdd+video&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Los enlaces que colecciono sobre TDD:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://delicious.com/ajlopez/tdd"&gt;http://delicious.com/ajlopez/tdd&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Nos leemos!&lt;/p&gt;  &lt;p&gt;Angel “Java” Lopez    &lt;br /&gt;&lt;a href="http://www.ajlopez.com"&gt;http://www.ajlopez.com&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://twitter.com/ajlopez"&gt;http://twitter.com/ajlopez&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1747490" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/lopez/archive/tags/Desarrollo+de+Software/default.aspx">Desarrollo de Software</category><category domain="http://msmvps.com/blogs/lopez/archive/tags/Video/default.aspx">Video</category><category domain="http://msmvps.com/blogs/lopez/archive/tags/Desarrollo+Agil/default.aspx">Desarrollo Agil</category><category domain="http://msmvps.com/blogs/lopez/archive/tags/TDD/default.aspx">TDD</category><category domain="http://msmvps.com/blogs/lopez/archive/tags/Python/default.aspx">Python</category></item><item><title>Tales from the Scrum: Un día en el equipo</title><link>http://msmvps.com/blogs/lopez/archive/2009/10/13/tales-from-the-scrum-un-d-237-a-en-el-equipo.aspx</link><pubDate>Tue, 13 Oct 2009 09:20:03 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1732135</guid><dc:creator>lopez</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/lopez/rsscomments.aspx?PostID=1732135</wfw:commentRss><comments>http://msmvps.com/blogs/lopez/archive/2009/10/13/tales-from-the-scrum-un-d-237-a-en-el-equipo.aspx#comments</comments><description>&lt;p&gt;Una de las cosas que hay que destacar de Scrum, por si es la primera vez que lo ven, es el trabajo en equipo. Los miembros del equipo realizan una reunión diaria inicial, el Standup, se reparten las tareas, y van trabajando físicamente juntos durante el día, programando, diseñando, haciendo pruebas del software, etc… Hace un tiempo, encontré este video, donde, oh! sorpresa! el ScrumMaster es el bueno de Tobías Mayer (&lt;a href="http://www.infoq.com/interviews/mayer-welfarecsm-scrum" target="_blank"&gt;@tobiasgmayer&lt;/a&gt;) (visiten su blog &lt;a href="http://agilethinking.net/blog/" target="_blank"&gt;Agile Thinking&lt;/a&gt;, y su iniciativa &lt;a href="http://agilethinking.net/welfareCSM/" target="_blank"&gt;WelfareSCM&lt;/a&gt; (entramiento Scrum de bajo costo), también &lt;a href="http://www.infoq.com/interviews/mayer-welfarecsm-scrum" target="_blank"&gt;el video que grabó sobre el tema en InfoQ&lt;/a&gt;).&lt;/p&gt;  &lt;p&gt;(Please visit the site to view this media)&lt;/p&gt;  &lt;p&gt;Vean cómo se trabaja a veces de a pares, a veces en solitario. El ScrumMaster (el que acerca la cara y hace muecas…:-), va acompañando al equipo, de forma intermitente. El lugar físico es importante: todos se ven, todos están en contacto directo. Vean cómo van organizando las tareas en papeles. A la derecha, parece que tiene el tablero de control.&lt;/p&gt;  &lt;p&gt;Para los que no lo vivieron, es así: los miembros van avanzando en tareas, tienen reuniones de diseño, o para discutir dudas y caminos. No hace falta comer en el mismo lugar :-) pero pueden hacerlo.&lt;/p&gt;  &lt;p&gt;Pueden leer un post de Tobías que traduje al español en &lt;a href="http://msmvps.com/blogs/lopez/archive/2009/08/18/tales-from-the-scrum-el-coraz-243-n-de-scrum.aspx" target="_blank"&gt;Tales from the Scrum: El corazón de Scrum&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Nos leemos!&lt;/p&gt;  &lt;p&gt;Angel “Java” Lopez    &lt;br /&gt;&lt;a href="http://www.ajlopez.com"&gt;http://www.ajlopez.com&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://twitter.com/ajlopez"&gt;http://twitter.com/ajlopez&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1732135" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/lopez/archive/tags/Scrum/default.aspx">Scrum</category><category domain="http://msmvps.com/blogs/lopez/archive/tags/Desarrollo+de+Software/default.aspx">Desarrollo de Software</category><category domain="http://msmvps.com/blogs/lopez/archive/tags/Video/default.aspx">Video</category><category domain="http://msmvps.com/blogs/lopez/archive/tags/Desarrollo+Agil/default.aspx">Desarrollo Agil</category></item></channel></rss>