<?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>Eduardo Riol</title>
	<atom:link href="http://www.eduardoriol.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.eduardoriol.com</link>
	<description>Ingeniero en Informática</description>
	<lastBuildDate>Mon, 19 Mar 2012 11:14:28 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Instalar Subversion en Dropbox</title>
		<link>http://www.eduardoriol.com/instalar-subversion-en-dropbox/</link>
		<comments>http://www.eduardoriol.com/instalar-subversion-en-dropbox/#comments</comments>
		<pubDate>Sun, 04 Dec 2011 11:53:33 +0000</pubDate>
		<dc:creator>eduriol</dc:creator>
				<category><![CDATA[programación]]></category>
		<category><![CDATA[control de versiones]]></category>
		<category><![CDATA[dropbox]]></category>
		<category><![CDATA[subversion]]></category>

		<guid isPermaLink="false">http://www.eduardoriol.com/?p=742</guid>
		<description><![CDATA[Dado que no es precisamente económico para un particular dispuesto a hacer sus pequeños proyectos personales de software desde diferentes localizaciones disponer de un servidor equipado con un sistema de control de versiones mediante el cual pueda mantener alineadas todas las versiones del mismo proyecto en todos los dispositivos desde los que trabaje, muestro aquí [...]]]></description>
			<content:encoded><![CDATA[<p>Dado que no es precisamente económico para un particular dispuesto a hacer sus pequeños proyectos personales de software desde diferentes localizaciones disponer de un servidor equipado con un <a href="http://en.wikipedia.org/wiki/Revision_Control_System" target="_blank">sistema de control de versiones</a> mediante el cual pueda mantener alineadas todas las versiones del mismo proyecto en todos los dispositivos desde los que trabaje, muestro aquí en unos simples pasos cómo montar un sistema de gestión de versiones online gratuito gracias a la combinación Subversion + Dropbox:</p>
<ol>
<li><a href="http://www.dropbox.com/install" target="_blank">Instalar Dropbox</a> y abrir cuenta si no se dispone ya de una.</li>
<li><a href="http://tortoisesvn.net/downloads.html" target="_blank">Instalar TortoiseSVN</a>.</li>
<li>Crear carpeta &#8216;svn&#8217; dentro de la carpeta &#8216;Dropbox&#8217; instalada en nuestro PC.</li>
<li>Hacer click derecho sobre la carpeta &#8216;svn&#8217; y seleccionar TortoiseSVN &gt; Create repository here.</li>
<li>Elegir la opción de &#8216;Create folder structure&#8217; y después dar &#8216;OK&#8217;. Con esto hemos creado el repositorio.</li>
<li>Para sincronizar nuestros proyectos con el repositorio: sobre la carpeta en la que almacenemos nuestros proyectos hacemos click derecho y seleccionamos TortoiseSVN &gt; Import.</li>
<li>Ponemos como URL del repositorio la dirección de la carpeta &#8216;svn&#8217; creada en el paso 3. (Ejemplo:<em> file:///D:/Dropbox/svn</em>)</li>
<li>Aceptamos y comprobamos cómo se suben los ficheros del proyecto al repositorio.</li>
<li>Sobre la carpeta de nuestros proyectos, hacemos click derecho y elegimos &#8216;SVN Checkout&#8230;&#8217;</li>
<li>En &#8216;URL of repository&#8217; ponemos la misma del paso 7 y en &#8216;Checkout directory&#8217; la carpeta de nuestros proyectos, quitando el &#8216;/svn&#8217; que añadirá por defecto al final de la URL y pulsamos &#8216;OK&#8217;.</li>
<li>Ya tenemos lista la carpeta de nuestros proyectos para hacer Commits y Updates haciendo click derecho sobre ella. <img src='http://www.eduardoriol.com/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
</ol>
<p>Si trabajamos con un <a href="http://es.wikipedia.org/wiki/Entorno_de_desarrollo_integrado" target="_blank">IDE de desarrollo</a> que incorpora plugins para Subversion no es necesario sincronizar manualmente la carpeta de nuestros proyecto (pasos 6 a 11), sino que sería suficiente con indicar en la configuración del plugin la dirección del repositorio (carpeta &#8216;svn&#8217; de &#8216;Dropbox&#8217;).</p>
<p><strong>Por cada uno de los PCs en los que vayamos a trabajar, habrá que repetir los pasos 1, 2, 9 y 10. Los demás pasos son sólo para el primer ordenador.</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.eduardoriol.com/instalar-subversion-en-dropbox/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Qué debe saber un Ingeniero en Informática</title>
		<link>http://www.eduardoriol.com/que-debe-saber-un-ingeniero-en-informatica/</link>
		<comments>http://www.eduardoriol.com/que-debe-saber-un-ingeniero-en-informatica/#comments</comments>
		<pubDate>Sat, 19 Nov 2011 12:58:31 +0000</pubDate>
		<dc:creator>eduriol</dc:creator>
				<category><![CDATA[política tecnológica]]></category>
		<category><![CDATA[empleo]]></category>
		<category><![CDATA[formacion]]></category>
		<category><![CDATA[profesion]]></category>

		<guid isPermaLink="false">http://www.eduardoriol.com/?p=731</guid>
		<description><![CDATA[La ingeniería en informática es una disciplina tremendamente extensa, con multitud de campos de aplicación. Es muy difícil ser experto en varios de estos campos a la vez. Resultaría complicado encontrar, por poner un ejemplo, un profesional que conociese los secretos de la Inteligencia Artificial y al mismo tiempo fuese un gurú del modelado de [...]]]></description>
			<content:encoded><![CDATA[<p>La ingeniería en informática es una disciplina tremendamente extensa, con multitud de campos de aplicación. Es muy difícil ser experto en varios de estos campos a la vez. Resultaría complicado encontrar, por poner un ejemplo, un profesional que conociese los secretos de la Inteligencia Artificial y al mismo tiempo fuese un gurú del modelado de sistemas en UML dominando a la par los arcanos de los Autómatas Programables: se dice que quien mucho abarca poco aprieta y eso perfectamente aplicable a nuestra profesión.</p>
<p>Sin embargo la especialización, siendo importante, no lo es todo. La tendencia actual en el desarrollo de software a la formación de <a href="http://en.wikipedia.org/wiki/Cross-functional_team" target="_blank">equipos multidisciplinares</a> para el soporte de las metodologías ágiles y la reducción de costes en las organizaciones obliga a que los Ingenieros en Informática, si quieren mantenerse competitivos, sean capaces de manejarse al menos de forma aceptable en los siguientes campos:</p>
<ul>
<li>Programación de aplicaciones de escritorio: conocer al menos .NET bajo Visual Studio y Java en Eclipse, siendo bastante competente en al menos uno de ellos.</li>
<li>Programación web: HTML es obligatorio y por lo menos se deben tener unas nociones básicas de CSS y JavaScript. Además, tienes que ser capaz de hacer aplicaciones simples en ASP.NET, Java EE y PHP, siendo bastante competente en al menos una de ellas. Aquí cobra además especial importancia la <a href="http://es.wikipedia.org/wiki/Seguridad_inform%C3%A1tica" target="_blank">seguridad</a>.</li>
<li>Ingeniería de Requisitos: Recogida y gestión de los requisitos. Normas básicas de elaboración de una buena especificación.</li>
<li>Análisis y Diseño de sistemas de software: Hay varios lenguajes de modelado importantes, pero el dominio de UML es obligatorio, al menos en un grado avanzado. Hoy en día hay que tener nociones además de <a href="http://www.slideshare.net/jcabot/mdd-desarrollo-de-software-dirigido-por-modelos-que-funciona-de-verdad" target="_blank">Desarrollo Dirigido por Modelos</a>. Conocimientos de algoritmia y estructuras de datos son igualmente básicos tanto para el diseño como para la programación.</li>
<li>Pruebas: unitarias, de integración, funcionales y de aceptación.</li>
<li>Bases de Datos: el diseño de bases de datos es esencial, la normalización bastante deseable. El conocimiento de al menos un lenguaje de acceso a bases de datos (SQL principalmente) es obligatorio. No se pueden olvidar los servicios web para el encapsulamiento del acceso y modificación de los datos.</li>
<li>Gestión de Proyectos:</li>
<ul>
<li>Definición, Descomposición y Planificación de Proyectos. Técnicas de estimación de tareas.</li>
<li>Seguimiento de proyectos.</li>
<li>Control de versiones.</li>
<li>Gestión de riesgos, cambios e incidencias.</li>
<li>Gestión de expectativas de los implicados y de la comunicación entre ellos.</li>
<li>Nociones al menos básicas sobre presupuestos y contratos.</li>
<li>Dominio de herramientas como Microsoft Project.</li>
</ul>
<li>Estándares, metodologías y modelos de calidad: CMMI, ISO 9001, RUP, 6 Sigma, Scrum, XP, etc. Algunos son metodologías de desarrollo, otros modelos de mejora de procesos, pero en cualquier caso haber oído hablar de ellos nunca está de más.</li>
</ul>
<p>No creo que éstos que he mencionado tengan que ser campos que un junior deba conocer a fondo desde un principio para ejercer su profesión, pero sí creo que todo ingeniero debería trazar su propio plan de formación a corto y medio plazo de manera que se garantizase a sí mismo conocimientos en éstas y otras áreas de las que probablemente me haya olvidado y que resulten igualmente importantes. La Universidad pone las bases, pero el desarrollo formativo posterior es responsabilidad exclusiva de cada uno.</p>
<p>PD: Una primera crítica que se me ocurre a mi propia lista es que está posiblemente muy enfocada al desarrollo de software y deja de lado campos en los que ejercen gran número de ingenieros como son las Redes, la Optimización y el Control industrial o la electrónica de circuitos, entre otras.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.eduardoriol.com/que-debe-saber-un-ingeniero-en-informatica/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Estudios de balística en el software</title>
		<link>http://www.eduardoriol.com/estudios-de-balistica-en-el-software/</link>
		<comments>http://www.eduardoriol.com/estudios-de-balistica-en-el-software/#comments</comments>
		<pubDate>Wed, 07 Sep 2011 07:27:26 +0000</pubDate>
		<dc:creator>eduriol</dc:creator>
				<category><![CDATA[calidad del software]]></category>
		<category><![CDATA[gestión de proyectos]]></category>

		<guid isPermaLink="false">http://www.eduardoriol.com/?p=721</guid>
		<description><![CDATA[En los viejos cuentos y leyendas europeos se decía que una bala de plata es el único instrumento capaz de acabar exitosamente con un hombre lobo. Del mismo modo, en la ingeniería del software se habla de bala de plata cuando se consigue una metodología de desarrollo capaz de ser aplicada con éxito en todo [...]]]></description>
			<content:encoded><![CDATA[<p>En los viejos cuentos y leyendas europeos se decía que una <a href="http://es.wikipedia.org/wiki/Bala_de_plata" target="_blank">bala de plata</a> es el único instrumento capaz de acabar exitosamente con un hombre lobo. Del mismo modo, <a href="http://www.fabricasdesoftware.es/no-hay-balas-de-plataenno-silver-bullets.html" target="_blank">en la ingeniería del software se habla de bala de plata</a> cuando se consigue una metodología de desarrollo capaz de ser aplicada con éxito en todo tipo de proyectos. El problema en ambos casos es que la leyenda no se cumple. En el primero porque los hombres lobo son sólo eso: materia de cuentos. En el segundo porque las metodologías infalibles son aún más legendarias que los licántropos.</p>
<p>En realidad no es que no existan buenas metodologías en el desarrollo de software, sino que cada metodología es aplicable a un contexto determinado. De hecho incluso dentro de una misma organización la metodología tomada como referencia debe ser evaluada y en su caso adaptada para cada proyecto concreto, en función de características diversas como son el número y la experiencia de los participantes, la relación con el cliente, los plazos, etcétera.</p>
<p>En resumen, <a href="http://www.javiergarzas.com/2010/06/cmmi-metodos-agiles.html" target="_blank">hay que evitar ser un talibán de la metodología</a>. La definición de los procesos de desarrollo en una organización debe ser configurable para cada proyecto, de forma que no se pierda el foco de lo realmente necesario para el éxito del mismo. Eso sí, los procesos resultantes de la adaptación no deben desviarse de los mínimos criterios de calidad impuestos por la organización. Se trata de modificar el cómo cumplir con los objetivos, no los objetivos en sí.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.eduardoriol.com/estudios-de-balistica-en-el-software/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Institucionalizando el nivel 2 de CMMI en el Departamento de I+D de una PYME</title>
		<link>http://www.eduardoriol.com/institucionalizando-el-nivel-2-de-cmmi-en-el-departamento-de-id-de-una-pyme/</link>
		<comments>http://www.eduardoriol.com/institucionalizando-el-nivel-2-de-cmmi-en-el-departamento-de-id-de-una-pyme/#comments</comments>
		<pubDate>Wed, 24 Aug 2011 14:53:28 +0000</pubDate>
		<dc:creator>eduriol</dc:creator>
				<category><![CDATA[gestión de proyectos]]></category>
		<category><![CDATA[cmmi]]></category>

		<guid isPermaLink="false">http://www.eduardoriol.com/?p=716</guid>
		<description><![CDATA[Por su interés enlazo el vídeo de la ponencia que realizamos en la Universidad Carlos III dentro del ITGSM 2011 el pasado junio sobre nuestra propia experiencia implementando el nivel 2 de CMMI en el Departamento de I+D de Answare Technologies. En él explicamos los principales desafíos que supuso la adaptación de las diversas áreas [...]]]></description>
			<content:encoded><![CDATA[<p>Por su interés enlazo <a href="http://arcamm.uc3m.es/arcamm/?item=31f5b930407a26e166e0147cc77bb4c0" target="_blank">el vídeo de la ponencia</a> que realizamos en la Universidad Carlos III dentro del <a href="http://www.itsmf.es/index.php?option=com_content&amp;view=article&amp;id=450" target="_blank">ITGSM 2011</a> el pasado junio sobre nuestra propia experiencia implementando <a href="http://www.eduardoriol.com/el-nivel-2-de-cmmi/" target="_blank">el nivel 2 de CMMI</a> en el Departamento de I+D de <a href="http://www.answare-tech.com/" target="_blank">Answare Technologies</a>.</p>
<p>En él explicamos los principales desafíos que supuso la adaptación de las diversas áreas de proceso de CMMI al modelo de negocio del I+D+i, así como las pautas que a nosotros mejor nos funcionaron para implantar exitosamente las prácticas en la organización.</p>
<p>La ponencia surgió a raíz del interés de la organización del congreso en difundir el contenido del artículo -del mismo nombre que la ponencia- que se puede encontrar en <a href="http://www.answare-tech.com/index.php?option=com_content&amp;view=article&amp;id=36%3Ainstitucionalizando-el-nivel-2-de-cmmi-en-el-departamento-de-id-de-una-pyme&amp;catid=14%3Acontinuous-improvement&amp;Itemid=21&amp;lang=en" target="_blank">este enlace</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.eduardoriol.com/institucionalizando-el-nivel-2-de-cmmi-en-el-departamento-de-id-de-una-pyme/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gestión de imprevistos</title>
		<link>http://www.eduardoriol.com/gestion-de-imprevistos/</link>
		<comments>http://www.eduardoriol.com/gestion-de-imprevistos/#comments</comments>
		<pubDate>Sat, 30 Jul 2011 14:20:34 +0000</pubDate>
		<dc:creator>eduriol</dc:creator>
				<category><![CDATA[gestión de proyectos]]></category>
		<category><![CDATA[imprevistos]]></category>

		<guid isPermaLink="false">http://www.eduardoriol.com/?p=642</guid>
		<description><![CDATA[Cuando nos encontramos a tope de trabajo, con varios proyectos encima de la mesa y multitud de tareas por ser completadas, suele ser el momento propicio para que aparezcan los imprevistos, popularmente conocidos como marrones. Los imprevistos pueden llegar desde varias direcciones, y sólo son verdaderos marrones si su resolución es urgente y obligatoria, más [...]]]></description>
			<content:encoded><![CDATA[<p>Cuando nos encontramos a tope de trabajo, con varios proyectos encima de la mesa y multitud de tareas por ser completadas, suele ser el momento propicio para que aparezcan los imprevistos, popularmente conocidos como <em>marrones</em>. Los imprevistos pueden llegar desde varias direcciones, y sólo son verdaderos marrones si su resolución es urgente y obligatoria, más incluso que el resto de los proyectos: un cliente solicitando un favor al que no nos podemos negar, un jefe que desvía sus tareas aguas abajo, un compañero que cae enfermo&#8230; Los imprevistos en algunos casos son síntoma de una planificación poco cuidada, pero en otros, como su propio nombre indica, eran prácticamente imposibles de prever.</p>
<p>Ante un imprevisto, un equipo de desarrollo cuenta con cuatro alternativas, que enumeraré en orden desde la más deseable hasta la que debe ser tomada como último recurso.</p>
<ol>
<li><strong>Elegir a una persona con la formación adecuada que pueda retrasar sus tareas sin impactar en la fecha de entrega.</strong> Esta opción es la más deseable porque las tareas que la persona está realizando se encuentran fuera del <a href="http://en.wikipedia.org/wiki/Critical_Path" target="_blank">camino crítico</a>, y por lo tanto su retraso, dentro de un límite -concretamente la holgura de sus tareas asignadas-, no impacta en el trabajo de los compañeros ni en las fechas de entrega.</li>
<li><strong>Retrasar la fecha de entrega.</strong> Si no se dispone de recursos para afrontar las tareas que son desviadas por el marrón, y estas tareas ya se encontraban ajustadas de fechas, lo primero que se nos pasa por la cabeza es retrasar el hito. En este caso, por razones obvias, más nos vale disponer de un buen negociador en el equipo para interceder ante el cliente.</li>
<li><strong>Disminuir el alcance del proyecto.</strong> Si bueno debe ser el negociador que retrase la fecha de entrega, mejor debe ser el negociador que recorte los objetivos del proyecto. Cuando las tareas asignadas no pueden resolverse en tiempo, es evidente que determinadas funcionalidades y características del producto han de verse recortadas. Una disminución del alcance reducirá con total probabilidad el valor percibido por el cliente y por lo tanto una rebaja en el precio final será prácticamente obligatoria.</li>
<li><strong>Hacer horas extra.</strong> En el caso de que las horas extra estén bien pagadas y el equipo esté motivado, es muy posible que ésta no sea ni mucho menos la opción menos deseada para afrontar el imprevisto, pero también es cierto que este caso ideal no siempre se da y que por lo tanto el exigir un esfuerzo adicional del equipo para cumplir con el imprevisto y con el resto de tareas a tiempo y dentro de los objetivos marcados, va a exigir grandes dosis de mano izquierda y motivación por parte de los responsables de la organización.</li>
</ol>
<p>En realidad el afrontar imprevistos es muy común en el mundo del desarrollo de software, y rara vez no se resuelven recurriendo al uso de horas extra. Que esos esfuerzos extraordinarios sean ocasionales entra dentro de lo perfectamente normal. El problema viene cuando se convierten en una práctica habitual.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.eduardoriol.com/gestion-de-imprevistos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

