﻿<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
  <channel>
    <title>Avanzis (Blog de Josep Planells)</title>
    <description>Avanzis (Blog de Josep Planells)</description>
    <link>http://www.avanzis.com/rssfeed/en/310/834.xml</link>
    <lastBuildDate>Thu, 24 Jul 2008 00:42:49 GMT</lastBuildDate>
    <item>
      <title>Scrum, Test Driven Development y MVC. Vamos a ser ágiles.</title>
      <description>En Avanzis estamos empezando un proyecto que nos ilusiona mucho, y que esperamos que vea la luz antes de final de año. Como todo proyecto que empieza, uno de los primeros aspectos a decidir es qué metodología vamos a seguir y qué plataforma tecnológica. En este proyecto vamos a utilizar &lt;a href="http://es.wikipedia.org/wiki/Scrum"&gt;Scrum&lt;/a&gt; y &lt;a href="http://es.wikipedia.org/wiki/Tdd"&gt;Test Driven Development&lt;/a&gt;. Vale. Y ahora os preguntareis ¿esto qué significa?. Pues básicamente son dos relativamente nuevas metodologías en el desarrollo de software, clasificadas dentro de las llamadas “ágiles”. Estas dos metodologías tienen algo en común. Se asume que el diseño de la arquitectura de clases, la definición de las funcionalidades y la especificación de requisitos, es un proceso que fluye a través de todo el desarrollo del proyecto, y no son una etapa inicial aislada. No hay que esperar a tener el diseño y la especificación completa para empezar a desarrollar. Scrum es una manera de organizarse, y TDD es una manera de desarrollar.     &lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;¿Qué es SCRUM?&lt;/strong&gt; &lt;br /&gt;
&lt;br /&gt;
Scrum es una metodología de trabajo ágil, especialmente diseñada para intentar acortar los ciclos de desarrollo y conseguir una mejor aproximación entre las funcionalidades del software y los requerimientos del cliente. Se trata de evitar la burocracia innecesaria,  conseguir una mayor versatilidad frente a los cambios y empezar rápidamente a trabajar, de manera que el cliente puede ir viendo lo antes posible los avances en el proyecto. Es óptima para equipos de trabajo no demasiado grandes y clientes que tengan un alto grado de implicación en el proyecto. El procedimiento básico consiste en crear un repositorio con las funcionalidades requeridas para el proyecto, asignándoles unos puntos de importancia, una estimación en horas y cómo se debe demostrar esta funcionalidad. A esto lo llamaremos “Product Backlog”. A partir de entonces, se crean los “Sprint Backlogs”, que son un conjunto de tareas que se deben completar en un determinado tiempo, entre 2 semanas y un mes. Durante cada dia del sprint, se hace una corta reunión para revisar el estado de las tareas, y al final de cada sprint, una reunión con el cliente para mostrarle los resultados. Así, el cliente va viendo los avances cada corto periodo de tiempo, y se puede reajustar cualquier cambio de funcionalidad en cualquier etapa del proyecto. Obtenemos un feedback que nos permite mejorar en el siguiente sprint. &lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;¿Qué es TDD?&lt;/strong&gt;&lt;br /&gt;
 &lt;br /&gt;
