<?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>Mi espacio &#187; Ingeniería del software</title>
	<atom:link href="http://www.manuelrecena.com/blog/archives/category/ingenieria-del-software/feed" rel="self" type="application/rss+xml" />
	<link>http://www.manuelrecena.com/blog</link>
	<description>Donde escribo sobre cosas que forman parte de mi vida profesional</description>
	<lastBuildDate>Sun, 05 Feb 2012 21:20:50 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Automatización en el desarrollo de software</title>
		<link>http://www.manuelrecena.com/blog/archives/859</link>
		<comments>http://www.manuelrecena.com/blog/archives/859#comments</comments>
		<pubDate>Wed, 02 Dec 2009 10:04:15 +0000</pubDate>
		<dc:creator>Manuel Jesús Recena Soto</dc:creator>
				<category><![CDATA[Ingeniería del software]]></category>
		<category><![CDATA[ecosistemas-software]]></category>
		<category><![CDATA[maven]]></category>

		<guid isPermaLink="false">http://www.manuelrecena.com/blog/?p=859</guid>
		<description><![CDATA[Así es como se llamaba el taller que ayer se celebró en la Escuela Técnica Superior de Ingeniería Informática. El taller fue organizado por Joaquín Peña y estaba enmarcado dentro del Máster Ingeniería y Tecnología del Software (Universidad de Sevilla). A continuación podéis encontrar las transparencias que utilicé en mi intervención &#8220;Ecosistemas Software&#8221;:]]></description>
			<content:encoded><![CDATA[<p>Así es como se llamaba el taller que ayer se celebró en la Escuela Técnica Superior de Ingeniería Informática. El taller fue organizado por <a title="Página web de Joaquín Peña" href="http://www.lsi.us.es/~joaquinp/index.php/Main_Page" target="_blank">Joaquín Peña</a> y estaba enmarcado dentro del Máster <strong>Ingeniería y Tecnología del Software</strong> (Universidad de Sevilla).</p>
<p>A continuación podéis encontrar las transparencias que utilicé en mi intervención &#8220;Ecosistemas Software&#8221;:</p>
<p><object id="doc_185485756052849" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="450" height="400" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="name" value="doc_185485756052849" /><param name="align" value="middle" /><param name="quality" value="high" /><param name="play" value="true" /><param name="loop" value="true" /><param name="scale" value="showall" /><param name="wmode" value="opaque" /><param name="devicefont" value="false" /><param name="bgcolor" value="#ffffff" /><param name="menu" value="true" /><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="mode" value="slideshow" /><param name="src" value="http://d1.scribdassets.com/ScribdViewer.swf?document_id=23421528&amp;access_key=key-2oj9uhztun474lk5sza&amp;page=1&amp;version=1&amp;viewMode=slideshow" /><param name="allowfullscreen" value="true" /><embed id="doc_185485756052849" type="application/x-shockwave-flash" width="450" height="400" src="http://d1.scribdassets.com/ScribdViewer.swf?document_id=23421528&amp;access_key=key-2oj9uhztun474lk5sza&amp;page=1&amp;version=1&amp;viewMode=slideshow" mode="slideshow" allowscriptaccess="always" allowfullscreen="true" menu="true" bgcolor="#ffffff" devicefont="false" wmode="opaque" scale="showall" loop="true" play="true" quality="high" align="middle" name="doc_185485756052849"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.manuelrecena.com/blog/archives/859/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Tercera desconferencia en ecosistemas software</title>
		<link>http://www.manuelrecena.com/blog/archives/715</link>
		<comments>http://www.manuelrecena.com/blog/archives/715#comments</comments>
		<pubDate>Thu, 09 Jul 2009 19:55:09 +0000</pubDate>
		<dc:creator>Manuel Jesús Recena Soto</dc:creator>
				<category><![CDATA[Conocimiento libre]]></category>
		<category><![CDATA[Herramientas]]></category>
		<category><![CDATA[Ingeniería del software]]></category>
		<category><![CDATA[desconferencia]]></category>
		<category><![CDATA[ecosistemas-software]]></category>

		<guid isPermaLink="false">http://www.manuelrecena.com/blog/?p=715</guid>
		<description><![CDATA[Han pasado ya varios meses desde que se celebrase la segunda desconferencia. Pero lo importante es que durante estos días se ha estado organizando la tercera desconferencia. ¿Cuándo? Miércoles, 22 de Julio de 2009 a las 19:00 ¿Dónde? [wp_geo_map] BitRock S.L. C/ Salado 11 &#8211; Local 15 41010 Sevilla Spain En esta ocasión, mi compañero [...]]]></description>
			<content:encoded><![CDATA[<p>Han pasado ya varios meses desde que se celebrase la <a title="Referencia a una entrada de este blog" href="http://www.manuelrecena.com/blog/archives/391" target="_blank">segunda desconferencia</a>. Pero lo importante es que durante estos días <a title="Referencia a un hilo de la lista de correo Ecosistemas Software" href="http://groups.google.com/group/ecosistemas-software/browse_thread/thread/5696e1d643485c4d" target="_blank">se ha estado organizando</a> la tercera desconferencia.</p>
<h3>¿Cuándo?</h3>
<p>Miércoles, 22 de Julio de 2009 a las 19:00</p>
<h3>¿Dónde?</h3>
<p>[wp_geo_map]</p>
<p>BitRock S.L.<br />
C/ Salado 11 &#8211; Local 15<br />
41010 Sevilla<br />
Spain</p>
<p>En esta ocasión, mi compañero y amigo <a title="Blog de Antonio Manuel Muñiz" href="http://amunizmartin.wordpress.com" target="_blank">Antonio Manuel Muñiz</a> y yo, nos hemos ofrecido a preparar un pequeño taller sobre:</p>
<ul>
<li> Instalación y configuración de Apache Archiva</li>
<li> Integración de mis proyectos maven con Apache Archiva</li>
<li> Instalación y configuración de SONAR</li>
<li> Integración de mis proyectos maven con SONAR</li>
<li> Instalación y configuración de Apache Continuum</li>
<li> Integración de mis proyectos maven con Apache Continuum</li>
</ul>
<p>Evidentemente, es una propuesta, luego saldrán muchos otros temas.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.manuelrecena.com/blog/archives/715/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Un problema al que le faltan datos</title>
		<link>http://www.manuelrecena.com/blog/archives/676</link>
		<comments>http://www.manuelrecena.com/blog/archives/676#comments</comments>
		<pubDate>Tue, 09 Jun 2009 20:14:46 +0000</pubDate>
		<dc:creator>Manuel Jesús Recena Soto</dc:creator>
				<category><![CDATA[Ingeniería del software]]></category>
		<category><![CDATA[Opiniones y reflexiones]]></category>

		<guid isPermaLink="false">http://www.manuelrecena.com/blog/?p=676</guid>
		<description><![CDATA[Hace unos días leía en el blog de kybele consulting una entrada muy interesante sobre métodos de estimación software. En la entrada se hace referencia a unas transparencias en las que hay información con la que estoy de acuerdo, sin embargo, y probablemente sea un problema particular mío, todo eso me suena a pura teoría [...]]]></description>
			<content:encoded><![CDATA[<p>Hace unos días leía en el blog de kybele consulting <a title="Referencia a una entrada del blog de kybele consulting" href="http://kybeleconsulting.blogspot.com/2009/06/puntos-caso-de-uso.html" target="_blank">una entrada</a> muy interesante sobre métodos de estimación software. En la entrada se hace referencia a unas transparencias en las que hay información con la que estoy de acuerdo, sin embargo, y probablemente sea un problema particular mío, todo eso me suena a pura teoría más propia de una asignura de aquella carrera que tanto me aburrió.</p>
<p>Estoy convencido de que mucha gente pensará que estoy equivocado, y es probable, sin embargo, creo que en cualquier método de estimación de proyectos software (incluidos productos) en el que no tengamos en cuenta a los recursos (al equipo), la incertidumbre será abundante. Muchas veces me veo obligado a planificar proyectos incluyendos costes y la sensación que tengo es de levantar el dedo y ver para qué lado sopla el viento. ¿Cuántas veces no se ha preparando una oferta para un concurso público haciendo ingeniería inversa? El dinero que hay es X, pues a partir de ahí defino mi oferta (planificación, recursos, tecnología, etc).</p>
<p>Una de las líneas de trabajo en los ecosistemas software es la base histórica de proyectos. Realizar una estimación teniendo en cuenta tus recursos (conocimientos, habilidades, especialización, etc) y una base histórica, sigue siendo predecir, pero lo cierto es que cada vez acertamos más. A continuación un breve listado de situaciones que hacen que la estimación se parezca a la realidad con la misma probabilidad que un niño de 3 años escriba en un post-it los números del euromillón:</p>
<ol>
<li>Optar por un marco tecnológico en el que no se tenga experiencia. Hace un &#8220;<em>Hola mundo</em>&#8221; no es tener experiencia.</li>
<li>Que en el equipo definido no haya un líder tecnológico. Un líder tecnológico no es un jefe de proyecto.</li>
<li>No disponer de un entorno de desarrollo flexible, cómodo y fácil de usar. Podemos llamarlo <a title="Referencia a una entrada de este blog" href="http://www.manuelrecena.com/blog/archives/219" target="_blank"><em>Ecosistema Software</em></a>.</li>
<li>Ausencia de metodología. Si es un proyecto pequeño y un equipo pequeño, el correo electrónico puede ser su ecosistema, pero en el resto de casos, mal vamos.</li>
<li>Reacios a los cambios. Si no admites y pones trabas a que lo requisitos cambiarán, entonces tienes el riesgo de que el <em>mal rollo</em> aparezca.</li>
<li>El proyecto tiene un tamaño que no puedes controlar. Muy simple, pasas de ejecutar proyectos de 3-5 personas durante 3-8 meses a 6-15 personas durante 12-18 meses. Los proyectos que se prolongan en el tiempo tienen ciertos aspectos que no aparecen en proyectos pequeños.</li>
<li>Tu diseño está condicionado por el cliente y no te siente a gusto desde el comienzo. Mal empezamos porque tu crees que deberían de confiar en ti como proveedor de software y dejarte libertad.</li>
</ol>
<p>Como en todas las listas que hago, siempre se podrían añadir más puntos. Lo dejo para quienes leen este espacio.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.manuelrecena.com/blog/archives/676/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>DEIN &#8211; Ecosistema Software</title>
		<link>http://www.manuelrecena.com/blog/archives/562</link>
		<comments>http://www.manuelrecena.com/blog/archives/562#comments</comments>
		<pubDate>Tue, 24 Mar 2009 15:31:21 +0000</pubDate>
		<dc:creator>Manuel Jesús Recena Soto</dc:creator>
				<category><![CDATA[Herramientas]]></category>
		<category><![CDATA[Ingeniería del software]]></category>
		<category><![CDATA[dein]]></category>
		<category><![CDATA[ecosistemas-software]]></category>

		<guid isPermaLink="false">http://www.manuelrecena.com/blog/?p=562</guid>
		<description><![CDATA[Hace ya casi dos años que venimos definiendo nuestro ecosistema software. A continuación os muestro una ilustración con su arquitectura lógica: Nuestro departamento de Desarrollo Software cuenta con un commiter en Sonar y un contributor en Apache Continuum. ¿Alguna duda?]]></description>
			<content:encoded><![CDATA[<p>Hace ya casi dos años que <a title="Sitio web de GMV Soluciones Globales Internet" href="http://www.gmv-sgi.com" target="_blank">venimos</a> definiendo nuestro <a title="Referencia a una entrada de este blog donde se habla sobre Ecosistemas Software" href="http://www.manuelrecena.com/blog/archives/219" target="_blank">ecosistema software</a>. A continuación os muestro una ilustración con su arquitectura lógica:</p>
<p><img class="alignnone" title="DEIN - Ecosistema Software" src="http://farm4.static.flickr.com/3644/3382597942_49775f7bed.jpg" alt="" width="500" height="435" /></p>
<p>Nuestro departamento de Desarrollo Software cuenta con un <em>commiter</em> en Sonar y un <em>contributor</em> en Apache Continuum.</p>
<p>¿Alguna duda?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.manuelrecena.com/blog/archives/562/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>¿Qué le pedirías a una herramienta de modelado de requisitos?</title>
		<link>http://www.manuelrecena.com/blog/archives/504</link>
		<comments>http://www.manuelrecena.com/blog/archives/504#comments</comments>
		<pubDate>Sun, 08 Mar 2009 23:04:35 +0000</pubDate>
		<dc:creator>Manuel Jesús Recena Soto</dc:creator>
				<category><![CDATA[Herramientas]]></category>
		<category><![CDATA[Ingeniería del software]]></category>

		<guid isPermaLink="false">http://www.manuelrecena.com/blog/?p=504</guid>
		<description><![CDATA[Nuestro ecosistema software tiene cosas que mejorar, y ahí está lo bueno. Siempre hay ideas nuevas para mejorar el ecosistema y con ello refinar nuestra forma de trabajar. Hace algún tiempo publicábamos un simple plugin de TRAC que nos genera una página wiki con los requisitos que recogemos con la herramienta REM. Evidentemente era una [...]]]></description>
			<content:encoded><![CDATA[<p>Nuestro <a title="Referencia a una entrada de este blog" href="http://www.manuelrecena.com/blog/archives/219" target="_blank">ecosistema software</a> tiene cosas que mejorar, y ahí está lo bueno. Siempre hay ideas nuevas para mejorar el ecosistema y con ello refinar nuestra forma de trabajar. Hace algún tiempo publicábamos un <a title="Referencia a una entrada de este blog" href="http://www.manuelrecena.com/blog/archives/145" target="_blank">simple plugin de TRAC</a> que nos genera una página wiki con los requisitos que recogemos con la herramienta REM. Evidentemente era una primera aproximación que seguimos usando pero ha llegado el momento de avanzar, de ahí el título de esta entrada. A continuación algunas cosas que considero básicas para una herramienta de modelado de requisitos:</p>
<ol>
<li>Posibilidad de categorizar y etiquetar los requisitos.</li>
<li>Posibilidad de reutilizar categorías y etiquetas entre proyectos.</li>
<li>Reutilizar requisitos entre proyectos para evitar introducirlos múltiples veces</li>
<li>Relacionar requisitos y definir en qué cosiste la relación (dependencia, ámbito, de interés, etc&#8230;)</li>
<li>Representaciones gráficas (grafos) con los requisitos y sus relaciones</li>
<li>Generación de artefactos documentales como entregables según perfiles</li>
<li>Versionado de requisitos</li>
<li>Posibilidad de que los requisitos tengan archivos adjuntos (documentos, audio y vídeo)</li>
<li>Que para usarla sólo necesitemos un navegador web (y quizás ni conexión permanente si usamos algo como <a title="Google Gear" href="http://gears.google.com" target="_blank">Google Gear</a>)</li>
<li>Que gestione correctamente una petición de cambio (quién la solicita, por qué, cómo, cuándo, etc.)</li>
</ol>
<p>La lista se podría extender muchísimo. ¿Qué le pedirías tú?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.manuelrecena.com/blog/archives/504/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Metodologías ágiles</title>
		<link>http://www.manuelrecena.com/blog/archives/506</link>
		<comments>http://www.manuelrecena.com/blog/archives/506#comments</comments>
		<pubDate>Wed, 11 Feb 2009 22:23:05 +0000</pubDate>
		<dc:creator>Manuel Jesús Recena Soto</dc:creator>
				<category><![CDATA[Ingeniería del software]]></category>
		<category><![CDATA[metodología]]></category>

		<guid isPermaLink="false">http://www.manuelrecena.com/blog/?p=506</guid>
		<description><![CDATA[Esta semana (lunes y martes) he estado en Madrid recibiendo un curso sobre metodologías ágiles. El curso fue impartido por Diego Parrilla (The Server Labs). No puedo hablar sobre el éxito del curso porque desconocía sus objetivos (sólo iba como invitado), sin embargo, el material que nos entregaron realmente bueno, y Diego, un profesional como [...]]]></description>
			<content:encoded><![CDATA[<p>Esta semana (lunes y martes) he estado en Madrid recibiendo un curso sobre metodologías ágiles. El curso fue impartido por <a title="Blog personal de Diego Parrilla" href="http://www.diegoparrilla.com" target="_blank">Diego Parrilla</a> (<a title="Sitio web de la empresa The Server Labs" href="http://www.theserverlabs.com" target="_blank">The Server Labs</a>). No puedo hablar sobre el éxito del curso porque desconocía sus objetivos (sólo iba como invitado), sin embargo, el material que nos entregaron realmente bueno, y Diego, un profesional como mucha experiencia de la buena.</p>
<p>El curso me ha venido muy bien, he podido constatar qué cosas estamos haciendo bien y que cosas tenemos aun por mejorar. Tras un año y medio poniendo en marcha una metodología de trabajo para desarrollar software y el ecosistema software correspondiente, y escuchar a Diego, me gustaría destacar los siguientes puntos:</p>
<ol>
<li>Las metodologías ágiles implican mucha participación por parte del cliente, por lo tanto, hay que saber elegir cómo y cuándo aplicarlas.</li>
<li>En caso de que tu cliente acepte trabajar así, cuéntale en todo momento lo que estás haciendo. Sé totalmente transparente, incluso los impedimentos, dificultades y problemas.</li>
<li>Inspeccionar y cambiar, la clave para conseguir agilidad. Reinventarse constantemente.</li>
<li>Conseguir agilidad es más sencillo con equipos pro-activos, con iniciativa y con experiencia. Parece una obviedad, ¿verdad? Pues no lo olvides si pretendes montar un piloto. Si la experiencia no abunda, busca la figura del mentor (<em>mentoring</em>).</li>
<li>La ubicación de los miembros del equipo en el lugar de trabajo es muy importante. Piensa como distribuyes al equipo, influye en la comunicación.</li>
<li> Para que las cosas salgan bien, el cliente tiene que formar parte del equipo. En la iteración-0 debes marcarte como objetivo hacer que el cliente se implique y tenga claro que él también desempeña un rol (a parte del product-owner).</li>
</ol>
<p>Vuestras sugerencias y experiencias serán bienvenidas.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.manuelrecena.com/blog/archives/506/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Crónica sobre la desconferencia 02 de Ecosistemas Software</title>
		<link>http://www.manuelrecena.com/blog/archives/391</link>
		<comments>http://www.manuelrecena.com/blog/archives/391#comments</comments>
		<pubDate>Sun, 19 Oct 2008 09:26:22 +0000</pubDate>
		<dc:creator>Manuel Jesús Recena Soto</dc:creator>
				<category><![CDATA[Conocimiento libre]]></category>
		<category><![CDATA[Herramientas]]></category>
		<category><![CDATA[Ingeniería del software]]></category>
		<category><![CDATA[desconferencia]]></category>
		<category><![CDATA[ecosistemas-software]]></category>

		<guid isPermaLink="false">http://www.manuelrecena.com/blog/?p=391</guid>
		<description><![CDATA[El pasado viernes 17 de octubre se celebró la segunda edición de la desconferencia del grupo Ecosistemas Software. Tal y como se adelantaba en la lista, la asistencia sería muy reducida, finalmente asistimos 5 personas (Paco, Viki, Darío, Felipe y el que escribe). Pero tuvo su lado positivo, esta desconferencia estuvo más acotada y dirigida [...]]]></description>
			<content:encoded><![CDATA[<p>El pasado viernes 17 de octubre se celebró la <a title="Referencia a un post de este blog" href="http://www.manuelrecena.com/blog/archives/375" target="_blank">segunda edición</a> de la desconferencia del grupo <a title="Referencia a la lista de correo del grupo Ecosistemas Software" href="http://groups.google.com/group/ecosistemas-software" target="_blank">Ecosistemas Software</a>. Tal y como se adelantaba en la lista, la asistencia sería muy reducida, finalmente asistimos 5 personas (Paco, Viki, Darío, Felipe y el que escribe). Pero tuvo su lado positivo, esta desconferencia estuvo más acotada y dirigida que la anterior, y nos permitió participar mucho más.</p>
<p>A continuación cito algunos de los temas que se trataron (18:20h &#8211; 21:15h aprox.):</p>
<ol>
<li>Dado que teníamos una nueva incorporación, Felipe se presentó, nos contó donde trabajaba, a qué se dedicaba, cuál era su marco tecnológico, cómo era su ecosistema, etc&#8230;</li>
<li>Estuvimos hablando sobre las distintas formas de distribuir nuestros aplicativos Java (war, jar, ear, aar, zip, con instaladores, etc)  y yo estuve hablando sobre las ventaja de usar el plugin de maven <a title="Información sobre el plugin" href="http://maven.apache.org/plugins/maven-assembly-plugin/" target="_blank">assembly</a> y como lo estoy usando en Opina y otros proyectos.</li>
<li>Y por último sobre metodologías de trabajo y especialización en los equipos.</li>
</ol>
<p>El segundo punto sí estaba previsto que lo tratásemos y así lo hicimos, sin embargo, y esto es lo bueno que tienen estas reuniones, salen temas realmente interesantes donde uno aprende mucho justificando sus ideas y escuchando a los demás.</p>
<p>Algunas cuestiones/ideas interesantes que me gustaría destacar:</p>
<ol>
<li>Felipe planteó que las aplicaciones web se podían distribuir en formato WAR y que los parámetros de configuración fueran proporcionados por el contenidor o servidor de aplicaciones a través de un recurso JNDI. Desde luego es una forma de que WAR sea válido en cualquier entorno de despliegue siempre y cuando se conozca el nombre del recurso que el administrador de sistemas asigne.</li>
<li>El plugin Assembly es muy útil para diseñar los distribuibles clásicos: binario, fuentes, etc.</li>
<li>Debemos organizar una desconferencia para hablar única y exclusivamente de metodologías y su vinculación con los ecosistemas software.</li>
<li>Las desconferencias debemos guiarlas y centrar los temas que se van a tratar.</li>
<li>Deberíamos elegir otras opciones que no sean los viernes.</li>
</ol>
<p>Una foto (Darío, Viki, Paco, Felipe, Dani) en las oficinas de BitRock. Aprovecho para darles las gracias por su hospitalidad.</p>
<p><a href="http://www.flickr.com/photos/recena/2951717215/"><img class="alignnone" title="Desconferencia 02" src="http://farm4.static.flickr.com/3015/2951717215_4e92eba294_m.jpg" alt="" width="240" height="180" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.manuelrecena.com/blog/archives/391/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Segunda desconferencia en ecosistemas software</title>
		<link>http://www.manuelrecena.com/blog/archives/375</link>
		<comments>http://www.manuelrecena.com/blog/archives/375#comments</comments>
		<pubDate>Tue, 14 Oct 2008 11:50:01 +0000</pubDate>
		<dc:creator>Manuel Jesús Recena Soto</dc:creator>
				<category><![CDATA[Conocimiento libre]]></category>
		<category><![CDATA[Herramientas]]></category>
		<category><![CDATA[Ingeniería del software]]></category>
		<category><![CDATA[desconferencia]]></category>
		<category><![CDATA[ecosistemas-software]]></category>

		<guid isPermaLink="false">http://www.manuelrecena.com/blog/?p=375</guid>
		<description><![CDATA[Tras el parón veraniego, el grupo de ecosistemas-software organiza &#8220;Desconferencia 02&#8243;. Como ya sucediera en su primera edición, esta nueva edición se volverá a celebrar en las instalaciones de BitRock. La desconferencia se celebrará el próximo viernes 17 a las 18:00h: [wp_geo_map] BitRock S.L. C/ Salado 11 &#8211; Local 15 41010 Sevilla Spain Para esta [...]]]></description>
			<content:encoded><![CDATA[<p>Tras el parón veraniego, el <a title="Lista de correo del grupo Ecosistemas Software" href="http://groups.google.com/group/ecosistemas-software" target="_blank">grupo de ecosistemas-software</a> organiza &#8220;Desconferencia 02&#8243;. Como ya sucediera en su <a title="Referencia a una entrada de este blog" href="http://www.manuelrecena.com/blog/archives/159" target="_blank">primera edición</a>, esta nueva edición se volverá a celebrar en las instalaciones de <a title="Stiio web de la empresa BitRock" href="http://bitrock.com" target="_blank">BitRock</a>.</p>
<p>La desconferencia se celebrará el próximo viernes 17 a las 18:00h:</p>
<p>[wp_geo_map]</p>
<p>BitRock S.L.<br />
C/ Salado 11 &#8211; Local 15<br />
41010 Sevilla<br />
Spain</p>
<p>Para esta segunda edición voy a preparar algunas cositas sobre <a title="Referencia a una entrada de este blog" href="http://www.manuelrecena.com/blog/archives/125" target="_blank">distribuibles</a> en Java. Supongo que luego saldrán otros <a title="Referencia a una entrada de este blog" href="http://www.manuelrecena.com/blog/archives/162" target="_blank">muchos temas</a>. Se ruega a todos los que tengan pensado asistir <a title="Referencia a un hilo de la lista" href="http://groups.google.com/group/ecosistemas-software/browse_thread/thread/684fd70307cd00ea" target="_blank">confirmen su asistencia en la lista de correo</a>. El espacio es limitado y además tengo que saber la gente que asistirá para comprar unos refrescos y algo para picar.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.manuelrecena.com/blog/archives/375/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Lecciones aprendidas</title>
		<link>http://www.manuelrecena.com/blog/archives/369</link>
		<comments>http://www.manuelrecena.com/blog/archives/369#comments</comments>
		<pubDate>Sat, 11 Oct 2008 16:37:00 +0000</pubDate>
		<dc:creator>Manuel Jesús Recena Soto</dc:creator>
				<category><![CDATA[Ingeniería del software]]></category>
		<category><![CDATA[Opiniones y reflexiones]]></category>
		<category><![CDATA[Software QA]]></category>

		<guid isPermaLink="false">http://www.manuelrecena.com/blog/?p=369</guid>
		<description><![CDATA[Recientemente hemos entregado a un cliente una aplicación software dentro de un proyecto que está a punto de terminar. Sólo queda cerrar algunos flecos que no dependen directamente de nosotros, sino del propio cliente. El proyecto era pequeño: 5 meses en total 4 meses desarrollando la aplicación 1 Jefe de proyecto, 1 desarrollador del lado [...]]]></description>
			<content:encoded><![CDATA[<p>Recientemente hemos entregado a un cliente una aplicación software dentro de un proyecto que está a punto de terminar. Sólo queda cerrar algunos flecos que no dependen directamente de nosotros, sino del propio cliente. El proyecto era pequeño:</p>
<ul>
<li>5 meses en total</li>
<li>4 meses desarrollando la aplicación</li>
<li>1 Jefe de proyecto, 1 desarrollador del lado del cliente, 2 desarrolladores JEE y 1 asegurador de la calidad</li>
</ul>
<p>Para la construcción hemos contado con:</p>
<ul>
<li>Marco tecnológico Java: Spring framework, Eclipse Birt, Hibernate</li>
<li>ExtJS</li>
<li>DEIN &#8211; Ecosistema Software (de esto ya os hablaré)</li>
</ul>
<p>Me gustaría contar algunas lecciones que hemos aprendido:</p>
<ol>
<li>Nos es conveniente homogeneizar los entornos de desarrollo local de todos los miembros del equipo. Aunque el cliente nos indique cuál es su entorno de producción y eso quede reflejado en los requisitos no funcionales del análisis, es altamente aconsejable la disparidad. Es una forma muy simple se disminuir riesgos y asegurar un mayor nivel de calidad. Concretamente en este proyecto hemos usado:
<ol>
<li>Ubuntu, Eclipse, Jetty, JDK 1.5 (entorno de desarrollo local)</li>
<li>Windows XP, Eclipse, Tomcat JDK 1.6 (entorno de desarrollo local)</li>
<li>Debian, Tomcat, Apache, JDK 1.5 (entorno de despliegue virtualizado que DEIN proporciona)</li>
</ol>
</li>
<li>Las tareas de análisis nunca terminan. Cuando el analista decide que hay una versión estable de los requisitos y se ponen en marcha las tareas de implementación, se activa un proceso iterativo entre el diseño-implementación y el análisis. El objetivo final para el cliente es que lo que le entreguemos satisfaga sus espectativas, sin embargo, nosotros compartimos ese mismo objetivo y además tenemos que asegurarnos de que lo construido y lo analizado está sincronizado y se corresponden. ¿Por qué? Porque aunque sean desarrollos a medida (llave en mano) es probable que surjan ampliaciones, revisiones, etc. y por eso mismo tenemos que ser consecuentes con lo que hacemos. No es la primera vez que me encuentro un documento de análisis perfectamente maquetado con una página inicial en la que se indica que lo validó tal persona hace un año y recientemente se ha publicado una versión.</li>
<li>Es importantísimo hacerle ver al cliente cuánto cuestan los cambios y todo lo que adicionalmente solicita. Entiendo que es una tarea complicada, pero ahí está la destreza de un buen jefe de proyecto. Lo que no podemos hacer es admitir cambios y mejoras durante la evolución del proyecto con el fin de mejorar la experiencia de los usuarios finales, y que luego, cuando el proyecto está terminando te inunden en procesos eternos llenos de burocracia.</li>
<li>En tu planificación prioriza al máximo el obtener una primera release que puedas mostrar a los usuarios finales. Haz todas las entregar parciales que puedas y la disponibilidad del cliente permita. En este proyecto concretamente, el cliente ha tenido la oportunidad de ver todos los avances de forma diaria. DEIN se encargaba se desplegar todas las noches un SNAPSHOT del proyecto en el entorno de despliegue, que por supuesto estaba disponible para el cliente.</li>
<li>Establece sesiones de trabajo (preferiblemente, semanalmente) con todos los miembros del equipo. Aprovecha esta sesiones de trabajo para hacer una puesta en común de perspectivas, dudas, aclaraciones, consideraciones, propuestas, etc&#8230;</li>
<li>Procura que todos tus proyectos tengan algo de I+D+I. Disponer de un departamento <strong>de verdad</strong> de I+D+I no es sencillo y requiere inversión, pero cuando no se tiene esa opción, algo debemos hacer. Cuidado con los experiementos en proyectos pequeños, es muy sencillo incumplir en la planificación si algo no sale todo lo bien que esperábamos.</li>
</ol>
<p>Supongo que la lista podría continuar, pero son los que puedo contar y pueden ser útiles. En cuanto me autoricen, publicaré algunas capturas de pantalla (y con suerte un screencast) sobre el proyecto.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.manuelrecena.com/blog/archives/369/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>El software no es sólo desarrollo</title>
		<link>http://www.manuelrecena.com/blog/archives/337</link>
		<comments>http://www.manuelrecena.com/blog/archives/337#comments</comments>
		<pubDate>Sun, 28 Sep 2008 21:55:30 +0000</pubDate>
		<dc:creator>Manuel Jesús Recena Soto</dc:creator>
				<category><![CDATA[Herramientas]]></category>
		<category><![CDATA[Ingeniería del software]]></category>
		<category><![CDATA[hibernate]]></category>
		<category><![CDATA[maven]]></category>

		<guid isPermaLink="false">http://www.manuelrecena.com/blog/?p=337</guid>
		<description><![CDATA[Supongo que con este título no estoy diciendo nada nuevo, sin embargo, el día a día nos dice otra cosa. Tan importante es desarrollar un software de calidad como su mantenimiento o explotación, de hecho, la experiencia nos dice que cuanto mejor hagamos el trabajo al principio más fácil y cómodamente abordaremos las etapas futuras. [...]]]></description>
			<content:encoded><![CDATA[<p>Supongo que con este título no estoy diciendo nada nuevo, sin embargo, el día a día nos dice otra cosa. Tan importante es desarrollar un software de calidad como su mantenimiento o explotación, de hecho, la experiencia nos dice que cuanto mejor hagamos el trabajo al principio más fácil y cómodamente abordaremos las etapas futuras.</p>
<p>Hablamos siempre de lo importante que es documentar, definir pruebas, refinar nuestras metodologías, definir buenas prácticas, especialización de los recursos y otras miles de cosas, pero todas ellas afectan -en gran medida- el equipo de desarrollo. ¿Y qué pasa con el resto de perfiles que interviene el ciclo de vida del software? ¿Qué pasa con los administradores de bases de datos y/o administradores de sistemas? ¿Cómo es nuestra relación con ellos? ¿Qué herramientas y procedimientos compartimos con ellos? Dentro del equipo de desarrollo hay &#8220;cosas&#8221; que comienzan a madurar y síntoma de ello es que a veces nos preguntamos, <em>¿Qué haríamos sin&#8230;?</em></p>
<p>En este post os hablaré concrétamente de Maven e Hibernate. En mi entorno profesional, estas dos herramientas son muy frecuentes y ambas tienen mucho que decir sobre la relación del equipo de desarrollo y el resto de perfiles que normalmente pertenecen al departamento de sistemas.</p>
<p>Desde hace tiempo la elaboración de libros blancos de buenas prácticas se ha convertido en una moda. En un próximo post daré mi opinión al respecto (&#8220;La parte oscura de los libros blancos&#8221;), pero por ahora sólo hago referencia porque son precisamente estos libros blancos los que indican/recomiendan/exigen el uso de herramientas como Maven e Hibernate. De qué vale que el equipo de desarrollo haga uso de este tipo de herramientas si luego nos encontramos con situaciones como estas:</p>
<ul>
<li>El despliegue del software lo lleva a cabo el propio departamento de sistemas y allí reina su propio libro blanco de buenas prácticas. Si nuestro proyecto está modelado con Maven, y contamos con un <a title="Referencia a una entrada de este blog" href="http://www.manuelrecena.com/blog/archives/219">ecosistema software</a> mínimamente definido, ¿Por qué tenemos que entregar un WAR con la aplicación que posteriormente descomprimen para configurar (base de datos, LDAP, SMTP, etc)? ¿Por qué los administradores de sistemas no usan Maven? Se podrían beneficiar de muchas cosas como por ejemplo los perfiles para los distintos entornos de despliegue, ejecución de <a title="Referencia a una entrada de este blog" href="http://www.manuelrecena.com/blog/archives/157">pruebas que no pueden faltar</a> y un largo etcetera. Creo que sería genial que tanto el equipo de desarrollo como el departamento de sistemas compartiesen el uso de Maven. Evidentemente, cada uno desde su perspectiva.</li>
<li>¿Por qué debemos entregar al DBA los script de creación de esquemas cuando de eso se encarga automáticamente hibernate? Recientemente preparamos para un proyecto un módulo con una interfaz de línea de comandos con varias finalidades, crear el esquema de base de datos, creación de sinónimos y carga inicial de información (tablas maestras). Con un módulo de estas características, el proceso de instalación como podéis imaginar queda resumido en ejecutar un par de sentencias desde la línea de comandos. Pues parece que esto no entraba dentro del libro blanco del departamento de sistemas.</li>
</ul>
<p>Estos son sólo dos ejemplos que ponen de manifiesto que el equipo de desarrollo y el departamento de sistemas deben tener <strong>un único libro blanco de buenas prácticas</strong> y que existe <strong>una brecha que debe estrecharse</strong> cuanto antes.</p>
<p>En varias ocasiones he tenido oportunidad de charlar con responsables de departamentos de sistemas y una de sus preocupaciones es que los equipos de desarrollo les entregan software que una vez puesto en producción comienza a dar problemas. ¿Qué pasa en esta situación? Al igual que existen pruebas unitarias y funcionales, el departamento de sistemas puede disponer de pruebas de integración y sistemas que proporcionen unos indicadores para garantizar unos mínimos. No sería la primera vez que se pone en producción una aplicación con la configuración por defecto del pool C3P0 muy usado con Hibernate. Luego vienen las sorpresas. ¿Cómo comprueban los DBAs que las tablas de un sistema de información comienzan con un determinado prefijo? ¿Mirando los scripts? ¿No sería más fácil con un plugin de Maven?</p>
<p>Una vez más, la comunicación entre los distintos perfiles es fundamental para que el ciclo de vida de un software funcione.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.manuelrecena.com/blog/archives/337/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