Para tratar de mejorar del código, existen los  “&lt;a href="http://en.wikipedia.org/wiki/Unit_testing"&gt;Unit Tests&lt;/a&gt;”, que consisten en código adicional que se ocupa de probar el código principal. Se trata de probar que pequeñas unidades individuales de código se comportan tal y como esperamos. Para ello existen frameworks como &lt;a href="http://www.nunit.org/"&gt;NUnit&lt;/a&gt; con el fin de ayudarnos en esta tarea. Mediante los test, tenemos una mayor seguridad en que las cosas funcionan como deben, y además, podemos comprobar que las cosas siguen funcionando bien después de hacer cambios en el código. Pero TDD va más allá. En lugar de programar y luego probar, se intercambia el orden, de manera que primero creamos los test, y a partir de aquí se va creando la funcionalidad. El ciclo que se va repitiendo es: Añadir el test para una nueva funcionalidad. Evidentemente, este test fallará dado que la funcionalidad no está implementada. Programaremos, ejecutaremos todos los tests hasta que todos ellos tengan éxito, y finalmente refactorizaremos y volveremos a empezar. En el modelo habitual, se dedica una parte muy importante del tiempo diseñando completamente los modelos lógicos y físicos antes de escribir ninguna línea de código. Sin embargo, con este modelo, el diseño se deriva de los test de funcionalidad, y es un proceso que discurre al mismo tiempo que el propio desarrollo. Por esto, está metodología de desarrollo encaja perfectamente en la metodología organizativa SCRUM. &lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;MVC&lt;/strong&gt; &lt;br /&gt;
&lt;br /&gt;
Finalmente, teníamos que elegir una plataforma tecnológica para desarrollar el proyecto siguiendo esta metodología. Para ello, hemos elegido seguir el patrón &lt;a href="http://en.wikipedia.org/wiki/Model-view-controller"&gt;Model View Controller&lt;/a&gt; , y en concreto la implementación de &lt;a href="http://www.asp.net/mvc/"&gt;asp.net MVC&lt;/a&gt;. Las metodologías anteriores se pueden utilizar con cualquier plataforma, pero MVC proporciona un modelo ideal para realizar los test de una manera mucho más completa, probando no solo la lógica sino también la interacción con la interfaz de usuario. Pero sobre MVC, ya hablaremos en detalle en próximos posts. &lt;br /&gt;
&lt;br /&gt;
Así que ya sabéis, durante un tiempo, hablaremos de nuestras experiencias con SCRUM, TDD y MVC.
</description>
      <link>http://www.avanzis.com/en/blogs/josep-planells/i/8292/834/scrum-test-driven-development-y-mvc-vamos-a-ser-agiles</link>
      <guid isPermaLink="true">http://www.avanzis.com/en/blogs/josep-planells/i/8292/834/scrum-test-driven-development-y-mvc-vamos-a-ser-agiles</guid>
      <pubDate>Thu, 24 Jul 2008 00:42:49 GMT</pubDate>
    </item>
    <item>
      <title>Descompresión en Vista. WTF?</title>
      <description>&lt;a href="http://www.microsiervos.com/"&gt;Microsiervos&lt;/a&gt; es uno de los blogs que más me gusta leer. Gracias a ellos, aprendí la expresión WTF, abreviatura de What the Fuck? (más o menos: pero.. que narices es esto?). Tenían tantos, que crearon el blog específico &lt;a href="http://wtf.microsiervos.com/"&gt;wtf.microsiervos.com&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Pues bien, hoy tengo un WTF que contar. Estamos trabajando en un proyecto para servir streaming de vídeo a través de Windows Media Services. Para hacer unas pruebas, nos hemos bajado de la web de Microsoft una imagen virtual del servidor Windows Media Server 2008. Es un archivo zip comprimido de 1.8 GB. Al tratar de descomprimirlo con la herramienta por defecto que tiene para ello Windows Vista, ha resultado el mensaje de error adjunto.&lt;br /&gt;
&lt;br /&gt;
"No hay suficiente espacio en el Escritorio. Se requieren 5,99 PB adicionales".&lt;br /&gt;
&lt;br /&gt;
Teniendo en cuenta que 1 PB (PetaByte) es más o menos 1 millón de Gibatyes, me parece que 6 millones de Gigabytes es un espacio &lt;em&gt;adicional &lt;/em&gt;que pocos discos duros pueden tener!!&lt;br /&gt;
&lt;br /&gt;
La explicación: El archivo estaba comprimido con un método solo aceptado por WinZip.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
</description>
      <link>http://www.avanzis.com/en/blogs/josep-planells/i/7766/834/descompresion-en-vista-wtf</link>
      <guid isPermaLink="true">http://www.avanzis.com/en/blogs/josep-planells/i/7766/834/descompresion-en-vista-wtf</guid>
      <pubDate>Mon, 30 Jun 2008 19:52:15 GMT</pubDate>
    </item>
    <item>
      <title>Elección del CRM</title>
      <description>En &lt;a href="http://www.avanzis.com"&gt;Avanzis&lt;/a&gt; hemos utilizado varios &lt;a href="http://es.wikipedia.org/wiki/CRM"&gt;CRM&lt;/a&gt; hasta la fecha. Empezamos utilizando el &lt;a href="http://www.superoffice.com"&gt;SuperOffice&lt;/a&gt;, pero nos resultaba demasiado complejo para realizar algunas tareas simples. Después de intentar sin demasiado éxito la implantación del producto de Microsoft, realizamos un desarrollo simple para uso interno, si bien se queda muy corto para las necesidades actuales.&lt;br /&gt;
&lt;br /&gt;
Así que nos hemos puesto manos a la obra, para realizar una investigación de las alternativas existentes. Una de las primeras alternativas ha sido el &lt;a href="http://www.sugarcrm.com"&gt;SugarCRM&lt;/a&gt;. Sin embargo, su modelo de licencias no nos ha convencido. Después de analizar otros como &lt;a href="http://www.splendidcrm.com/"&gt;Splendid CRM&lt;/a&gt;, &lt;a href="http://www.compiere.com/"&gt;Compiere&lt;/a&gt;, &lt;a href="http://otrs.org/"&gt;OTRS&lt;/a&gt;, &lt;a href="http://www.hipergate.org/"&gt;Hipergate&lt;/a&gt; o &lt;a href="http://sinergia.sourceforge.net/"&gt;Sinergia&lt;/a&gt;, nos hemos decidido a implementar el CRM &lt;a href="http://www.vtiger.com/"&gt;vtiger&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Nos han convencido varias cosas. Entre ellas, la facilidad para realizar las tareas más comunes, como la gestión de cuentas, contactos, actividades, pedidos, etc.., o la disponibilidad de un "customer portal" donde los clientes puedan introducir sus incidencias o "tickets", todo ello con localización disponible para castellano. También dispone de un plug-in para Outlook para poder realizar desde el programa de la suite de Office algunas de las tareas más comunes. Además, es gratuito y open source. Está desarrollado en PHP sobre MySql. En nuestro caso, lo vamos a utilizar en la primera fase como organizador de contactos y cuentas, y como gestor de incidencias primordialmente, de manera complementaria con la aplicación de gestión de bugs, &lt;a href="http://www.bugnetproject.com/"&gt;BugNET&lt;/a&gt;. &lt;br /&gt;
&lt;br /&gt;
¿Qué os parece nuestra elección? ¿Usáis algún CRM con el que estéis especialmente contentos?&lt;br /&gt;
</description>
      <link>http://www.avanzis.com/en/blogs/josep-planells/i/7639/834/eleccion-del-crm</link>
      <guid isPermaLink="true">http://www.avanzis.com/en/blogs/josep-planells/i/7639/834/eleccion-del-crm</guid>
      <pubDate>Wed, 18 Jun 2008 17:21:27 GMT</pubDate>
    </item>
    <item>
      <title>Editor HTML</title>
      <description>Uno de nuestros principales &lt;strong&gt;proyectos&lt;/strong&gt; es el &lt;strong&gt;gestor de contenidos &lt;/strong&gt;&lt;a href="/productos/informacion/webportal"&gt;Avanzis Webportal&lt;/a&gt;. Y en un proyecto de estas características, el &lt;strong&gt;editor HTML&lt;/strong&gt; es una parte fundamental.&lt;br /&gt;
&lt;br /&gt;
Hasta ahora hemos utilizado el &lt;a href="http://www.freetextbox.com/"&gt;FreeTextBox&lt;/a&gt;, que se ha quedado un tanto obsoleto en el entorno tecnológico actual. Por ejemplo, no soporta estar dentro de un &lt;a href="http://www.asp.net/AJAX/documentation/live/overview/UpdatePanelOverview.aspx"&gt;UpdatePanel&lt;/a&gt; de &lt;strong&gt;AJAX&lt;/strong&gt;.&lt;br /&gt;
&lt;br /&gt;
Por ello, mi compañero Javi y yo, nos hemos dedicado estas últimas semanas a analizar los editores existentes para decidir cual vamos a utilizar a partir de ahora. En la primera ronda, descartamos el &lt;a href="http://www.fckeditor.net/"&gt;FCKEditor&lt;/a&gt; y el &lt;a href="http://tinymce.moxiecode.com/"&gt;TinyMC&lt;/a&gt;, a pesar de ser &lt;strong&gt;proyectos open source&lt;/strong&gt;, por la falta de soporte extenso para &lt;strong&gt;ASP.net&lt;/strong&gt; y de algunas funcionalidades importantes. Así que pasamos a estudiar y a probar más a fondo el de &lt;a href="http://www.obout.com/editor_new/"&gt;Obout&lt;/a&gt; y el de &lt;a href="http://www.telerik.com/products/aspnet-prometheus/controls/editor/overview.aspx"&gt;Telerik&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Finalmente, hemos elegido el de &lt;strong&gt;Telerik&lt;/strong&gt;. Es el que nos parece más robusto y fiable. Y además tiene unas funcionalidades extraordinarias, como el &lt;a href="http://www.telerik.com/DEMOS/ASPNET/Prometheus/Editor/Examples/EditModes/DefaultCS.aspx"&gt;inspector de tags&lt;/a&gt;, las &lt;a href="http://www.telerik.com/DEMOS/ASPNET/Prometheus/Editor/Examples/ToolbarMode/DefaultCS.aspx"&gt;barras flotantes&lt;/a&gt;, el &lt;a href="http://www.telerik.com/DEMOS/ASPNET/Prometheus/Editor/Examples/SpellChecker/DefaultCS.aspx"&gt;&lt;i&gt;spell check&lt;/i&gt;&lt;/a&gt; o la &lt;a href="http://www.telerik.com/DEMOS/ASPNET/Prometheus/Editor/Examples/CleaningWordFormatting/DefaultCS.aspx"&gt;limpieza de código de word&lt;/a&gt;, además de una integración total con &lt;strong&gt;Asp.net AJAX&lt;/strong&gt;. &lt;br /&gt;
&lt;br /&gt;
¿Qué os parece nuestra elección? ¿Estáis de acuerdo? ¿Conocéis otro &lt;strong&gt;editor HTML&lt;/strong&gt; mejor?
</description>
      <link>http://www.avanzis.com/en/blogs/josep-planells/i/7387/834/editor-html</link>
      <guid isPermaLink="true">http://www.avanzis.com/en/blogs/josep-planells/i/7387/834/editor-html</guid>
      <pubDate>Sun, 01 Jun 2008 19:39:55 GMT</pubDate>
    </item>
    <item>
      <title>Para empezar, presentación</title>
      <description>En &lt;a href="/"&gt;Avanzis&lt;/a&gt; hemos decidido que vamos a abrir nuestras puertas para que todo aquel que quiera nos pueda conocer mejor. &lt;br /&gt;&lt;br /&gt;Me llamo &lt;strong&gt;Josep Planells&lt;/strong&gt;, y mis funciones en la empresa son las de administrar y gestionar, &lt;strong&gt;programar&lt;/strong&gt;, &lt;strong&gt;diseñar aplicaciones&lt;/strong&gt;, un poco de &lt;strong&gt;marketing&lt;/strong&gt;, &lt;strong&gt;recursos humanos&lt;/strong&gt;, algo de atención al cliente… en definitiva, facilitar al máximo la labor de mis colaboradores y conseguir la satisfacción de nuestros clientes. Bonita tarea.&lt;br /&gt;&lt;br /&gt;Me gusta programar, pero lo que realmente me apasiona es pensar, diseñar las &lt;strong&gt;funcionalidades&lt;/strong&gt;, las &lt;strong&gt;arquitecturas&lt;/strong&gt; y resolver los &lt;strong&gt;problemas complejos&lt;/strong&gt;. En definitiva, me encanta todo aquello que me suponga un reto.&lt;br /&gt;&lt;br /&gt;Por la variedad de mis funciones, en este &lt;strong&gt;blog&lt;/strong&gt; hablaré un poco de todo lo interesante que me suceda en el día a día de &lt;strong&gt;Avanzis&lt;/strong&gt;, pero sobre todo estará centrado en los aspectos más técnicos como la &lt;strong&gt;programación en C#&lt;/strong&gt; y &lt;strong&gt;ASP.net&lt;/strong&gt;, o en general, cualquier &lt;strong&gt;tecnología web&lt;/strong&gt;, pero de vez en cuando se colará algún &lt;strong&gt;post&lt;/strong&gt; sobre &lt;strong&gt;fiscalidad&lt;/strong&gt; o &lt;strong&gt;marketing&lt;/strong&gt;.&lt;br /&gt;&lt;br /&gt;Empezamos !!</description>
      <link>http://www.avanzis.com/en/blogs/josep-planells/i/7386/834/para-empezar-presentacion</link>
      <guid isPermaLink="true">http://www.avanzis.com/en/blogs/josep-planells/i/7386/834/para-empezar-presentacion</guid>
      <pubDate>Sun, 01 Jun 2008 19:12:36 GMT</pubDate>
    </item>
  </channel>
</rss>