<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>The Value of Development - Javier G. Lozano (jgomezl)</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/jgomezl/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/jgomezl/feed.xml</link>
    <description>New technologies, languages, development techniques, and similar stuff</description>
    <lastBuildDate>Wed, 17 Apr 2019 04:02:07 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Desarrollo y Pruebas en Microsoft Azure: bueno para el negocio, bueno para ti (por Aurelio Porras)</title>
      <link>https://docs.microsoft.com/archive/blogs/jgomezl/desarrollo-y-pruebas-en-microsoft-azure-bueno-para-el-negocio-bueno-para-ti-por-aurelio-porras</link>
      <pubDate>Fri, 13 Jun 2014 01:22:00 GMT</pubDate>
      <dc:creator><![CDATA[Javier G. Lozano]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/jgomezl/2014/06/13/desarrollo-y-pruebas-en-microsoft-azure-bueno-para-el-negocio-bueno-para-ti-por-aurelio-porras/</guid>
      <description><![CDATA[NOTA: Este articulo ha sido escrito por Aurelio Porras Garc&iacute;a (aureliop@microsoft.com)
Desde...]]></description>
      <content:encoded><![CDATA[<p>NOTA: Este articulo ha sido escrito por Aurelio Porras Garc&iacute;a (<a href="mailto:aureliop@microsoft.com">aureliop@microsoft.com</a>)</p>
<p>Desde Microsoft llevamos ya m&aacute;s de dos a&ntilde;os hablando a empresas y organismos p&uacute;blicos sobre las bondades de la computaci&oacute;n en la nube en general y de los servicios de la nube de Microsoft en particular. Y en el &uacute;ltimo a&ntilde;o hemos visto c&oacute;mo la nube de Microsoft ha obtenido un buen mont&oacute;n de reconocimientos y certificaciones sobre seguridad, privacidad y protecci&oacute;n de datos y cumplimiento de normativas y est&aacute;ndares, que deber&iacute;an disipar las dudas de las organizaciones espa&ntilde;olas para lanzarse a usarla. Al fin y al cabo, Microsoft es<br />el primer y &uacute;nico (a d&iacute;a de hoy) proveedor de servicios en la nube que ha superado los rigurosos requisitos de la Uni&oacute;n Europea y de la Agencia Espa&ntilde;ola de Protecci&oacute;n de Datos sobre el almacenamiento y protecci&oacute;n de los datos.</p>
<p>Aun as&iacute; sigue habiendo reticencias para usar la nube en general, especialmente en las organizaciones tradicionales, razones que no son subjetivas precisamente: las inversiones en hardware y software hay que amortizarlas; los contratos de outsourcing siguen vigentes; los procedimientos y procesos de TI tienen que adaptarse a la nueva realidad de la nube; son algunos impedimentos que hemos o&iacute;do y que no tienen una resoluci&oacute;n inmediata. Pero a pesar de estas trabas, hay escenarios por los que se pueden empezar ya mismo si realmente se quiere. Uno de ellos es el escenario de Desarrollo y Pruebas en la nube. Es aplicable a pr&aacute;cticamente cualquier organizaci&oacute;n, ayuda a las &aacute;reas de TI a entender el uso de la nube y es el escenario m&aacute;s extendido a nivel mundial. Y no es solo factible, sino que proporciona la agilidad y el ahorro de costes que demanda el negocio, dif&iacute;cilmente comparables a escenarios de Desarrollo y Pruebas en hardware dedicado o nubes privadas. Ahora las organizaciones solo tienen que aplicarlo. Vamos a ver c&oacute;mo.</p>
<h3>Escenario de desarrollo y pruebas en la nube</h3>
<p>Es un escenario muy com&uacute;n que aplica a cualquier organizaci&oacute;n que apoye sus procesos de negocio en aplicaciones de software (&iquest;a d&iacute;a de hoy hay alguna que no?), independientemente de que disponga de un &aacute;rea de Desarrollo como tal o que el desarrollo lo tenga&nbsp; subcontratado a un tercero. Al fin y al cabo las aplicaciones no solo hay que desarrollarlas, sino que hay que probarlas antes de pasar a explotaci&oacute;n, y hay que mantenerlas y evolucionarlas en el tiempo para ajustarlas a las necesidades del negocio. Cualquier<br />organizaci&oacute;n suele tener m&aacute;s o menos definido un proceso de gesti&oacute;n del ciclo de vida de las aplicaciones y en mayor o menor medida disponen de unos entornos hardware y software, llam&eacute;moslos entornos de Desarrollo, de Integraci&oacute;n, de Calidad y de Preproducci&oacute;n, donde las aplicaciones se desarrollan y se prueban antes de pasar al entorno de Producci&oacute;n.</p>
<p>Pues bien, esos entornos de desarrollo y pruebas e incluso el proceso de gesti&oacute;n del ciclo de vida de las aplicaciones, se pueden subir a Microsoft Azure, facilitando al &aacute;rea de TI las sempiternas exigencias de negocio: el ahorro de costes y la agilidad de adaptaci&oacute;n al negocio.</p>
<h3>Puestos de desarrolladores y probadores en la nube</h3>
<p>El caso m&aacute;s evidente e inmediato es subir a la nube los puestos de desarrolladores y probadores. Aplica a organizaciones que proporcionan el puesto a su fuerza de desarrollo y pruebas de aplicaciones, sean internos o subcontratados, y a organizaciones que se dedican a desarrollar o probar aplicaciones para terceros. En ambos casos, la organizaci&oacute;n facilita el puesto, con su hardware y software, a la persona que desarrolla o prueba.</p>
<p>Si el puesto del desarrollador o del probador fuera una m&aacute;quina virtual de Microsoft Azure, tanto la organizaci&oacute;n que lo proporcionara como la persona que lo usara se beneficiar&iacute;an, en comparaci&oacute;n con un puesto f&iacute;sico e incluso con un puesto virtual en las instalaciones de la organizaci&oacute;n, por la sensaci&oacute;n de recursos hardware ilimitados y de rapidez en el aprovisionamiento que proporciona una nube p&uacute;blica como Microsoft Azure. Y es independiente de la plataforma y herramientas que se instalen en el puesto, ya sea un puesto Windows con Visual Studio o un puesto Linux con Eclipse.</p>
<p>La organizaci&oacute;n podr&iacute;a estandarizar los puestos virtuales de sus desarrolladores y probadores y aprovisionarlos en cuesti&oacute;n de minutos; podr&iacute;a definir diferentes perfiles de puestos virtuales en funci&oacute;n del proyecto, de forma que el puesto tuviera el hardware y el software necesario y suficiente para ese proyecto espec&iacute;fico.</p>
<p>Por su parte, la persona podr&iacute;a acceder al puesto virtual desde cualquier lugar y a trav&eacute;s de cualquier dispositivo con conexi&oacute;n de escritorio remoto; una tableta ser&iacute;a suficiente; la persona que estuviera implicada en varios proyectos podr&iacute;a disponer de varios puestos virtuales. Y si la persona usa Visual Studio, los ajustes del entorno de desarrollo (IDE), que tambi&eacute;n se almacenan en la nube, se sincronizan entre instancias de Visual Studio para que el entorno de desarrollo (IDE) tenga el mismo aspecto y el usuario se sienta m&aacute;s c&oacute;modo.</p>
<p>Con todo esto, la organizaci&oacute;n solo pagar&iacute;a por los puestos virtuales que se han usado realmente y solo durante el tiempo que se han usado, aprovech&aacute;ndose del pago por uso inherente a la nube p&uacute;blica; la organizaci&oacute;n pueda asumir m&aacute;s f&aacute;cilmente picos de subcontrataci&oacute;n de fuerza de desarrollo o pruebas proporcionando m&aacute;s puestos r&aacute;pidamente y elimin&aacute;ndolos una vez se hayan superado esos picos. Y la organizaci&oacute;n podr&iacute;a incluso planificar en Microsoft Azure el uso de los puestos virtuales, reduciendo sus ventanas de disponibilidad; as&iacute;,<br />en lugar de una disponibilidad de 24x7 que supone un puesto f&iacute;sico, se podr&iacute;a reducir a una de 12x5, posibilitando el acceso al puesto virtual, por ejemplo, s&oacute;lo de 8am a 8pm de lunes a viernes, controlando a&uacute;n m&aacute;s el consumo y reduciendo la factura.</p>
<h3>Entornos de Desarrollo y Pruebas de aplicaciones en la nube</h3>
<p>Es habitual que los proyectos para el desarrollo de nuevas aplicaciones o para el mantenimiento de las existentes tengan presupuestos limitados para hardware y software, lo que supone una limitaci&oacute;n importante a la hora de montar los entornos de desarrollo y pruebas necesarios. Y tambi&eacute;n es habitual que las organizaciones optimicen sus inversiones, compartiendo hardware y software para los entornos de pruebas de diferentes aplicaciones, ofreciendo colas y ventanas de uso para cada proyecto. En ambos casos, lo que<br />acaba comprometi&eacute;ndose al final es la deseada agilidad en el desarrollo de las aplicaciones, demandada por negocio.</p>
<p>En la misma l&iacute;nea que los puestos de desarrolladores y probadores, los entornos de ejecuci&oacute;n donde se desarrollan y se prueban las aplicaciones tambi&eacute;n son susceptibles de aprovecharse de la nube. Los entornos de Desarrollo, de Integraci&oacute;n, de Calidad y de Preproducci&oacute;n de una aplicaci&oacute;n se pueden subir a la nube, independientemente de la naturaleza de la aplicaci&oacute;n, use o no servicios de la nube, e independientemente de la plataforma y tecnolog&iacute;as que utilice, ya sea .Net sobre plataforma Microsoft o Java sobre plataforma Linux. Microsoft Azure proporciona todo lo necesario para montar esos entornos utilizando m&aacute;quinas virtuales y conect&aacute;ndolos si as&iacute; se requiere con los recursos propios de la organizaci&oacute;n mediante redes virtuales o buses de servicios.</p>
<p>Adem&aacute;s, Microsoft Azure permite guardar estados de las m&aacute;quinas virtuales, para que levantar un entorno de pruebas sea r&aacute;pido y el entorno est&eacute; listo para usarse, pudi&eacute;ndose desechar ese entorno al finalizar las pruebas. Si se dispone de los entornos de pruebas necesarios para una aplicaci&oacute;n en los momentos oportunos, la aplicaci&oacute;n se puede empezar a probar antes, se puede probar m&aacute;s a menudo y mejor, lo que impulsa la agilidad en el desarrollo y mejora la calidad final de la aplicaci&oacute;n cuando se pase a Producci&oacute;n. Y cuando se habla de pruebas en general, se incluye la posibilidad de realizar pruebas de escalabilidad de una aplicaci&oacute;n, montando el entorno de Preproducci&oacute;n id&eacute;ntico al de Producci&oacute;n, para que estas pruebas tengan sentido y sean lo m&aacute;s realistas posibles. Esto unido a la posibilidad de lanzar la carga de las pruebas de escalabilidad desde Microsoft Azure a trav&eacute;s su servicio Load Test Service que se menciona m&aacute;s adelante, sit&uacute;a Microsoft Azure como una soluci&oacute;n completa para las pruebas de escalabilidad de aplicaciones.</p>
<p>Y, obviamente, subir los entornos de desarrollo y pruebas a Microsoft Azure es efectivo en costes; solo se paga por lo que se usa y si los entornos solo se mantienen disponibles cuando es oportuno, el ahorro puede llegar a ser considerable comparado con la adquisici&oacute;n de hardware dedicado, m&aacute;s a&uacute;n si se trata de entornos de Preproducci&oacute;n.</p>
<p>Finalmente y en relaci&oacute;n al ahorro de costes, si los entornos de desarrollo y pruebas est&aacute;n basados en plataforma Microsoft, es muy aconsejable tener en cuenta el uso de suscripciones MSDN para el licenciamiento de estos entornos, en comparaci&oacute;n al uso de licencias productivas; la suscripci&oacute;n MSDN se paga por usuario, mientras que la licencia productiva se paga por instalaci&oacute;n. Basta con adquirir suscripciones MSDN para los desarrolladores, los probadores y los administradores de sistemas que manipulan y hacen uso de<br />los entornos de desarrollo y pruebas para que estos entornos est&eacute;n correctamente licenciados sin coste adicional; y se pueden licenciar ilimitados entornos de desarrollo y pruebas. Si se comparan los costes de las suscripciones MSDN con los costes de las licencias productivas, la sorpresa puede ser gratificante.</p>
<h3>&nbsp;Gesti&oacute;n del ciclo de vida de las aplicaciones en la nube</h3>
<p>La &uacute;ltima pieza del escenario de Desarrollo y Pruebas susceptible de mover a la nube es la gesti&oacute;n del ciclo de vida de las aplicaciones (ALM). Y hay situaciones en los que puede mucho tener sentido, por ejemplo: cuando una organizaci&oacute;n pretende externalizar el desarrollo de aplicaciones a un tercero y las pol&iacute;ticas de seguridad corporativas impiden que el tercero pueda acceder a las herramientas ALM de la organizaci&oacute;n; o bien, cuando una organizaci&oacute;n pretende abordar proyectos de desarrollo, pero no desea que la gesti&oacute;n del<br />ciclo de vida de las aplicaciones le suponga adquirir nueva infraestructura que tenga que administrar. En estos casos utilizar herramientas ALM en la nube encaja perfectamente y la soluci&oacute;n ALM de Microsoft ofrece esta posibilidad.</p>
<p>Hay dos modalidades para usar la soluci&oacute;n ALM de Microsoft en la nube: la primera es desplegar el servidor ALM, Team Foundation Server (TFS), en m&aacute;quinas virtuales de Microsoft Azure, opci&oacute;n soportada por Microsoft y que se podr&iacute;a denominar <strong>Team Foundation Server en infraestructura como servicio</strong> (TFS en IaaS, Infrastructure-as-a-Service). La segunda es usar el servicio ALM de Microsoft Azure llamado <strong>Visual Studio Online</strong> (VSO), que es b&aacute;sicamente una soluci&oacute;n SaaS (Software-as-a-Service) de Microsoft como lo puede ser Exchange Online o Dynamics CRM Online. El servidor TFS y el servicio VSO comparten gran parte del c&oacute;digo, aunque a d&iacute;a de hoy la funcionalidad de TFS es superior a la de VSO, concretamente en lo que concierne a la adaptaci&oacute;n de la herramienta a los procesos de la organizaci&oacute;n y en la explotaci&oacute;n de la informaci&oacute;n a trav&eacute;s de informes y cuadros de mando. Por otro lado, VSO es un servicio mantenido y administrado por Microsoft, mientras que TFS en IaaS exige que la organizaci&oacute;n que lo use se encargue de su administraci&oacute;n como un servidor m&aacute;s de su entorno productivo (monitorizaci&oacute;n, copias de respaldo, actualizaciones, etc.). Es por lo tanto decisi&oacute;n de la organizaci&oacute;n escoger la modalidad que m&aacute;s se ajuste a sus requerimientos.</p>
<p>Independientemente de si se escoge TFS en IaaS o VSO, hay tres caracter&iacute;sticas de Visual Studio Online que pueden resultar muy interesantes de usar en cualquier caso. El primero es el <strong>servicio de construcci&oacute;n automatizada en la nube</strong> (Build Service) que facilita lanzar builds en la nube y se paga por minuto de compilaci&oacute;n al mes; una organizaci&oacute;n que tenga congestionado sus servicios de build y que no quiera adquirir infraestructura adicional para ampliar su capacidad, o simplemente que no quiera adquirir hardware dedicado para los servicios de build, puede aprovecharse de este servicio en la nube que se paga por uso y no requiere administraci&oacute;n de la infraestructura. El segundo es el <strong>servicio de agentes de pruebas de carga en la nube</strong> (Load Test Service) que permite generar la carga desde la nube para realizar pruebas de escalabilidad de aplicaciones y se paga por minuto de usuario virtual al mes; facilita que se ejecuten este tipo de pruebas m&aacute;s a menudo, sin necesidad de aprovisionar el hardware necesario ni de configurar el sistema de agentes. Y el tercero es el <strong>servicio de monitorizaci&oacute;n de aplicaciones en la nube</strong> (Application Insights), que proporciona informaci&oacute;n relativa a la disponibilidad de la aplicaci&oacute;n y a los errores de ejecuci&oacute;n que se puedan estar produciendo en la aplicaci&oacute;n, y adem&aacute;s extrae patrones de uso de la aplicaci&oacute;n que permitir&aacute; a la organizaci&oacute;n focalizar las inversiones en la evoluci&oacute;n de la misma.</p>
<p>En definitiva, la combinaci&oacute;n de Visual Studio y Microsoft Azure ofrece una soluci&oacute;n ALM en la nube muy completa para cualquier organizaci&oacute;n.</p>
<p>Como hemos visto, el escenario de desarrollo y pruebas en Microsoft Azure no es solo factible, sino que proporciona la agilidad y el ahorro de costes que demanda el negocio, dif&iacute;cilmente comparables a escenarios de desarrollo y pruebas en hardware dedicado o nubes privadas. Ahora las organizaciones solo tienen que aplicarlo.</p>]]></content:encoded>
    </item>
    <item>
      <title>Reduzca el time-to-market de sus proyectos software con Visual Studio Release Management</title>
      <link>https://docs.microsoft.com/archive/blogs/jgomezl/reduzca-el-time-to-market-de-sus-proyectos-software-con-visual-studio-release-management</link>
      <pubDate>Thu, 10 Apr 2014 07:59:00 GMT</pubDate>
      <dc:creator><![CDATA[Javier G. Lozano]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/jgomezl/2014/04/10/reduzca-el-time-to-market-de-sus-proyectos-software-con-visual-studio-release-management/</guid>
      <description><![CDATA[&iquest;Qu&eacute; es Release Management?
Se define como Release Management (RM) al proceso de...]]></description>
      <content:encoded><![CDATA[<h3>&iquest;Qu&eacute; es Release Management?</h3>
<p>Se define como <a title="Release Managment" href="https://en.wikipedia.org/wiki/Release_management">Release Management</a> (RM) al <strong>proceso de gesti&oacute;n de las entregas de software</strong> que abarca desde las etapas de construcci&oacute;n hasta el despliegue de dicho software en sus diferentes entornos de operaci&oacute;n.</p>
<p>Es una disciplina surgida como consecuencia del aumento de la complejidad tanto de los proyectos de desarrollo software c&oacute;mo de las arquitecturas f&iacute;sicas de los entornos de operaci&oacute;n donde dicho software operar&aacute;, especialmente en los &uacute;ltimos a&ntilde;os donde dichas aplicaciones adem&aacute;s deben contemplar su disponibilidad en multiples dispositivos m&oacute;viles, etc.</p>
<p>Esos dos factores de complejidad, unidos a la demanda de mayor celeridad a la hora de llegar al mercado, hacen necesario definir y automatizar en la medida de lo posible c&oacute;mo se despliega el software. Adicionalmente, como en todo procedimiento, tambi&eacute;n se busca establecer una l&iacute;nea base en el proceso de despliegue de manera que pueda ser medido su rendimiento y mejorado en caso necesario.</p>
<p>Aunque esta definici&oacute;n puede parecer relativamente sencilla de entender, existe dentro del panorama actual, cierto mal entendimiento sobre qu&eacute; es Release Management exactamente.</p>
<h3>&iquest;Qu&eacute; NO es Release Management?</h3>
<p>El proceso de Release Management puede y debe formar parte de un proceso de &aacute;mbito mayor que es el de Gesti&oacute;n del Ciclo de Vida de las Aplicaciones o <a title="Application Lifecycle Management Definition " href="https://en.wikipedia.org/wiki/Application_lifecycle_management">Application Lifecycle Management</a> (ALM).</p>
<p>Anteriormente hemos visto que Release Management se enfoca en el proceso de entrega y despliegue del software a sus entornos de operaci&oacute;n. A menudo, existe cierta confusi&oacute;n entre este proceso y los procesos de Gesti&oacute;n de la Configuraci&oacute;n&nbsp;o <a title="Configuration Management Definition" href="https://en.wikipedia.org/wiki/Configuration_management">Configuration Management</a> (CM)</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/49/44/6874.ConfiurationActivityModel.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-49-44/6874.ConfiurationActivityModel.png"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/49/44/6874.ConfiurationActivityModel.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-49-44/6874.ConfiurationActivityModel.png" alt="" border="0" /></a></p>
<p>Para ayudar a entender las diferencias, se debe empezar por tener en cuenta que RM es parte fundamental de la Gesti&oacute;n del Ciclo de Vida de las Aplicaciones, el cual involucra disciplinas y roles de varios campos de la tecnolog&iacute;a, como son: Ingenier&iacute;a software, desarrollo, SQA, Arquitectura, Operaciones IT, entre otros, mientras que por otro lado, el proceso de Gesti&oacute;n de la Configuraci&oacute;n es exclusivo de IT, y est&aacute; encaminado a establecer y mantener la consistencia de los entornos de operaci&oacute;n as&iacute; como su funcionamiento y rendimiento.</p>
<p>Por tanto, debemos distinguir que RM est&aacute; orientado a gestionar el despliegue del software y CM persigue gestionar las aplicaciones y sus entornos de manera que se garantice su debido funcionamiento.</p>
<h3>Release Management como parte de DevOps</h3>
<p>Habiendo establecido qu&eacute; es RM, podemos ver que dicho proceso de gesti&oacute;n involucra tanto a los equipos de desarrollo software, como a los gestores de los entornos de operaci&oacute;n de dicho software. Es claro, entonces, que RM forma parte fundamental de la estrategia que busca mejorar el desarrollo software embarcando como parte integral de los equipos de proyecto a los roles de operaciones. Esta estrategia est&aacute; representada por el concepto de <a title="DevOps definition" href="https://en.wikipedia.org/wiki/DevOps">DevOps</a>.</p>
<p>En DevOps se busca establecer mecanismos y procedimientos de comunicaci&oacute;n y colaboraci&oacute;n entre los equipos de Desarrollo, QA e IT de manera que permitan mejorar los procesos de producci&oacute;n de software mediante la cooperaci&oacute;n de dichos equipos.</p>
<p>Por tanto, RM es precisamente parte fundamental de dicha estrategia de DevOps.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/49/44/5074.Devops.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-49-44/5074.Devops.png"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/49/44/5074.Devops.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/400x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-49-44/5074.Devops.png" alt="" border="0" /></a></p>
<h3>Release Management como parte del Desarrollo Agile</h3>
<p>En los &uacute;ltimos a&ntilde;os, los modelos de desarrollo software basados en los conceptos y pr&aacute;cticas Agile o &aacute;giles han ganado una presencia importante en el panorama actual.</p>
<p>El objetivo fundamental de las metodolog&iacute;as <a title="Agile Manifesto" href="https://www.agilemanifesto.org/">Agile</a>&nbsp;que es mejorar las forma de producir software se fundamentan en la colaboraci&oacute;n entre los diferentes miembros de los equipos de desarrollo software. Es aqu&iacute; donde RM como parte de la estrategia de DevOps tiene su encaje.</p>
<h3>Objetivos de Release Management</h3>
<p>El proceso de RM permite, una vez establecidos los mecanismos de despliegue del software entre los equipos de desarrollo y de operaciones, garantizar, mediante la automatizaci&oacute;n, que dichos procesos de despliegue se realizan siempre de la misma manera y con unos resultados esperables y medibles.</p>
<p>Disponer de unos procesos de despliegue optimizados, podr&iacute;a permitir en &uacute;ltima instancia, el realizar una entrega continua en los proyectos software de manera que el time-to-market de dicho software se ver&iacute;a reducido al m&aacute;ximo, permitiendo maximizar el aporte de valor del mismo.</p>
<h3>Beneficios esperados con Release Management</h3>
<p>La organizaci&oacute;n que establezca un proceso de Release Managment adecuado podr&iacute;a obtener estos beneficios:</p>
<ul>
<li><strong>Reducci&oacute;n del time-to-market</strong> en los proyectos software al reducir la puesta en funcionamiento del software en sus entornos de explotaci&oacute;n</li>
<li><strong>Reducci&oacute;n del esfuerzo dedicado a desplegar los sistemas software</strong> a los diferentes entornos de operaci&oacute;n puesto que RM ayudar&aacute; a automatizar gran parte del proceso</li>
<li><strong>Aumento de la calidad del software</strong> al dotar a los equipos de desarrollo software de recursos &aacute;giles y flexibles para poder probar y corregir el software cuanto antes, especialmente si los entornos de pruebas e integraci&oacute;n contemplan escenarios de aprovisionamiento automatizado en modelos de nube (cloud) p&uacute;blica.</li>
<li><strong>Incremento de la colaboraci&oacute;n y la productividad de los equipos de desarrollo software y de operaciones</strong> al automatizar las tareas repetitivas y/o complejas, y disponer de un conjunto de herramientas y procesos comunes.</li>
<li><strong>Predictibilidad en los procesos de puesta en funcionamiento de los sistemas software</strong> al disponer de informaci&oacute;n y herramientas que permiten medir, estimar y mejorar dicho proceso.</li>
</ul>
<h3>Relase Management con Visual Studio 2013</h3>
<p>La soluci&oacute;n ALM que proporciona Visual Studio 2013 incorpora soporte para implementar en las organizaciones procesos de Release Management.</p>
<p>En su &uacute;ltima versi&oacute;n Visual Studio incorpora VS Release Management Server, quien de manera integrada con Team Foundation Server, puede automatizar el despliegue de las Builds realizadas por TFS a los entornos de Desarrollo, QA y Operaci&oacute;n, entre otros.</p>
<p>&nbsp;<a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/49/44/2451.VSRMArch.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-49-44/2451.VSRMArch.png"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/49/44/2451.VSRMArch.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-49-44/2451.VSRMArch.png" alt="" border="0" /></a></p>
<p>Con el cliente <strong>Visual Studio Release Management Client</strong> se pueden definir los diferentes entornos de los que se desean gestionar los despliegues de una manera gr&aacute;fica y amigable.</p>
<p>El cliente de Visual Studio Release Management se incluye con las ediciones Ultimate, Premium, Test Profesional con MSDN y con MSDN Platforms.</p>
<p>Con el cliente de RM, se pueden visualizar los diferentes pipelines de despliegue, y gestionar el tr&aacute;fico de aplicaciones a desplegar en cada uno de los entornos y sus servidores asociados.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/49/44/2146.TFS-RM-traffic.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-49-44/2146.TFS_2D00_RM_2D00_traffic.png"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/49/44/2146.TFS-RM-traffic.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-49-44/2146.TFS_2D00_RM_2D00_traffic.png" alt="" border="0" /></a></p>
<p>Para que una m&aacute;quina servidora pueda ser parte de un proceso de despliegue debe tener instalado un agente Visual Studio Release Management Agent, que est&aacute; disponible en 2 ediciones:</p>
<ul>
<li><strong>Visual Studio Deployment Agent Standard</strong>, que permite controlar m&aacute;quinas servidoras f&iacute;sicas con 2 procesadores y hasta 2 m&aacute;quinas virtuales sobre ellas, o hasta 2 m&aacute;quinas virtuales en entornos de nube, tanto p&uacute;blica como privada. Esta edici&oacute;n del agente es la opci&oacute;n recomendada en escenarios con Windows Server Standard con poca o ninguna densidad de virtualizaci&oacute;n.</li>
<li><strong>Visual Studio Deployment Agent Datacenter</strong>, que permite controlar m&aacute;quinas servidoras f&iacute;sicas con hasta 2 procesadores e ilimitadas m&aacute;quinas virtuales sobre ellas, o hasta 8 m&aacute;quinas virtuales en entornos de nube, tanto p&uacute;blica como privada. Esta edici&oacute;n del agente es la opci&oacute;n recomendada en escenarios con Windows Server Datacenter con alta densidad de virtualizaci&oacute;n.</li>
</ul>
<p>Los usuarios involucrados en la aprobaci&oacute;n o verficaci&oacute;n de los procesos de despliegue, no precisan licenciar ninguna CAL espec&iacute;fica y disponen de un interfaz web para la administraci&oacute;n de dichos despliegues.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/49/44/8623.TFS-RM-approve.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-49-44/8623.TFS_2D00_RM_2D00_approve.png"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/49/44/8623.TFS-RM-approve.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-49-44/8623.TFS_2D00_RM_2D00_approve.png" alt="" border="0" /></a></p>
<p>Como se ha comentado anteriormente, Visual Studio Release Management Server puede ser incluido como parte de los procesos de Build gestionados por TFS de manera que como parte final de una Build, se puede invocar a sus capacidades para instanciar un procedimiento de despliegue.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/49/44/0435.TFS-RM-integation.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-49-44/0435.TFS_2D00_RM_2D00_integation.png"><img src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/49/44/0435.TFS-RM-integation.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-49-44/0435.TFS_2D00_RM_2D00_integation.png" alt="" border="0" /></a></p>
<h3>&iquest;Por d&oacute;nde empezar con Release Management?</h3>
<p>Hemos visto que RM no es un proceso que se implante de manera inmediata, sino que se basa en personas y procesos. Por lo tanto, para la mayor&iacute;a de las organizaciones tiene sentido empezar identificando qu&eacute; habilidades y tareas relacionadas son de las que disponen de partida.</p>
<p>Despu&eacute;s conviene identificar y priorizar las metas que se desean alcanzar al implantar RM dentro de la organizaci&oacute;n.</p>
<p>Adicionalmente, conviene, como en todos los procesos de cambio en las organizaciones, localizar un sponsor del nivel adecuado dentro de la organizaci&oacute;n que habilite el proceso de cambio, y adem&aacute;s, se debe contar con la ayuda de un experto sobre la materia. Adem&aacute;s es importante focalizarse en los logros obtenidos y establecer un plan de comunicaci&oacute;n y formaci&oacute;n interna adecuado.</p>
<p>Es importante ser persistente en el cambio, y esperar cambios efectivos solamente despu&eacute;s de cierto tiempo de que los nuevos procesos est&eacute;n en marcha.</p>
<h3>Conclusiones</h3>
<p>Release Management permite definir procesos y mecanismos que permitir&aacute;n a las organizaciones gestionar el despliegue de sus proyectos software de manera fiable y automatizada, ayud&aacute;ndoles a ganar en eficiencia y fiabilidad al tiempo que permite reducir los recursos necesarios para esas actividades. Estas mejoras permitir&aacute;n obtener mejoras en la calidad de software producido, al tiempo que reducir&aacute;n el time-to-market de los productos, dotando de mayor competitividad a la actividad de la empresa.</p>
<p>Visual Studio Release Management es la soluci&oacute;n de Release Management de Microsoft que permite extender las capacidades ALM de la soluci&oacute;n de Visual Studio de una manera integrada y homog&eacute;nea&nbsp; dotando a los equipos de desarrollo y operaciones de un conjunto de herramientas y el soporte metodol&oacute;gico que les permita colaborar y cooperar para obtener los objetivos comunes de aumento de la calidad del software, reducci&oacute;n de los costes y el tiempo de puesta en producci&oacute;n del software.</p>]]></content:encoded>
    </item>
    <item>
      <title>Calidad en proyectos software con Visual Studio y Windows Azure</title>
      <link>https://docs.microsoft.com/archive/blogs/jgomezl/calidad-en-proyectos-software-con-visual-studio-y-windows-azure</link>
      <pubDate>Mon, 20 Jan 2014 01:30:00 GMT</pubDate>
      <dc:creator><![CDATA[Javier G. Lozano]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/jgomezl/2014/01/20/calidad-en-proyectos-software-con-visual-studio-y-windows-azure/</guid>
      <description><![CDATA[Nuestra vida "corre" sobre el software. Ese fue el motto principal del lanzamiento de Visual Studio...]]></description>
      <content:encoded><![CDATA[<p><strong>Nuestra vida "corre" sobre el software</strong>. Ese fue el <em>motto</em> principal del lanzamiento de Visual Studio 2010, y desde luego la frase no puede tener m&aacute;s sentido hoy en d&iacute;a. Si pensamos en todo lo que nos rodea, nos daremos cuenta de que en nuestra vida diaria utilizamos dispositivos, servicios, procesos que en alg&uacute;n momento dependen de aplicaciones o sistemas software. Desde nuestros tel&eacute;fonos m&oacute;viles, hasta nuestras cuentas bancarias o incluso nuestros expedientes m&eacute;dicos est&aacute;n gestionados por sistemas software. Y como usuarios finales de dicho software todos esperamos que su funcionamiento sea correcto en todo momento.</p>
<p>En un <a href="https://blogs.msdn.com/b/jgomezl/archive/2013/07/11/mejora-del-rendimiento-de-las-aplicaciones-de-negocio.aspx">art&iacute;culo</a> anterior mencionaba c&oacute;mo cualquier defecto software puede afectar de manera importante tanto a los usuarios finales como a las organizaciones que los fabrican o gestionan. Incluso existen <a href="https://www.abeacha.com/NIST_press_release_bugs_cost.htm">informes</a>&nbsp;del National Institue of Standars&nbsp;and Technology (<a href="https://www.nist.gov/">NIST</a>) del que cifran el impacto econ&oacute;mico que suponen los defectos software en varios miles de millones de d&oacute;lares anualmente. Est&aacute; claro pues que cualquier organizaci&oacute;n que produzca&nbsp; utilice sistemas o aplicaciones software deber&aacute; contemplar la calidad de los mismos como un aspecto cr&iacute;tico y fundamental.</p>
<h3>Caracter&iacute;sticas de QA dentro de Visual Studio</h3>
<p><img style="float: left; margin-right: 20px;" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/49/44/8080.WIN12_Peter_01.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/400x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-49-44/8080.WIN12_5F00_Peter_5F00_01.png" alt="" width="250" /></p>
<p>Microsoft incluye como parte fundamental dentro de su soluci&oacute;n ALM Visual Studio, todas las capacidades necesarias para garantizar la m&aacute;xima calidad en el desarrollo de sistemas o aplicaciones software. Es m&aacute;s, desde hace a&ntilde;os, como parte de la soluci&oacute;n se incluyen herramientas y soporte metodol&oacute;gico que permiten a los equipos de proyecto software realizar las tareas de aseguramiento de la calidad (Software Quality Assurance) de manera integral a lo largo de todo el ciclo de vida y reduciendo la fricci&oacute;n que dichas tareas pueden llegar a suponer para los miembros de los equipos de proyecto.</p>
<p>Utilizando los diferentes componentes de la soluci&oacute;n de Visual Studio se pueden realizar:</p>
<ul>
<li>Con <strong>Visual Studio Test Professional</strong> y <strong>Team Foundation Server</strong> se puede realizar la <strong>planificaci&oacute;n y gesti&oacute;n de los planes de pruebas</strong> necesarios para garantizar la m&aacute;xima calidad de nuestras aplicaciones, permitiendo recopilar centralizada toda la informaci&oacute;n relativa a la calidad del software, de manera que se pueden elaborar m&eacute;tricas e informes que dan idea delos niveles de calidad a lo largo de la vida del proyecto.</li>
<li><strong>Realizaci&oacute;n de pruebas unitarias</strong> por parte de los equipos de desarrollo que permiten asegurar en todo momento la calidad t&eacute;cnica del c&oacute;digo producido, pudiendo incluso incluir dichas bater&iacute;as de pruebas unitarias dentro de los procesos de construcci&oacute;n automatizada a los que <strong>Visual Studio Team Foundation Server</strong> da soporte.</li>
<li>&nbsp;Utilizando <strong>Visual Studio Test Professional</strong> los equipos de calidad pueden automatizar la<strong> ejecuci&oacute;n de pruebas funcionales</strong> que comprueban las funcionalidades y las operativas que el software debe ofrecer, siendo posible automatizar dichas pruebas funcionales para as&iacute; reducir los tiempos y los recursos a invertir para ejecutar dichas pruebas.</li>
<li>Con las capacidades de <strong>Visual Studio Ultimate</strong> los equipos de proyecto pueden <strong>definir y ejecutar pruebas de carga y estr&eacute;s en sistemas web</strong> que dar&aacute;n la informaci&oacute;n necesaria para analizar c&oacute;mo se comportar&aacute;n los sistemas cuando sean sometidos a determinados niveles de uso en sus escenarios de operaci&oacute;n finales.</li>
</ul>
<h3>Escenarios de QA con Visual Studio y Azure</h3>
<p>Junto con las posibilidades de QA que ofrece la soluci&oacute;n de <strong>Visual Studio</strong>, gracias a las capacidades que proporcionan <strong>Windows Azure</strong> y <strong>Visual Studio Online</strong> podemos ofrecer a nuestros equipos de desarrollo y a nuestros equipos de calidad un soporte completo que les permita abordar diferentes escenarios o problem&aacute;ticas a la hora de realizar sus tareas.</p>
<p><strong><a title="Visual Studio Online" href="https://www.visualstudio.com/products/visual-studio-online-overview-vs">Visual Studio Online</a></strong> proporciona un <strong>servicio ALM</strong> en la nube que cubre necesidades que van desde la gesti&oacute;n del c&oacute;digo fuente, la gesti&oacute;n del royecto, los procesos de build automatizados, e incluso la codificaci&oacute;n utilizando editores online que permiten a los desarrolladores disponer de un IDE simplificado sin requerir nada m&aacute;s que un acceso a Internet desde sus m&aacute;quinas.</p>
<p><strong><a title="Windows Azure" href="https://www.windowsazure.com/">Windows Azure</a></strong> es la soluci&oacute;n de computaci&oacute;n en la nube de Microsoft y ofrece soluciones de <strong>PaaS</strong> (Platform as a Service), <strong>SaaS</strong> (Software as a Service) e incluso <strong>IaaS</strong> (Infrastructure as a Service).</p>
<p>Combinando las posibilidades de <strong>Visual Studio</strong>, <strong>Visual Studio Online</strong>, <strong>Windows Azure</strong> y los beneficios de las <strong>suscripciones MSDN</strong> de Visual Studio, los equipos de proyecto pueden abordar con total garant&iacute;a los siguientes escenarios:</p>
<h4>Entornos de pruebas en la nube con Azure y MSDN</h4>
<p><img style="float: left; margin-right: 20px;" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/49/44/5516.00914470_Size640.jpg" original-url="https://blogs.msdn.com/resized-image.ashx/__size/250x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-49-44/5516.00914470_5F00_Size640.jpg" alt="" width="250" /></p>
<p>Utilizando el beneficio ofrecido por las <strong>suscripciones MSDN</strong> de <strong>software sin coste para entornos de desarrollo y pruebas</strong> que proporciona a sus usuarios derechos de uso de cualquier software fabricado por Microsoft para ser utilizado en entornos no productivos, y combin&aacute;ndolo con las capacidades de Infraestructura como Servicio (IaaS) de <strong>Windows Azure</strong>, los equipos de proyecto pueden provisionar cualquier entorno de desarrollo o pruebas en la nube de manera que los costes de aprovisionamiento de dichos entornos son considerablemente menores (pueden llegar a suponer una reducci&oacute;n del coste de un 98% frente a entornos licenciados por otras v&iacute;as y que adem&aacute;s se instalen on-premise). Adem&aacute;s de la reducci&oacute;n en los costes, el aprovisionamiento de estos entornos en Windows Azure permite aprovechar la flexibilidad y la agilidad de la nube a la hora proporcionar a los equipos de proyecto sus entornos de desarrollo y pruebas.</p>
<h4>Pruebas de carga utilizando Visual Studio Online</h4>
<p>Habitualmente, la realizaci&oacute;n de pruebas de carga impone a las organizaciones la necesidad de contar con los recursos necesarios (infraestructura de computaci&oacute;n, comunicaciones, etc.) para poder generar la carga necesaria para estresar los entornos que se desean comprobar. Por ello, habitualmente las pruebas de carga requieren una planificaci&oacute;n previa y por tanto no se realizan tan a menudo como pudiera ser necesario. <strong>Visual Studio Online</strong> proporciona a los usuarios del servicio la posibilidad de, apenas con unos cuantos clics, dise&ntilde;ar una prueba de carga, y adicionalmente, hacer que <strong>Visual Studio Online</strong> sea el encargado de ejecutar la misma de manera transparente al usuario. Esto es, ser&aacute; el servicio de <strong>Visual Studio Online</strong> qui&eacute;n se encargue de provisionar, desplegar y poner en juego todos los recursos necesarios para estresar el entorno que el usuario ha dise&ntilde;ado, al tiempo que recopilar&aacute; los resultados y ofrecer&aacute; al final, un informe detallado de los resultados de la prueba. Todo ello, sin que el usuario se haya tenido que preocupar de qu&eacute; recursos han sido necesarios para ello, ni su instalaci&oacute;n, configuraci&oacute;n y ejecuci&oacute;n.&nbsp; Esto permite que las pruebas de carga de los sistemas que se est&aacute;n desarrollando o que se quieran medir puedan realizarse siempre que sean necesarias y sin esfuerzo de planificaci&oacute;n y aprovisionamiento previos.</p>
<h4>Pruebas funcionales utilizando Windows Azure para los laboratorios de pruebas</h4>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/49/44/2376.WIN12_Nick_12.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-49-44/2376.WIN12_5F00_Nick_5F00_12.png"><img style="float: left; margin-right: 20px;" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/49/44/2376.WIN12_Nick_12.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/250x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-49-44/2376.WIN12_5F00_Nick_5F00_12.png" alt="" width="250" /></a></p>
<p><strong>Visual Studio</strong>, gracias a sus procedimientos automatizados de construcci&oacute;n y pruebas, permite que las pruebas funcionales automatizadas que los equipos de calidad han dise&ntilde;ado como parte del plan de pruebas del proyecto sean incluidas como una etapa m&aacute;s del proceso de construcci&oacute;n. De esta manera, los equipos de proyecto pueden establecer controles de calidad autom&aacute;ticos cada vez que se libera una "release" nueva del proyecto.&nbsp;</p>
<p>Evidentemente, la ejecuci&oacute;n de las pruebas funcionales automatizadas, impone que ciertos recursos de infraestructura sean puestos en juego. Hay que poner a disposici&oacute;n de los procesos de construcci&oacute;n automatizada entornos donde desplegar cada "release" as&iacute; como m&aacute;quinas con procesos agentes que ser&aacute;n las encargadas de la ejecuci&oacute;n desatendida de las diferentes pruebas funcionales sobre dichos entornos. Esto, como es habitual, supone un esfuerzo de planificaci&oacute;n y de aprovisionamiento que <strong>Windows Azure</strong> puede ayudar a resolver. Utilizando las capacidades de IaaS de <strong>Windows Azure</strong> los equipos de proyecto pueden disponer de los recursos mencionados anteriormente de una manera sencilla y r&aacute;pida y a un coste mucho menor que si se utilizaran soluciones on-premise.</p>
<h4>&nbsp;Externalizaci&oacute;n de las pruebas de calidad a terceras empresas utilizando TFS en IaaS o Visual Studio Online</h4>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/49/44/6663.STB13_Ken_08.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-49-44/6663.STB13_5F00_Ken_5F00_08.png"><img style="float: left; margin-right: 20px;" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/49/44/6663.STB13_Ken_08.png" original-url="https://blogs.msdn.com/resized-image.ashx/__size/250x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-49-44/6663.STB13_5F00_Ken_5F00_08.png" alt="" height="250" /></a></p>
<p>En proyectos de desarrollo de una magnitud determinada es habitual la participaci&oacute;n de terceras empresas para que realicen las tareas de desarrollo, o se ocupen de la evaluaci&oacute;n de la calidad de los desarrollos realizados, bien por la organizaci&oacute;n que les ha contratado, o bien por terceras partes. Utilizando el soporte de gesti&oacute;n de los desarrollos que proporciona <strong>Team Foundation&nbsp;Server</strong> de manera centralizada se puede poner a disposici&oacute;n de todos los participantes del proyecto un soporte com&uacute;n y centralizado que gobierne los diferentes aspectos del proyecto de desarrollo.</p>
<p>Si nos centramos en los aspectos de QA del proyecto, configurando <strong>TFS</strong> en <strong>Windows Azure</strong> (IaaS) o utilizando su contrapartida como servicio, como es <strong>Visual Studio Online</strong>, podemos ofrecer a las empresas encargadas de supervisar la calidad de las diferentes entregas del proyecto, un entorno y un soporte ALM accesible desde cualquier lugar, controlado por la organizaci&oacute;n que les contrata y de una manera &aacute;gil y flexible. De esa manera, ninguno de los proveedores del proyecto tendr&aacute; que preocuparse de configurar entornos de pruebas y podr&aacute; utilizar los proporcionados por el due&ntilde;o del proyecto final, al tiempo que todos contar&aacute;n con un sistema ALM centralizado donde se ir&aacute;n almacenando toda la informaci&oacute;n de los planes de QA a lo largo de la vida del proyecto.</p>
<h3>Conclusiones</h3>
<p>Como se ha podido ver, aunando las capacidades de gesti&oacute;n de los desarrollos y de aseguramiento de la calidad proporcionadas por la gama de productos de <strong>Visual Studio</strong>, junto con los beneficios de las <strong>suscripciones MSDN</strong> y los beneficios aportados por <strong>Windows Azure</strong>, las actividades de aseguramiento de la calidad de los desarrollos software pueden realizarse de una manera organizada y eficiente, reduciendo los costes de los recursos requeridos al tiempo que los plazos de proyecto no se ver&aacute;n afectados por falta de agilidad en los procesos de aprovisionamiento de los mismos.</p>]]></content:encoded>
    </item>
    <item>
      <title>Ventajas del dimensionamiento de entornos de pruebas con MSDN</title>
      <link>https://docs.microsoft.com/archive/blogs/jgomezl/ventajas-del-dimensionamiento-de-entornos-de-pruebas-con-msdn</link>
      <pubDate>Tue, 10 Sep 2013 01:25:00 GMT</pubDate>
      <dc:creator><![CDATA[Javier G. Lozano]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/jgomezl/2013/09/10/ventajas-del-dimensionamiento-de-entornos-de-pruebas-con-msdn/</guid>
      <description><![CDATA[En las organizaciones actuales, cada d&iacute;a es m&aacute;s importante garantizar la calidad,...]]></description>
      <content:encoded><![CDATA[<p><span style="font-size: small;">En las organizaciones actuales, cada d&iacute;a es m&aacute;s importante garantizar la calidad, tanto t&eacute;cnica como funcional, de los proyectos de desarrollo para poder maximizar el aporte de valor a los objetivos de negocio. </span><span style="font-size: small;">Por ello, una parte fundamental de esta garant&iacute;a es dotar a los equipos de proyecto de los entornos de pruebas e integraci&oacute;n adecuados, de manera que puedan utilizarlos como infraestructura de sus planes de pruebas, lo cual proporciona numerosas ventajas no solo a los desarrolladores y a los equipos de TI, sino al negocio en su totalidad. Pero para ello es imprescindible que cumplan con una serie de caracter&iacute;sticas fundamentales que en no pocas ocasiones, por obvias, se menosprecian:</span></p>
<h3><span style="font-size: small;">Disponibilidad</span></h3>
<p><span style="font-size: small;">Los entornos de pruebas deben estar disponibles en todo momento para que los equipos de proyecto no tengan retrasos en sus planes por falta de la infraestructura de pruebas necesaria. Que un equipo de proyecto no pueda realizar parte de su trabajo porque no tiene disponible el entorno de pruebas necesario en un momento determinado, provoca una p&eacute;rdida de recursos y de tiempo preciosos y valiosos, sobre todo en los tiempos que corren.</span></p>
<h3><span style="font-size: small;">Flexibilidad</span></h3>
<p><span style="font-size: small;">Un entorno de pruebas debe adaptarse a las necesidades del equipo de proyecto, y no al rev&eacute;s. Un plan de pruebas efectivo debe contar con el mejor entorno de pruebas para &eacute;l. Los planes de pruebas var&iacute;an sus necesidades a lo largo de la vida del proyecto, y por tanto, los entornos necesarios para su ejecuci&oacute;n deben poder adaptarse de la mejor manera.</span></p>
<h3><span style="font-size: small;">Gesti&oacute;n y supervisi&oacute;n</span></h3>
<p><span style="font-size: small;">En ocasiones, los gestores de TI consideran los entornos de pruebas e integraci&oacute;n como infraestructura "no gestionada" puesto que no est&aacute;n ligados directamente a la producci&oacute;n del d&iacute;a a d&iacute;a. Es obvio que esto supone un gran error. <strong>Los entornos de pruebas son entornos productivos</strong> puesto que son los entornos que utilizan los equipos de proyecto para realizar su labor. Por tanto, dichos entornos tienen que estar correctamente configurados, actualizados y deben ser entornos gestionados para que los equipos de proyecto puedan maximizar su eficacia y productividad.</span></p>
<h3><span style="font-size: small;">Entornos de pruebas con Visual Studio</span></h3>
<p><span style="font-size: small;">Dentro de la oferta que Microsoft Visual Studio provee es posible ofrecer entornos permanentes de pruebas e integraci&oacute;n a los equipos de proyecto sin precisar desembolsos adicionales. Dentro de los m&uacute;ltiples beneficios de las suscripciones MSDN, los clientes pueden disponer de cualquier software fabricado por Microsoft, para instalar y administrar cualquier n&uacute;mero de entornos de pruebas e integraci&oacute;n sin coste adicional. Para poder disfrutar de este beneficio, &uacute;nicamente es necesario que todo el personal t&eacute;cnico que utilice o administre dichos entornos tenga asignada una suscripci&oacute;n MSDN (una por cada persona). Esta opci&oacute;n de licenciamiento tiene grandes ventajas en coste frente al licenciamiento tradicional de los entornos de pruebas con licencias productivas tradicionales.</span></p>
<p><span style="font-size: small;">De manera adicional, la utilizaci&oacute;n de los beneficios de las suscripciones MSDN para entornos de pruebas proporciona a los equipos de TI la posibilidad de ofrecer entornos con una continuidad pr&aacute;cticamente ilimitada, frente a otras opciones como puede ser utilizar versiones de prueba de 90 d&iacute;as del software. Es importante recordar que las versiones de "trial" otorgan &uacute;nicamente derechos de evaluaci&oacute;n del software durante 3 meses, pasados los cuales, los entornos que utilicen dicho software dejar&iacute;an de estar disponibles y deber&iacute;an ser desinstalados.</span></p>
<p><span style="font-size: small;">En resumen, utilizando los beneficios de las suscripciones MSDN los equipos de TI pueden ofrecer entornos de pruebas e integraci&oacute;n que se adapten a las necesidades de los proyectos de desarrollo con un coste realmente competitivo frente a otras opciones de licenciamiento. Si se desea m&aacute;s informaci&oacute;n sobre este tema se pueden consultar los beneficios de las suscripciones MSDN en el siguiente enlace </span><a href="https://msdn.microsoft.com/es-es/subscriptions/buy.aspx"><span style="color: #0563c1; font-size: small;">https://msdn.microsoft.com/es-es/subscriptions/buy.aspx</span></a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>Mejora del rendimiento de las aplicaciones de negocio</title>
      <link>https://docs.microsoft.com/archive/blogs/jgomezl/mejora-del-rendimiento-de-las-aplicaciones-de-negocio</link>
      <pubDate>Thu, 11 Jul 2013 04:42:00 GMT</pubDate>
      <dc:creator><![CDATA[Javier G. Lozano]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/jgomezl/2013/07/11/mejora-del-rendimiento-de-las-aplicaciones-de-negocio/</guid>
      <description><![CDATA[Vivimos en un mundo en permanente funcionamiento. Ya no se nos hace raro ir de compras cualquier...]]></description>
      <content:encoded><![CDATA[<p><span style="font-size: small;">Vivimos en un mundo en permanente funcionamiento. Ya no se nos hace raro ir de compras cualquier d&iacute;a de la semana a cualquier hora o tener que realizar alguna actividad laborar en cualquier momento. Las fronteras temporales que delimitan nuestra vida profesional y nuestra vida personal son cada d&iacute;a m&aacute;s difusas. </span></p>
<p><span style="font-size: small;">Por ello, todos necesitamos acceso a servicios que nos permiten realizar esas actividades y, adem&aacute;s, todos demandamos que esos servicios est&eacute;n disponibles a cualquier hora, al tiempo que exigimos que la interacci&oacute;n con ellos sea fluida y r&aacute;pida, especialmente - si estos servicios son &ldquo;online&rdquo; -.</span></p>
<h3><strong><span style="font-size: small;">&iquest;Jugar&iacute;a con la imagen p&uacute;blica de su empresa?</span></strong></h3>
<p><span style="font-size: small;">Pong&aacute;monos en la situaci&oacute;n de uno de sus clientes. Quiere acceder al servicio o aplicativo que le proporciona su empresa y se encuentra con que no est&aacute; disponible por una incidencia t&eacute;cnica. Ese cliente es, en primer lugar, una transacci&oacute;n comercial perdida; pero adem&aacute;s, es un cliente que ha sufrido una impresi&oacute;n negativa de los servicios ofrecidos por su empresa. En el mejor de los casos, su decepci&oacute;n ser&aacute; pasajera. Ser&aacute; una decepci&oacute;n que, aunque sea superada, no ser&aacute; olvidada. Imagine cu&aacute;l ser&aacute; el efecto de que ese cliente sufra una serie de decepciones similares. Pasar&aacute; a ser un cliente perdido. Suponga ahora que esa incidencia t&eacute;cnica en su servicio afect&oacute; a miles de usuarios en un corto periodo de tiempo. Aparte de las miles de transacciones perdidas, y de las miles de decepciones individuales sobre el servicio de su empresa, a&ntilde;ada ahora que algunos de esos clientes decepcionados expresan su decepci&oacute;n en los medios de comunicaci&oacute;n que todos tenemos disponibles hoy en d&iacute;a. A esos miles de clientes perdidos, debemos sumar ahora los cientos de miles que posiblemente tendr&aacute;n conocimiento del incidente, y que cuando quieran acceder a un servicio como el que su empresa ofrece, recordar&aacute;n lo que ocurri&oacute; y optar&aacute;n por irse a un competidor nuestro. &iquest;Podr&iacute;amos cuantificar cu&aacute;nto negocio hemos perdido por una indisponibilidad temporal de nuestra tienda online, por ejemplo? Seguro que podr&iacute;amos hacer un buen intento de aproximaci&oacute;n. Pero a&ntilde;adamos a la ecuaci&oacute;n el efecto que est&aacute; teniendo esto sobre nuestra imagen de compa&ntilde;&iacute;a. &iquest;Ser&iacute;amos capaces de cuantificar c&oacute;mo ha afectado el incidente a nuestra imagen de marca? O, yendo un poco m&aacute;s all&aacute;, &iquest;estar&iacute;amos dispuestos a que esto ocurriese de nuevo en un futuro cercano? &iquest;Querr&iacute;a usted. como representante de su organizaci&oacute;n, tener que dar explicaciones a sus superiores, a sus accionistas o a uno de esos clientes decepcionados?</span></p>
<p><span style="font-size: small;">Este escenario, es un escenario que muchos conocemos, pero que asumimos como factible (est&aacute; claro, somos humanos). Es m&aacute;s, incluso cuando esto ocurre, muchas organizaciones no le dan la importancia que realmente tiene.</span></p>
<h3><strong><span style="font-size: small;">&iquest;Jugar&iacute;a con el &aacute;nimo de la plantilla de su empresa?</span></strong></h3>
<p><span style="font-size: small;">En el escenario anterior hemos puesto en juego solo factores externos a su organizaci&oacute;n. Podemos pensar que teniendo perfectamente controlados y gestionados nuestros &ldquo;escaparates al exterior&rdquo; estaremos tranquilos. </span><span style="font-size: small;">Imaginemos de nuevo. Un empleado de su organizaci&oacute;n, va a introducir un pedido en su sistema de gesti&oacute;n de pedidos. Para ello, recoge la informaci&oacute;n de un formulario y con ella, rellena una serie de pantallas dentro de la aplicaci&oacute;n. Cada pantalla le toma un par de minutos, y adem&aacute;s, el proceso, le supone pasar por varias pantallas de informaci&oacute;n, al tiempo que tiene que recuperar informaci&oacute;n adicional, por ejemplo la direcci&oacute;n de env&iacute;o del cliente de otro aplicativo distinto. En el mejor de los casos, ese proceso le toma unos 15 minutos, pero hoy, en plena campa&ntilde;a de compras de Navidad, el sistema de gesti&oacute;n de pedidos est&aacute; funcionando m&aacute;s lentamente, y ese proceso le est&aacute; dando problemas al empleado del departamento de pedidos. La aplicaci&oacute;n responde con lentitud y el cambio entre pantallas es desesperante. O peor todav&iacute;a, cuando el empleado tiene medio pedido introducido, el sistema da un error por saturaci&oacute;n de la base de datos, y el pedido queda en un estado inconsistente, obligando al empleado a tener que borrar todo lo que hizo, y a empezar de nuevo. Su productividad cae dram&aacute;ticamente, y en el tiempo que habitualmente procesaba 30 pedidos, ahora solo consigue procesar 10. Tenemos 20 pedidos que se procesar&aacute;n con retraso, que ser&aacute;n servidos a los clientes con retraso y que posiblemente har&aacute;n caer la cifra de ventas de nuestra empresa en esta campa&ntilde;a. A todo esto, adem&aacute;s, debemos a&ntilde;adirle que los empleados del departamento de pedidos han sufrido una de las peores campa&ntilde;as de Navidad que recuerdan. Han estado crispados, presionados, frustrados y al final de todo el proceso, desmotivados. Imagine las cr&iacute;ticas que el Director de Ventas de su empresa pondr&aacute; encima de la mesa. Imagine qu&eacute; opinar&aacute; el Director de Marketing del da&ntilde;o que ha causado el incidente a su empresa. Pero tambi&eacute;n, imagine qu&eacute; opini&oacute;n tendr&aacute; toda la compa&ntilde;&iacute;a del trabajo realizado por el responsable del sistema de pedidos. &iquest;Querr&iacute;a estar en su lugar?</span></p>
<p><span style="font-size: small;">El pobre rendimiento de las aplicaciones internas de una organizaci&oacute;n puede tener el mismo impacto, o incluso m&aacute;s, que las aplicaciones que est&aacute;n de cara a los clientes.</span></p>
<h3><strong><span style="font-size: small;">Visual Studio le ayuda a garantizar el rendimiento y la estabilidad de sus aplicaciones</span></strong></h3>
<p><span style="font-size: small;">Microsoft, proporciona, gracias a su soluci&oacute;n de ALM, Visual Studio, un entorno donde las pruebas de rendimiento y de carga se realizan por los miembros del equipo de desarrollo (tanto desarrolladores como testers) dentro de un entorno que les resulta a todos familiar y altamente productivo. No hay necesidad de que las personas involucradas en este tipo de labores, deban aprender un entorno y una serie de herramientas distintas a las que est&aacute;n utilizando en el d&iacute;a a d&iacute;a.</span></p>
<p><span style="font-size: small;">Adem&aacute;s, los tests de rendimiento web son una parte fundamental de las capacidades de testing de Visual Studio 2012. Gracias a estas pruebas se pueden realizar los siguientes tipos de pruebas de rendimiento:</span></p>
<ul>
<li><span style="font-size: small;"><strong>Pruebas de rendimiento</strong>: permiten examinar el comportamiento de un sistema web ante determinadas cargas de peticiones/usuarios que var&iacute;an radicalmente en el tiempo. De esta manera se podr&aacute; verificar que la aplicaci&oacute;n o el sistema se comportan adecuadamente liberando recursos y gestionando avalanchas de peticiones.</span></li>
<li><span style="font-size: small;"><strong>Pruebas de estabilidad</strong>: stas pruebas permiten verificar el comportamiento del sistema frente a una carga de peticiones sostenida en el tiempo. Son la herramienta m&aacute;s &uacute;til para comprobar el dimensionamiento te&oacute;rico del sistema.</span></li>
<li><span style="font-size: small;"><strong>Pruebas de stress</strong>: permiten averiguar la carga m&aacute;xima de transacciones que podr&iacute;a soportar la aplicaci&oacute;n o el sistema, y de esta manera dimensionarlo. Tambi&eacute;n permiten ser utilizadas para detectar cuellos de botella en posibles situaciones cr&iacute;ticas de funcionamiento.</span></li>
</ul>
<p><span style="font-size: small;">Los tests de rendimiento son una herramienta &uacute;til pero carecer&iacute;an de utilidad si no se pudieran analizar los datos obtenidos. Con Visual Studio Load Test Analyzer se puede analizar de manera gr&aacute;fica las incidencias en el rendimiento de la aplicaci&oacute;n con la actividad y las condiciones operativas de los niveles f&iacute;sicos (o servidores) de la misma.&nbsp; Incluso se puede realizar comparaciones y an&aacute;lisis hist&oacute;ricos durante la vida de la aplicaci&oacute;n puesto que toda la informaci&oacute;n de las pruebas queda almacenada en la base de datos de pruebas de Team Foundation Server.</span></p>
<p><span style="font-size: small;">Todos estos recursos disponibles durante el desarrollo de la aplicaci&oacute;n permitir&aacute;n que nuestros desarrollos puedan aprovechar todo el rendimiento y las capacidades de escalabilidad que la Plataforma de Aplicaciones de Microsoft puede proveer. </span></p>
<h3><strong><span style="font-size: small;">Conclusiones</span></strong></h3>
<p><span style="font-size: small;">El rendimiento de nuestras aplicaciones de negocio es un aspecto vital para la marcha de la empresa, de manera independiente de que estas aplicaciones est&eacute;n o no de cara a nuestros clientes o usuarios finales. Un pobre rendimiento de las mismas puede tener efectos insospechados que pueden ir m&aacute;s all&aacute; de las obvias cifras de negocio. En definitiva, el rendimiento y estabilidad de las aplicaciones no es algo que se deba dejar al azar. Es un aspecto tan vital como el resto de cuestiones relativas a la calidad y por tanto merece dedicar recursos y tiempo a garantizarlo.</span></p>
<p><span style="font-size: small;">Visual Studio, dentro de su plataforma ALM, permite disponer de las herramientas id&oacute;neas para garantizar el rendimiento y la estabilidad de sus aplicaciones, soportadas por un proceso de gesti&oacute;n del ciclo de vida de extremo a extremo, e integradas de manera sencilla e intuitiva dentro de los entornos de trabajo de los diferentes perfiles involucrados dentro del proyecto.</span></p>]]></content:encoded>
    </item>
    <item>
      <title>Visual Studio para equipos de desarrollo heterogéneo</title>
      <link>https://docs.microsoft.com/archive/blogs/jgomezl/visual-studio-para-equipos-de-desarrollo-heterogneo</link>
      <pubDate>Mon, 04 Mar 2013 02:21:00 GMT</pubDate>
      <dc:creator><![CDATA[Javier G. Lozano]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/jgomezl/2013/03/04/visual-studio-para-equipos-de-desarrollo-heterogneo/</guid>
      <description><![CDATA[Bajo este sugerente t&iacute;tulo se esconde una realidad recurrente, especialmente para las grandes...]]></description>
      <content:encoded><![CDATA[<p><span style="font-size: small;">Bajo este sugerente t&iacute;tulo se esconde una realidad recurrente, especialmente para las grandes empresas de &aacute;mbito global: c&oacute;mo gestionar proyectos o equipos de desarrollo heterog&eacute;neos o plataformas tecnol&oacute;gicas diversas sin problemas y con los mejores resultados tanto tecnol&oacute;gicamente hablando como desde un punto de vista de negocio. &iquest;La respuesta? <strong>ALM de Visual Studio.</strong></span></p>
<p><span style="font-size: small;">A lo largo de este art&iacute;culo intentaremos profundizar en la problem&aacute;tica que a menudo supone la gesti&oacute;n de proyectos de desarrollo ambiciosos, que incluyen equipos multidisciplinares que utilizan diversas plataformas tecnol&oacute;gicas en su contribuci&oacute;n al proyecto. Tambi&eacute;n razonaremos c&oacute;mo la adopci&oacute;n de una soluci&oacute;n de gesti&oacute;n del ciclo de vida (ALM) puede contribuir a mejorar la productividad de dichos equipos de trabajo, facilitar su gesti&oacute;n e incrementar el valor proporcionado por dichos proyectos y equipos a la organizaci&oacute;n.</span></p>
<h3><strong><span style="font-size: small;">La vida no es sencilla&hellip; pero puede serlo</span></strong></h3>
<p><span style="font-size: small;">Cada vez estamos m&aacute;s inmersos en una actualidad m&aacute;s din&aacute;mica, donde nuestros clientes nos demandan mayor valor a&ntilde;adido, mayor calidad, menores tiempos de entrega y, en general, m&aacute;s y mejor con menos. </span></p>
<p><span style="font-size: small;">En las &uacute;ltimas d&eacute;cadas ha quedado patente que la tecnolog&iacute;a nos ha ayudado tremendamente a cumplir con estos objetivos, pero en contrapartida, en nuestras organizaciones nos encontramos con un panorama tecnol&oacute;gico variado y diverso. Con seguridad tendremos sistemas <em>legacy</em> que han sido mantenidos por cuestiones como la criticidad para la empresa o por cuestiones econ&oacute;micas de inversiones realizadas y pendientes de amortizaci&oacute;n. Tambi&eacute;n habr&aacute; sistemas o plataformas tecnol&oacute;gicas provistas por diferentes proveedores o fabricantes, que est&aacute;n coexistiendo por razones de&nbsp; especializaci&oacute;n en algunos escenarios de negocio o por estrategias de diversificaci&oacute;n dentro de departamentos como IT o Compras. </span></p>
<p><span style="font-size: small;">Si a la visi&oacute;n interna de nuestra organizaci&oacute;n, le sumamos que en el exterior nuestros consumidores o clientes tienen una oferta tecnol&oacute;gica similar, y que adem&aacute;s hacen uso de ella -teniendo a su disposici&oacute;n, por ejemplo, innumerables dispositivos m&oacute;viles desde los que quieren realizar sus compras o utilizar los servicios que nosotros ponemos a su disposici&oacute;n- veremos una dimensi&oacute;n y una magnitud adicionales a esta complejidad. Esas personas externas a la compa&ntilde;&iacute;a, como es l&oacute;gico, seguramente disponen de su propio ecosistema tecnol&oacute;gico, y si queremos mantener nuestras relaciones comerciales, deberemos hacer que nuestra organizaci&oacute;n pueda comunicarse de manera efectiva y &aacute;gil con las suyas -especialmente si contemplamos escenarios <em>business to business.</em></span></p>
<h3><strong><span style="font-size: small;">Combatir los silos tecnol&oacute;gicos </span></strong></h3>
<p><span style="font-size: small;">Toda esta diversidad ha provocado la existencia de equipos especializados dentro de nuestra organizaci&oacute;n y, especialmente, dentro de nuestros equipos de desarrollo e IT. Esto es natural y es consecuencia de dicha especializaci&oacute;n, pero tiene implicaciones poco positivas.</span></p>
<p><span style="font-size: small;">Habitualmente los equipos especializados en una plataforma tecnol&oacute;gica tienden a organizarse de manera aislada al resto, generalmente implantando sus propios procesos metodol&oacute;gicos y utilizando las herramientas de gesti&oacute;n del ciclo de desarrollo que les son m&aacute;s afines. Esto, que a priori puede parecer normal, provoca su "encapsulamiento", haciendo que su informaci&oacute;n de gesti&oacute;n no sea f&aacute;cilmente integrable dentro de un marco organizativo superior. Es decir, para conocer el estado de sus proyectos de desarrollo es necesario acudir a sus silos de informaci&oacute;n de gesti&oacute;n, lo que provoca que para poder agregar esta informaci&oacute;n de gesti&oacute;n sea necesario integrar cada uno de los sistemas de informaci&oacute;n gesti&oacute;n que cada equipo est&eacute; utilizando. Es evidente que esto no es deseable para una organizaci&oacute;n que pretenda tener informaci&oacute;n consolidada y actualizada de sus proyectos de desarrollo.</span></p>
<p><span style="font-size: small;">Por otro lado, cada d&iacute;a m&aacute;s, la diversidad tecnol&oacute;gica que est&aacute; presente en las organizaciones implica que los proyectos de desarrollo de las aplicaciones o servicios estrat&eacute;gicos para el negocio involucran diversos subproyectos de desarrollo sobre diversas plataformas tecnol&oacute;gicas distintas (de nuevo un efecto adverso de la especializaci&oacute;n tecnol&oacute;gica). Pensemos por ejemplo, una aplicaci&oacute;n para la comercializaci&oacute;n de los productos de una empresa, en la cual la informaci&oacute;n de los clientes est&aacute; en un sistema CRM sobre una plataforma tecnol&oacute;gica, el control de inventario est&aacute; sobre un ERP que corre sobre otra plataforma tecnol&oacute;gica y que la aplicaci&oacute;n quiere proporcionar escaparates de venta a los clientes en la web (que puede suponer otra plataforma tecnol&oacute;gica) al tiempo que tambi&eacute;n ser&aacute; accesible desde diversos dispositivos m&oacute;viles. Cada parte del proyecto ser&aacute; realizada por un equipo especializado en su correspondiente tecnolog&iacute;a, pero cada uno de estos equipos deber&aacute; seguir el paso del proyecto total y deber&aacute; ser capaz de suministrar su correspondiente informaci&oacute;n sobre el progreso del proyecto. Si se desea tener un seguimiento unificado del proyecto global, cada equipo deber&aacute; seguir un proceso metodol&oacute;gico com&uacute;n y deber&aacute; reportar el progreso de su trabajo tambi&eacute;n de manera com&uacute;n, lo cual es complicado de conseguir si no se dispone de una plataforma com&uacute;n de gesti&oacute;n del ciclo de vida.</span></p>
<h3><strong><span style="font-size: small;">Microsoft Visual Studio como Plataforma ALM com&uacute;n</span></strong></h3>
<p><span style="font-size: small;">La soluci&oacute;n Microsoft <strong>Visual Studio</strong> permite ofrecer la posibilidad de participar a todos los equipos implicados en un proyecto, independientemente de si &eacute;stos desarrollan en tecnolog&iacute;as Microsoft o utilizan Java o Cobol o PHP. Tambi&eacute;n permite participar a los diversos roles involucrados en el proyecto: equipos de calidad, gestores de proyecto, especialistas funcionales, ingenieros de sistemas, etc.</span></p>
<p><span style="font-size: small;">Mediante <strong>Team Explorer Everywhere</strong> cualquier desarrollador que est&eacute; utilizando un entorno de desarrollo basado en el IDE de Eclipse podr&aacute; integrar sus desarrollos dentro del marco del proceso ALM soportado por <strong>Team Foundation Server</strong>. Tambi&eacute;n existe la posibilidad, mediante soluciones desarrolladas por socios tecnol&oacute;gicos de Microsoft, de dar cobertura a desarrollos sobre plataformas como COBOL, Oracle, PHP, Python, etc.</span></p>
<p><span style="font-size: small;">La informaci&oacute;n de seguimiento y gesti&oacute;n del proyecto estar&aacute; accesible desde Microsoft Office para que, por ejemplo, desde Excel se puedan gestionar los requisitos del proyecto, de manera que los especialistas funcionales puedan utilizar una herramienta que les sea familiar.</span></p>
<p><span style="font-size: small;">Tambi&eacute;n se podr&aacute; acceder mediante un navegador web a la informaci&oacute;n almacenada dentro del portal de proyecto, el cual utiliza el soporte colaborativo y de gesti&oacute;n documental que proporciona Microsoft SharePoint.</span></p>
<p><span style="font-size: small;">Incluso es posible integrar la informaci&oacute;n de seguimiento y control del proyecto dentro de un sistema de gesti&oacute;n empresarial de proyectos (EPM) soportada por Microsoft Project Server.</span></p>
<p><span style="font-size: small;">Adem&aacute;s, dado que Microsoft Team Foundation Server (TFS), utiliza los servicios de SQL Server para gestionar toda su informaci&oacute;n, ser&aacute; posible, explotar toda esa informaci&oacute;n utilizando los servicios Microsoft SQL Server como Reporting Services o Analysis Services.</span></p>
<p><span style="font-size: small;">Puede haber casos en los que, aunque el ecosistema de Visual Studio es amplio y con una oferta importante de herramientas integradas con el ALM de Visual Studio, exista la necesidad de dise&ntilde;ar y construir una integraci&oacute;n con herramientas y sistemas propietarios de la organizaci&oacute;n. En ese caso contamos con los siguientes recursos ofrecidos por Team Foundation Server:</span></p>
<ul>
<li><span style="font-size: small;">Team Foundation Server ofrece una plataforma de integraci&oacute;n que permite desarrollar conectores de manera sencilla y efectiva. Muchas de las soluciones ofrecidas por terceros, que hemos comentado, se han construido utlizando esta plataforma de integraci&oacute;n.</span></li>
<li><span style="font-size: small;">Team Foundation Server dispone de una serie de API&rsquo;s, accesibles desde diversas plataformas como .NET o Java, que son p&uacute;blicos y est&aacute;n documentados de manera exhaustiva, permitiendo realizar integraciones ad-hoc incluso a bajo nivel.</span></li>
<li><span style="font-size: small;">El modelo de <em>datawarehouse</em> sobre el que se apoya Team Foundation Server es abierto y se puede acceder a &eacute;l para generar cualquier tipo de informe o perspectiva de informaci&oacute;n que sea necesaria en la organizaci&oacute;n. Por ejemplo, es sencillo crear un informe que nos muestre qu&eacute; c&oacute;digo fuente ha sido el que hist&oacute;ricamente ha sido m&aacute;s proclive a generar defectos <em>(bugs</em>) y por tanto ser&iacute;a un buen candidato a ser refactorizado. Esto es sencillo puesto que el cubo OLAP sobre el que se apoya TFS provee un enlace entre el c&oacute;digo y los elementos de trabajo.</span></li>
</ul>
<h3><strong><span style="font-size: small;">ALM de Visual Studio elimina los silos de desarrollo</span></strong></h3>
<p><span style="font-size: small;">Es un hecho conocido que en la actualidad, especialmente dentro de las grandes organizaciones, aunque no &uacute;nicamente en ellas, existe una diversidad de plataformas tecnol&oacute;gicas que deben colaborar para conseguir los objetivos empresariales. Dichas plataformas tecnol&oacute;gicas y los sistemas de informaci&oacute;n, o aplicaciones empresariales que funcionan sobre ellas, requieren de proyectos de desarrollo que permitan explotar todas sus capacidades, de manera que se integren o se adapten a las necesidades de la organizaci&oacute;n. </span></p>
<p><span style="font-size: small;">Estos proyectos de desarrollo, y los equipos que los acometen, debido a su consecuente especializaci&oacute;n (tecnol&oacute;gica), tienden a funcionar como departamentos estancos, dentro de los cuales la informaci&oacute;n de gesti&oacute;n de los proyectos puede fluir en mayor o menor grado, pero cuando la organizaci&oacute;n quiere hacer una consolidaci&oacute;n del progreso de los diversos proyectos realizados en esos silos de desarrollo o desea hacer que varios equipos especializados colaboren bajo un mismo marco de trabajo, es necesario romper esas barreras dotando a dichos equipos de un soporte metodol&oacute;gico com&uacute;n, que se integre de manera sencilla con sus diferentes herramientas habituales de trabajo, y que adem&aacute;s permita consolidar la informaci&oacute;n de los diferentes actores dentro del proyecto independientemente de cual sea su especializaci&oacute;n.</span></p>
<p><span style="font-size: small;">La soluci&oacute;n de gesti&oacute;n del ciclo de vida (ALM) que ofrece Microsoft Visual Studio permite eliminar los silos de desarrollo, proporcionando un proceso de gesti&oacute;n de los proyectos de desarrollo com&uacute;n a todos los equipos, independientemente de que desarrollen en plataformas tecnol&oacute;gicas -como .NET, Java, COBOL, etc.-, y sea cual sea la plataforma que d&eacute; soporte sus puestos de trabajo -Windows, Linux, Unix, OS X-. Adem&aacute;s, Microsoft Visual Studio permite implantar en esos equipos diversos un proceso com&uacute;n que haga que todos ellos trabajen de la misma forma, y adem&aacute;s proporcionando una informaci&oacute;n de gesti&oacute;n homog&eacute;nea, que permitir&aacute; contemplar bajo el mismo cristal el trabajo realizado.</span></p>
<p><span style="font-size: small;">En conclusi&oacute;n: <strong>Microsoft Visual Studio es la mejor soluci&oacute;n para proporcionar una gesti&oacute;n de ciclo de vida del desarrollo en equipos heterog&eacute;neos.</strong></span></p>]]></content:encoded>
    </item>
    <item>
      <title>Visual Studio y ALM como proceso crítico de negocio</title>
      <link>https://docs.microsoft.com/archive/blogs/jgomezl/visual-studio-y-alm-como-proceso-crtico-de-negocio</link>
      <pubDate>Tue, 05 Feb 2013 08:17:00 GMT</pubDate>
      <dc:creator><![CDATA[Javier G. Lozano]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/jgomezl/2013/02/05/visual-studio-y-alm-como-proceso-crtico-de-negocio/</guid>
      <description><![CDATA[El desarrollo de proyectos software es una de las labores o profesiones m&aacute;s atractivas de la...]]></description>
      <content:encoded><![CDATA[<p>El desarrollo de proyectos software es una de las labores o profesiones m&aacute;s atractivas de la actualidad. Nunca antes, desarrollar software en cualquiera de sus variantes (desarrollo web, aplicaciones tradicionales, movilidad, etc.) ha contado con tantas herramientas, metodolog&iacute;as e informaci&oacute;n como ahora.</p>
<p>Todo lo que nos rodea est&aacute; relacionado con uno o varios componentes software: Nuestro m&oacute;vil, el port&aacute;til o el PC del puesto de trabajo, los aparatos que utilizamos para nuestro ocio diario (consolas, reproductores de v&iacute;deo o m&uacute;sica, etc.). Todo ello, en alg&uacute;n momento, depende de aplicaciones o servicios construidos gracias al software.</p>
<p>Pero, tambi&eacute;n es curioso c&oacute;mo ante esta &eacute;poca dorada del software, con sus grandes avances y su espl&eacute;ndido horizonte, algunas cuestiones siguen ancladas en el pasado. Una de ellas es, por ejemplo, c&oacute;mo se sigue contemplando el desarrollo software como una artesan&iacute;a o en el mejor de los casos como una maestr&iacute;a. Y a menudo son personas con un tremendo bagaje t&eacute;cnico las que siguen viendo as&iacute; las cosas. Cu&aacute;ntas veces hemos hablado con responsables de equipos de desarrollo o con directivos de departamentos de I+D+i, que siguen creyendo que el desarrollo del software que su organizaci&oacute;n precisa para funcionar y competir en el entorno actual es un conjunto de tareas desempe&ntilde;adas por equipos que suponen empresarialmente un mero coste y no una inversi&oacute;n. Que esos equipos de desarrollo no precisan organizaci&oacute;n, ni herramientas, ni procesos porque son perfiles creativos y no t&eacute;cnicos. Que la inversi&oacute;n en herramientas y procesos para gestionar el desarrollo software no tiene una raz&oacute;n clara para ser tenida en cuenta dentro de sus planes t&aacute;cticos o estrat&eacute;gicos. Llegando incluso m&aacute;s lejos, que las herramientas con las que esos equipos efect&uacute;an su labor son commodities y que da lo mismo una que otra, si total desarrollar software es un proceso de escribir c&oacute;digo, y eso se puede hacer incluso con editores de texto plano como VI o Emacs se puede hacer.</p>
<p>En parte, esta visi&oacute;n que a muchos parecer&iacute;a de otras d&eacute;cadas, est&aacute; causada por c&oacute;mo se posiciona todo lo relativo al desarrollo software. Es decir, desde de un punto de vista de marketing de producto, la oferta se centra excesivamente en las caracter&iacute;sticas del producto: "Equipe a sus equipos de desarrollo con la soluci&oacute;n X porque podr&aacute;n utilizar la caracter&iacute;stica Y, la Z o la W". En la actualidad esos productos se ofertan comunicando a los potenciales compradores los beneficios que supondr&aacute;n para ellos en cuestiones como fiabilidad, seguridad, comodidad, etc. Incluso, &uacute;ltimamente lo que se intenta es asociar esos productos con sensaciones o sentimientos que puedan resultar atractivos a los usuarios (por ejemplo las campa&ntilde;as de marketing de BMW de los &uacute;ltimos a&ntilde;os).</p>
<h2>Visual Studio: cerca de las necesidades del cliente</h2>
<p>Pensando sobre todo esto, surgi&oacute; la idea de intentar posicionar el desarrollo software y las herramientas de desarrollo de Visual Studio de una manera similar, para de esta manera intentar comunicar o posicionar mejor la oferta de esos productos. Vaya por delante que no pretendemos ofertar Visual Studio a nuestros potenciales compradores con aquello de: "&iquest;Te gusta desarrollar?" que dec&iacute;an los spots de BMW, pero s&iacute; que intentamos salir de la mera oferta t&eacute;cnica o centrada en las caracter&iacute;sticas del producto o la soluci&oacute;n, para ampliar el enfoque y hacer ver a nuestros potenciales compradores que la compra de soluciones de ALM deb&iacute;a estar fundamentada por cuestiones que resultar&iacute;an m&aacute;s cercanas a sus necesidades o problem&aacute;ticas.</p>
<p>Posicionar una soluci&oacute;n ALM como Visual Studio centr&aacute;ndonos en las caracter&iacute;sticas no es tan efectivo como posicionarla indic&aacute;ndole a los potenciales clientes c&oacute;mo con ella podr&iacute;an solucionar problemas como la productividad de sus equipos de desarrollo, o el nivel de gesti&oacute;n y seguimiento que podr&iacute;an tener sus proyectos, o c&oacute;mo la calidad de sus aplicaciones, y por ende la satisfacci&oacute;n de sus usuarios, aumentar&iacute;a.</p>
<p>Estas problem&aacute;ticas o situaciones a las que nuestros clientes se enfrentan a diario, es lo que nosotros planteamos como escenarios ALM, es decir, situaciones comunes y recurrentes en buena parte de nuestros clientes, como la gesti&oacute;n de proyectos o equipos de desarrollo heterog&eacute;neo o multiplataforma, la gesti&oacute;n de equipos o proyectos de desarrollo con equipos geogr&aacute;ficamente dispersos, el aseguramiento de la calidad en los desarrollos, entre otros, que&nbsp; gracias a las soluciones de desarrollo de Visual Studio podr&iacute;an solventarse o mejorarse.</p>
<p>Uno de esos escenarios, y probablemente, uno de los m&aacute;s importantes es <strong>ALM como proceso cr&iacute;tico de negocio</strong>. Pero, &iquest;por qu&eacute; el ALM es un proceso cr&iacute;tico de negocio?</p>
<p>Hoy en d&iacute;a, es un hecho aceptado que una empresa debe estructurar su funcionamiento sobre un conjunto de procesos de negocio que son los que har&aacute;n latir su coraz&oacute;n. Si partimos de la definici&oacute;n del concepto &ldquo;proceso de negocio" como: conjunto de tareas relacionadas, l&oacute;gicamente llevadas a cabo para obtener un resultado de negocio definido, podemos inferir entonces cu&aacute;les ser&aacute;n sus principales caracter&iacute;sticas:</p>
<ol>
<li>Deben ser medibles y estar orientadas al rendimiento.</li>
<li>Deber&aacute;n producir resultados espec&iacute;ficos.</li>
<li>Aportar&aacute;n valor a los clientes de la organizaci&oacute;n o a los promotores.</li>
<li>Responder&aacute;n a alguna acci&oacute;n o evento determinado.</li>
<li>Las actividades que los componen deber&aacute;n agregar valor a los elementos de entrada al proceso.</li>
</ol>
<p>Como vemos, los procesos de negocio buscan ante todo producir beneficios concretos, predecibles y de la mejor manera posible. Por ello es tan importante para una organizaci&oacute;n que desea mejorar su rendimiento, mejorar sus procesos de negocio, haci&eacute;ndolos repetibles, eficientes y eficaces.</p>
<p>Para que un proceso de negocio ayude a contribuir al &eacute;xito empresarial se requiere, ante todo, que dicho proceso est&eacute; definido correctamente, y una vez definido, que sea implantado y adoptado por la organizaci&oacute;n en el menor tiempo posible y con el menor esfuerzo. Imaginemos un proceso de negocio innovador pero que no llega a todos los niveles de la empresa implicados, y que adem&aacute;s el coste de implantaci&oacute;n del mismo es desorbitado. Claramente, dicho proceso de negocio, que podr&iacute;a hacer m&aacute;s competitiva a una organizaci&oacute;n, estar&iacute;a abocado al fracaso.</p>
<p>Es aqu&iacute; donde los sistemas software pueden ayudar a que dicha implantaci&oacute;n sea exitosa. Como se puede leer en el art&iacute;culo de David Chappell (<a href="https://www.davidchappell.com/writing/white_papers/ALM_as_a_Business_Process_v2.0--Chappell.pdf">https://www.davidchappell.com/writing/white_papers/ALM_as_a_Business_Process_v2.0--Chappell.pdf</a>), en 2008 la publicaci&oacute;n Harvard Review, public&oacute; un art&iacute;culo escrito por Andrew McAfee y Erick Brynjolfsson, en el que se indicaba que gracias a la facilidad con que un sistema software puede ser desplegado completamente dentro de una organizaci&oacute;n, y como un proceso soportado por un sistema software puede tener garant&iacute;as de que es debidamente utilizado y seguido por los miembros de la organizaci&oacute;n, los procesos de negocio soportados por sistemas software ser&aacute;n m&aacute;s f&aacute;cilmente implantables y m&aacute;s f&aacute;cilmente medibles, optimizables y repetibles.</p>
<p>Hasta aqu&iacute;, podemos ver c&oacute;mo los sistemas software o las aplicaciones de l&iacute;nea de negocio ayudan a soportar los procesos de negocio de nuestra organizaci&oacute;n.</p>
<h2>Procesos de negocio diferenciales</h2>
<p>Ahora bien, puesto que los procesos de negocio ser&aacute;n los que hagan que nuestra organizaci&oacute;n funcione adecuadamente, &iquest;c&oacute;mo pueden hacer esos procesos de negocio que seamos m&aacute;s competitivos? Evidentemente, si se desea que nuestra empresa sea competitiva, sus procesos de negocio deber&aacute;n ser diferenciales respecto a los de nuestra competencia y proporcionar una ventaja competitiva siendo modificables y adaptables a las necesidades de nuestra organizaci&oacute;n y de su entorno. Y es, por tanto, el desarrollo software una pieza vital para el funcionamiento de nuestra organizaci&oacute;n. En conclusi&oacute;n, el proceso de desarrollo software dentro de nuestra organizaci&oacute;n pasa a ser tambi&eacute;n por s&iacute; mismo un proceso cr&iacute;tico de nuestro negocio.</p>
<h2>&iquest;Por qu&eacute; ALM con Microsoft Visual Studio?</h2>
<p>Hasta este punto, hemos visto por qu&eacute; tenemos que dotar a nuestro proceso de gesti&oacute;n del ciclo de vida del desarrollo (ALM) de la importancia que realmente tiene. Y si el proceso ALM es vital para nuestro negocio, hemos de&nbsp; contemplarlo de la misma manera que otros procesos de negocio, es decir, debemos pedirle que sea definido, medible, optimizable y repetible.</p>
<p>La soluci&oacute;n ALM ofrecida por Visual Studio permite contemplar el proceso del desarrollo de los sistemas software de una manera completa, de extremo a extremo, dotando a los participantes de un conjunto adecuado de herramientas en funci&oacute;n de su rol, y con las que est&eacute;n familiarizados, reduciendo la curva de aprendizaje y permiti&eacute;ndoles ser m&aacute;s productivos, reduciendo el lastre de las tareas burocr&aacute;ticas y eliminando el sobrecoste que supone el cambio de contexto de una tarea a otra en sus asignaciones de trabajo.</p>
<p>Igualmente, Visual Studio permite dar soporte a cualquier proceso ALM independientemente de su trasfondo metodol&oacute;gico. Las plantillas de proceso que Microsoft Visual Studio Team Foundation Server ofrece son variadas (desde CMMi hasta Agile o Scrum) y adem&aacute;s dichas plantillas de proceso pueden ser modificadas y adaptadas a las necesidades concretas de la organizaci&oacute;n. Incluso es posible dise&ntilde;ar y construir una plantilla de proceso desde cero con las herramientas incluidas dentro de Visual Studio. Por tanto, podemos hacer nuestro proceso de negocio ALM todo lo diferencial que nuestra organizaci&oacute;n precise en cada momento y en cada proyecto.</p>
<p>Tambi&eacute;n, la necesidad de adaptar los procesos de desarrollo a las necesidades cambiantes del negocio&nbsp; y la preocupaci&oacute;n por la generaci&oacute;n de valor en los proyectos software han hecho, en los &uacute;ltimos a&ntilde;os, que las metodolog&iacute;as denominadas &ldquo;&aacute;giles&rdquo; est&eacute;n teniendo gran seguimiento.</p>
<p>En el an&aacute;lisis realizado por Forrester/Dr.Dobb&rsquo;s, ya en 2009, se indicaba que a nivel mundial, el 35% de los proyectos software est&aacute;n siendo guiados por metodolog&iacute;as &aacute;giles, siendo la primera posici&oacute;n del ranking. Como curiosidad, la segunda posici&oacute;n, con un 30,6% son proyectos que no siguen ning&uacute;n tipo espec&iacute;fico de proceso o metodolog&iacute;a, y luego estar&iacute;an el resto de tipos de proceso como los modelos iterativos (RUP, Spiral) y por &uacute;ltimo los modelos en cascada (CMMI, ISO9000, etc.). La cuesti&oacute;n es que los equipos de desarrollo &aacute;giles no se integran muy bien tal cual con los modelos de gesti&oacute;n y seguimiento de proyectos actuales.</p>
<p>Visual Studio permite, mediante su integraci&oacute;n out-of-the-box con Microsoft Project server, que los equipos &aacute;giles puedan seguir sus procesos y que, al mismo tiempo y sin necesidad de esfuerzo adicional, nuestra Oficina de Gesti&oacute;n de la Demanda tenga la informaci&oacute;n actualizada del progreso y el consumo de recursos de dichos proyectos. De igual forma, la integraci&oacute;n permitir&aacute; que los cambios en las planificaciones de los proyectos sean comunicados a los equipos &aacute;giles de forma natural y efectiva.</p>
<p>Visual Studio permite aprovechar toda la tecnolog&iacute;a y los sistemas software proporcionados por Microsoft (SQL Server, SharePoint, MS Project y Project Server, e incluso Azure) para dotar a nuestro proceso ALM de los beneficios de estar soportado por sistemas software robustos, eficientes y de &uacute;ltima generaci&oacute;n. A&uacute;n m&aacute;s, con Visual Studio podemos integrar dentro de nuestro proceso ALM sistemas software y tecnolog&iacute;as de otros fabricantes del mercado de una manera sencilla y eficaz.</p>
<p>En conclusi&oacute;n, si nuestra organizaci&oacute;n precisa de procesos de negocio que le ayuden a competir, estos deben estar en sistemas software que deben ser diferenciales mediante el desarrollo ad-hoc, y para ello la adopci&oacute;n de un proceso de gesti&oacute;n del desarrollo software soportado por la &uacute;ltima tecnolog&iacute;a software es primordial. Visual Studio ofrece una de las mejores soluciones de gesti&oacute;n del ciclo de vida del desarrollo software del mercado actual y nos ayudar&aacute; a mejorar la competitividad de nuestra organizaci&oacute;n.</p>]]></content:encoded>
    </item>
    <item>
      <title>Escenarios ALM: ALM como Proceso Crítico de Negocio</title>
      <link>https://docs.microsoft.com/archive/blogs/jgomezl/escenarios-alm-alm-como-proceso-crtico-de-negocio</link>
      <pubDate>Thu, 07 Jun 2012 09:12:00 GMT</pubDate>
      <dc:creator><![CDATA[Javier G. Lozano]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/jgomezl/2012/06/07/escenarios-alm-alm-como-proceso-crtico-de-negocio/</guid>
      <description><![CDATA[Continuando con la serie de escenarios ALM, en en este articulo, abordamos el primero de ellos: ALM...]]></description>
      <content:encoded><![CDATA[<p>Continuando con la serie de <a title="https://blogs.msdn.com/b/jgomezl/archive/2011/12/26/introduccion-escenarios-alm-visual-studio.aspx" href="https://blogs.msdn.com/controlpanel/blogs/posteditor.aspx/escenarios ALM">escenarios ALM</a>, en en este articulo, abordamos el primero de ellos: <strong>ALM como Proceso Cr&iacute;tico de Negocio</strong>.</p>
<p>En este articulo veremos c&oacute;mo el proceso de gesti&oacute;n del ciclo de vida del desarrollo de las aplicaciones, en especial aquellas de &iacute;ndole empresarial, deber&aacute; ser considerado por los directivos de las organizaciones, como un proceso de negocio vital para el correcto funcionamiento de sus empresas, y c&oacute;mo la soluci&oacute;n ALM que proporciona Visual Studio es la mejor opci&oacute;n para garantizar que ese proceso cr&iacute;tico de negocio cuenta con la mejor base tecnol&oacute;gica posible.</p>
<h2>&iquest;Por qu&eacute; el ALM es un proceso cr&iacute;tico de negocio?</h2>
<p>Hoy en d&iacute;a, es un hecho ampliamente aceptado que una empresa u organizaci&oacute;n debe estructurar su funcionamiento sobre un conjunto de procesos de negocio que son los que har&aacute;n latir el coraz&oacute;n de dicha organizacion.</p>
<p>Si partimos de la definici&oacute;n del termino "<em>proceso de negocio</em>" como:</p>
<h4><em>"Conjunto de tareas relacionadas l&oacute;gicamente llevadas a cabo para obtener un resultado de negocio definido"</em></h4>
<p>podemos inferir entonces cuales ser&aacute;n sus principales caracter&iacute;sticas:</p>
<ol>
<li>Deben ser medibles y estar orientados al rendimiento</li>
<li>Deber&aacute;n producir resultados espec&iacute;ficos</li>
<li>Aportar&aacute;n valor a los clientes de la organizaci&oacute;n o a los promotores&nbsp;</li>
<li>Responder&aacute;n a alguna acci&oacute;n o evento determinado</li>
<li>Las actividades que los componen deber&aacute;n agregar valor a los elementos de entrada al proceso</li>
</ol>
<p>Como vemos, los procesos de negocio buscan ante todo producir beneficios concretos, predecibles y de la mejor manera posible. Por ello es tan importante para una organizaci&oacute;n, que desea mejorar su rendimiento, mejorar sus procesos de negocio, haci&eacute;ndolos repetibles, eficientes y eficaces.</p>
<p>Fundamentalmente para que un proceso de negocio ayude a contribuir al &eacute;xito empresarial se requiere ante todo que dicho proceso est&eacute; definido correctamente, y una vez definido, que sea implantado y adoptado por la organizaci&oacute;n en el menor tiempo posible y con el menor esfuerzo. Imaginemos un proceso de negocio innovador pero que no llega a todos los niveles de la empresa implicados, y que adem&aacute;s el coste de implantaci&oacute;n del mismo es desorbitado. Claramente, dicho proceso de negocio, que podr&iacute;a hacer m&aacute;s competitiva a una organizacion, estar&iacute;a abocado al fracaso.</p>
<p>Es aqu&iacute; donde los sistemas "software" pueden ayudar a que dicha implantaci&oacute;n sea exitosa. Como se puede leer en el <a title="https://www.davidchappell.com/writing/white_papers/ALM_as_a_Business_Process_v2.0--Chappell.pdf" href="https://blogs.msdn.com/controlpanel/blogs/posteditor.aspx/articulo de David Chappell">articulo de David Chappell</a>, en 2008 la publicaci&oacute;n Harvard Business&nbsp;Review, public&oacute; un articulo escrito por Andrew McAfee y Erick Brynjolfsson, en el que se indicaba que gracias a la facilidad con que un sistema software puede ser desplegado completamente dentro de una organizaci&oacute;n, y gracias a como un proceso soportado por un sistema software puede tener garantias de que es debidamente utilizado y seguido por los miembros de la organizaci&oacute;n, <strong>los procesos de negocio soportados por sistemas software ser&aacute;n m&aacute;s facilmente implantables de manera completa en la organizaci&oacute;n y ser&aacute;n tambi&eacute;n f&aacute;cilmente medibles, optimizables y repetibles</strong>.</p>
<p>Hasta aqu&iacute;, podemos ver como los sistemas software o las aplicaciones de l&iacute;nea de negocio ayudan a soportar los procesos de negocio de nuestra organizaci&oacute;n.</p>
<p>Ahora bien, puesto que los procesos de negocio ser&aacute;n los que hagan que nuestra organizaci&oacute;n funcione adecuadamente, &iquest;c&oacute;mo pueden hacer esos procesos de negocio que seamos m&aacute;s competitivos?. Evidentemente, si se desea que nuestra empresa sea competitiva, y que gane terreno dentro del mercado en el que se encuentran nuestros competidores, sus procesos de negocio deber&aacute;n ser diferenciales respecto a los de nuestra competencia. Dicho de otro modo, si esos procesos de negocio son los mismos que los de loscompetidores, &iquest;c&oacute;mo hacer para competir con ellos?. <strong>La soluci&oacute;n est&aacute; en hacer que los procesos de negocio se diferencien con respecto a los de la competencia</strong>.</p>
<p>Si nuestros procesos de negocio son id&eacute;nticos a los de la competencia porque nuestra organizaci&oacute;n los soporta con el mismo sistema software comercial que nuestros competidores tambi&eacute;n han adquirido, no tendremos la ventaja competitiva que necesitamos. Es por ello que <strong>nuestros sistemas software deben permitir esa ventaja competitiva siendo modificables y adaptables a las necesidades de nuestra organizaci&oacute;n y de su entorno</strong>.Y es, por tanto, el desarrollo software una pieza vital para el funcionamiento de nuestra organizaci&oacute;n. En conclusi&oacute;n, <strong>el proceso de desarrollo software dentro de nuestra organizaci&oacute;n pasa a ser tambi&eacute;n por s&iacute; mismo un proceso cr&iacute;tico de nuestro negocio</strong>.</p>
<h2>&iquest;Por qu&eacute; ALM con Microsoft Visual Studio?</h2>
<p>Hasta este punto, vemos porque tenemos que dotar a nuestro proceso de gesti&oacute;n del ciclo de vida del desarrollo (ALM) de la importancia que realmente tiene. Y si el proceso ALM es vital para nuestro negocio, hemos de&nbsp; contemplarlo de la misma manera que otros procesos de negocio, es dec&iacute;r, debemos pedirle que sea definido, medible, optimizable y repetible. Y es aqu&iacute; donde debemos implantar dicho proceso sobre un sistema software que le permita disfrutar de dichas posibilidades.</p>
<p>La soluci&oacute;n ALM ofrecida por <strong>Visual Studio permite contemplar el proceso del desarrollo de los sistemas software de una manera completa</strong>, de extremo a extremo del proceso, dotando a los participantes en dicho proceso de un conjunto adecuado de herramientas en funci&oacute;n de su rol, y con las que est&eacute;n familiarizados, reduciendo la curva de aprendizaje y permiti&eacute;ndoles ser m&aacute;s productivos, reduciendo el lastre de las tareas burocr&aacute;ticas y eliminando el sobrecoste que supone el cambio de contexto de una tarea a otra en sus asignaciones de trabajo.</p>
<p>Igualmente, <strong>Visual Studio permite dar soporte a cualquier proceso ALM independientemente de su trasfondo metodol&oacute;gico</strong>. Las plantillas de proceso que <strong>Microsoft Visual Studio Team Foundation Server</strong> ofrece son variadas (desde CMMi hasta Agile o Scrum) y adem&aacute;s dichas plantillas de proceso pueden ser modificadas y adaptadas a las necesidades concretas de la organizaci&oacute;n. Incluso es posible dise&ntilde;ar y construir una plantilla de proceso desde cero con las herramientas incluidas dentro de <strong>Visual Studio</strong>. Por tanto, <strong>podemos hacer nuestro proceso de negocio ALM todo lo diferencial que nuestra organizaci&oacute;n precise en cada momento y en cada proyecto.</strong></p>
<p>Tambi&eacute;n, la necesidad de adaptar los procesos de desarrollo a las necesidades cambiantes del negocio&nbsp;y la preocupaci&oacute;n por la generaci&oacute;n de valor en los proyectos software han hecho, en los &uacute;ltimos a&ntilde;os, que las metodolog&iacute;as denominadas &ldquo;agiles&rdquo; est&eacute;n teniendo gran seguimiento.</p>
<p>En el an&aacute;lisis Global Developer Technographics Survey realizado por Forrester/Dr.Dobb&rsquo;s, ya en 2009, se indicaba que a nivel mundial, el 35% de los proyectos software est&aacute;n siendo guiados por metodolog&iacute;as &aacute;giles, siendo la primera posici&oacute;n del ranking. Como curiosidad, la segunda posici&oacute;n, con un 30,6% son proyectos que no siguen ning&uacute;n tipo espec&iacute;fico de proceso o metodolog&iacute;a, y luego estar&iacute;an el resto de tipos de proceso como los modelos iterativos (RUP, Spiral) y por &uacute;ltimo los modelos en cascada (CMMI, ISO9000, etc.). La cuesti&oacute;n es que los equipos de desarrollo &aacute;giles no se integran muy bien tal cual con los modelos de gesti&oacute;n y seguimiento de proyectos actuales. <strong>Visual Studio</strong> permite, mediante su integraci&oacute;n out-of-the-box con <strong>Microsoft Project Server</strong>, que los equipos &aacute;giles puedan seguir sus procesos y que al mismo tiempo y sin necesidad de esfuerzo adicional, nuestra Oficina de Gesti&oacute;n de la Demanda tenga la informaci&oacute;n actualizada del progreso y el consumo de recursos de dichos proyectos. De igual manera, la integraci&oacute;n permitir&aacute; que los cambios en las planificaciones &ldquo;formales&rdquo; de los proyectos les sean comunicadas a los equipos &aacute;giles de una forma que les sea natural y efectiva.</p>
<p><strong>Visual Studio</strong> permite aprovechar toda la tecnolog&iacute;a y los sistemas software proporcionados por <strong>Microsoft</strong> (SQL Server, SharePoint, MS Project y Project Server, e incluso Azure) para dotar a nuestro proceso ALM de los beneficios de estar soportado por sistemas software robustos, eficientes y de &uacute;ltima generaci&oacute;n. A&uacute;n m&aacute;s, con <strong>Visual Studio</strong> podemos integrar dentro de nuestro proceso ALM sistemas software y tecnolog&iacute;as proporcionadas por otros fabricantes del mercado de una manera sencilla y eficaz.</p>
<h2>Conclusi&oacute;n</h2>
<p>Si nuestra organizaci&oacute;n precisa de procesos de negocio que le ayuden a competir, &eacute;stos deben estar en sistemas software que deben ser diferenciales mediante el desarrollo ad-hoc, y para ello la adopci&oacute;n de un proceso de gesti&oacute;n del desarrollo software soportado asimismo por la &uacute;ltima tecnolog&iacute;a software es primordial. Visual Studio ofrece una de las mejores soluciones de gesti&oacute;n del ciclo de vida del desarrollo software del mercado actual y nos ayudar&aacute; a mejorar la competitividad de nuestra organizaci&oacute;n.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>Introducción a los escenarios ALM con Visual Studio</title>
      <link>https://docs.microsoft.com/archive/blogs/jgomezl/introduccin-a-los-escenarios-alm-con-visual-studio</link>
      <pubDate>Mon, 26 Dec 2011 06:27:00 GMT</pubDate>
      <dc:creator><![CDATA[Javier G. Lozano]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/jgomezl/2011/12/26/introduccin-a-los-escenarios-alm-con-visual-studio/</guid>
      <description><![CDATA[El desarrollo de proyectos software es una de las labores o profesiones m&aacute;s atractivas de la...]]></description>
      <content:encoded><![CDATA[<p>El desarrollo de proyectos software es una de las labores o profesiones m&aacute;s atractivas de la actualidad. Nunca antes, el desarrollar software, en cualquiera de sus variantes (desarrollo web, aplicaciones tradicionales, mobilidad, etc.) ha contado con tantas herramientas, metodolog&iacute;as e informaci&oacute;n como ahora. No ha habido un periodo de tiempo en el que el software haya estado m&aacute;s presente en nuestras vidas tanto profesionales como personales. Basta recordar el "claim" de Visual Studio 2010: <strong>"Life Runs On Code"<a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/49/44/4370.VS_v_rgb.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-49-44/4370.VS_5F00_v_5F00_rgb.png"></a></strong></p>
<p>Todo lo que nos rodea, de alguna manera, est&aacute; relacionado con uno o varios componentes software. Nuestro tel&eacute;fono m&oacute;vil, nuestro port&aacute;til o el PC de nuestro puesto de trabajo, los aparatos que utilizamos para nuestro ocio diario (consolas, reproductores de v&iacute;deo o m&uacute;sica, etc.). Todo ello, en alg&uacute;n momento, depende de aplicaciones o servicios construidos gracias al software.</p>
<p>Pero, tambi&eacute;n es curioso como ante esta &eacute;poca dorada del software, con sus grandes avances y su espl&eacute;ndido horizonte, algunas cuestiones siguen ancladas en el pasado. Una de ellas es, por ejemplo, como <strong>se sigue contemplando al desarrollo software como una artesan&iacute;a</strong> o en el mejor de los casos como una maestr&iacute;a. Y a menudo son personas con un tremendo bagage t&eacute;cnico las que siguen viendo as&iacute; las cosas. Cuantas veces algunos de nosotros hemos hablado con responsables de equipos de desarrollo, o con directivos de departamentos de I+D+i que<strong> siguen creyendo que el desarrollo del software que su organizaci&oacute;n precisa para funcionar y competir en el entorno actual es un conjunto de tareas desempe&ntilde;adas por equipos de personas que suponen empresarialmente un mero coste para la organizaci&oacute;n y no una inversi&oacute;n</strong>. Que esos equipos de desarrollo no precisan organizaci&oacute;n, ni herramientas, ni procesos porque son perfiles creativos y no t&eacute;cnicos. Que la inversi&oacute;n en herramientas y procesos para gestionar el desarrollo software no tiene una raz&oacute;n clara para ser tenida en cuenta dentro de sus planes t&aacute;cticos o estrat&eacute;gicos. Llegando incluso m&aacute;s lejos, que las herramientas con las que esos equipos efectuan su labor son "<em>commodities</em>" y que da lo mismo una que otra, si total desarrollar software es un proceso de escribir c&oacute;digo, y para escribir c&oacute;digo incluso con el Vi o el Emacs (mis recuerdos a los editores de c&oacute;digo en los que m&aacute;s tiempo he pasado durante mi trayectoria como desarrollador) se puede hacer.</p>
<p>En parte, esta visi&oacute;n que a muchos parecer&iacute;a de otras d&eacute;cadas, est&aacute; causada por <strong>c&oacute;mo se posiciona todo lo relativo al desarrollo software</strong>. Es decir, desde de un punto de vista de marketing de producto, o desde un punto de vista comercial, se comercializan las herramientas de desarrollo o se presentan los modelos de gesti&oacute;n del desarrollo, de la misma manera a c&oacute;mo se vend&iacute;an los autom&oacute;viles hace 4 &oacute; 5 d&eacute;cadas, o a como se ofertaban los primeros ordenadores personales de hace 3 d&eacute;cadas. <strong>La oferta se centra excesivamente en las caracter&iacute;sticas del producto</strong>: "<em>Equipe a sus equipos de desarrollo con la soluci&oacute;n X porque podr&aacute;n utilizar la caracter&iacute;stica Y, la Z o la W</em>". &iquest;No recuerda esto a los spots de televisi&oacute;n de autom&oacute;viles o lavadoras de la de la &eacute;poca?. &iquest;Cu&aacute;nto ha cambiado el marketing y la publicidad de esos productos desde entonces?. En la actualidad esos productos se ofertan comunicando a los potenciales compradores los beneficios que supondr&aacute;n para ellos en cuestiones como fiabilidad, seguridad, comodidad, etc. Incluso &uacute;ltimamente lo que se intenta es asociar esos productos con determinadas sensaciones o sentimientos que puedan resultar atractivos a los usuarios (baste como ejemplo las campa&ntilde;as de marketing de BMW de los &uacute;ltimos a&ntilde;os por poner un &uacute;nico ejemplo).</p>
<p>Pensando sobre todo esto, surgi&oacute; la idea de intentar posicionar el desarrollo software y las herramientas de desarrollo de Visual Studio de una manera similar, para de esta manera intentar comunicar o posicionar mejor la oferta de esos productos. Vaya por delante que no pretendermos ofertar <strong>Visual Studio</strong> a nuestros potenciales compradores con aquello de: "<em>&iquest;Te gusta desarrollar?</em>" que dec&iacute;an los spots de BMW, pero si que intentamos salir de la mera oferta t&eacute;cnica o centrada en las caracter&iacute;sticas del producto o la soluci&oacute;n, para ampliar un poco el enfoque y hacer ver a nuestros potenciales compradores que la compra de soluciones de ALM deb&iacute;a estar fundamentada por cuestiones que resultar&iacute;an m&aacute;s cercanas a sus necesidades o problem&aacute;ticas. <strong>Posicionar una soluci&oacute;n ALM como Visual Studio centr&aacute;ndonos en las caracter&iacute;sticas no es tan efectivo como posicionarla indic&aacute;ndole a los potenciales clientes c&oacute;mo con ella podr&iacute;an solucionar problemas</strong> como la productividad de sus equipos de desarrollo, o el nivel de gesti&oacute;n y seguimiento que podr&iacute;an tener sus proyectos, o c&oacute;mo la calidad de sus aplicaciones, y por ende la satisfacci&oacute;n de sus usuarios, aumentar&iacute;a.</p>
<p>Estas problem&aacute;ticas o situaciones a las que nuestros clientes o usuarios se enfrentan d&iacute;a a d&iacute;a, es lo que hemos venido a plantear como "<strong>Escenarios ALM</strong>". Es decir, situaciones que entendemos son comunes en el d&iacute;a a d&iacute;a de nuestros clientes, y que gracias a las soluciones de desarrollo de <strong>Visual Studio</strong> podr&iacute;an solucionarse o mejorarse. Evidentemente, cada organizaci&oacute;n o equipo es &uacute;nico y las problem&aacute;ticas de cada uno no tienen porqu&eacute; coincidir con las de otros, pero si que es cierto, despu&eacute;s de conocer un poco el sector, que los escenarios tipo no son demasiados.</p>
<p>Por todo esto, creo que ser&iacute;a interesante escribir en este blog, una serie de posts o art&iacute;culos en los que presentar esos escenarios y tambi&eacute;n c&oacute;mo <strong>Visual Studio</strong> podr&iacute;a ayudar a solucionarlos o mitigarlos.</p>
<p>En una primera aproximaci&oacute;n, la lista de escenarios relativos al desarrollo software podr&iacute;a ser esta:</p>
<h2><a title="ALM como Proceso Cr&amp;iacute;tico de Negocio" href="https://blogs.msdn.com/b/jgomezl/archive/2012/06/07/escenarios-alm-proceso-critico-negocio.aspx">ALM como Proceso Cr&iacute;tico de Negocio</a></h2>
<p>Habitualmente estamos acostumbrados a oir c&oacute;mo <strong>las organizaciones gestionan y mejoran sus procesos de negocio</strong>. Tambi&eacute;n es habitual o incluso obligatorio que dichos procesos est&aacute;n soportados por complejos y costosos sistemas de software. Seguro que <strong>una organizaci&oacute;n moderna dispone de recursos econ&oacute;micos y productivos para procesos como la gesti&oacute;n de clientes, el calculo de n&oacute;minas, el control financiero contable</strong>, y as&iacute; hasta una extensa lista de sistemas software que dan soporte a los procesos de negocio. Lo que es menos habitual es que esas mismas empresas no vean la necesidad de gestionar adecuadamente sus proyectos de desarrollo software o si lo hacen, que no contemplen al proceso de desarrollar y mantener sus sistemas software como un proceso de negocio m&aacute;s y que deber&iacute;a ser considerado al menos tan cr&iacute;tico como otros procesos dentro de la organizaci&oacute;n. Si el software forma parte intr&iacute;nseca de sus procesos cr&iacute;ticos de negocio, &iquest;<strong>por qu&eacute; el proceso de gesti&oacute;n de los proyectos software no es a su vez un proceso cr&iacute;tico</strong>?</p>
<h2>Gesti&oacute;n de Proyectos o Equipos de Desarrollo Heterog&eacute;neo o Multiplataforma</h2>
<p>En el panorama actual con una amplia oferta de tecnolog&iacute;as y fabricantes es frecuente que las organizaciones tengan equipos de desarrollo que trabajen desarrollando aplicaciones para diferentes plataformas (.NET, Java, COBOL, etc.). Normalmente esta "<em>dispersion tecnol&oacute;gica</em>" hace que los diferentes equipos y proyectos utilicen modelos de gesti&oacute;n del ciclo de v&iacute;da diferentes y tambi&eacute;n sus propias herramientas que los soporten. Todo esto hace que se produzcan ineficiencias en el trabajo de los diferentes equipos, que se incrementen los costes de gesti&oacute;n y soporte de los diferentes sistemas ALM, que no exista un proceso o procesos ALM unificados y controlados por la organizaci&oacute;n, y en general otros problemas que afectar&aacute;n negativamente a la organizaci&oacute;n. <strong>Visual Studio y su soporte multiplataforma para la gesti&oacute;n del ciclo de vida del desarrollo puede ayudar a establecer y definir un proceso ALM unificado</strong> que permita detectar y eliminar las deficiencias en esos procesos, reduzca los recursos necesarios para gestionar dichos procesos y fomente la colaboraci&oacute;n entre diferentes equipos de desarrollo especializados.</p>
<h2>Gesti&oacute;n de Equipos o Proyectos de Desarrollo con Equipos Geogr&aacute;ficamente Dispersos</h2>
<p>Muchas organizaciones se ven enfrentadas a escenarios en los que <strong>sus equipos de desarrollo est&aacute;n ubicados en diversas localidades geograficamente separadas</strong>. Tambi&eacute;n puede ocurrir que en una organizaci&oacute;n los perfiles de gesti&oacute;n de proyectos est&eacute;n en las oficinas centrales de la multinacional y los equipos de desarrollo est&eacute;n otras ubicaciones donde las condiciones economico-financieras de la zona sean m&aacute;s ventajosas ("<em>off-shoring</em>"). Estos casos y otroso similares pueden ser f&aacute;cilmente resueltos con <strong>Visual Studio</strong>, de manera que&nbsp;los proyectos de desarrollo no se vean afectados de manera negativa y puedan aprovechar las ventajas de modelos como "<em>off-shoring</em>" o "<em>outsourcing</em>" sin necesidad de afrontar tareas de gesti&oacute;n adicionales al trabajo habitual.</p>
<h2>Aseguramiento de la Calidad en los Desarrollos Software</h2>
<p>Hoy en d&iacute;a es importante poder garantizar que nuestros proyectos de desarrollo no solo cumplen los objetivos de tiempo y recursos, si no que adem&aacute;s <strong>es fundamental garantizar en todo momento que el sistema o la aplicaci&oacute;n cumple los requisitos demandados por los usuarios finales</strong>, y adem&aacute;s tambi&eacute;n cumple los est&aacute;ndares de calidad t&eacute;cnica que se definen para el proyecto en cuesti&oacute;n o para toda la organizaci&oacute;n. Un proceso moderno de gesti&oacute;n del desarrollo software debe ser capaz de garantizar la m&aacute;xima calidad dentro de todas las fases y tareas que lo componen, y tambi&eacute;n, los equipos de desarrollo deben de contar con las herramientas adecuadas que les permitan construir aplicaciones de calidad.</p>
<h2>Gesti&oacute;n Empresarial de Proyectos de Desarrollo</h2>
<p>En las organizaciones actuales, desde hace varias d&eacute;cadas, existe una cultura arraigada de gesti&oacute;n de proyectos. Las empresas valoran y seleccionan sus proyectos utilizando t&eacute;cnicas y herramientas avanzadas como <em>Gesti&oacute;n de Portfolio de Proyectos</em> (PPM), <em>Gesti&oacute;n Empresarial de Proyectos</em> (EPM) o utilizan <em>Sistemas de Informaci&oacute;n para la Gesti&oacute;n Ejecutiva</em> (EIS). Dentro del mundo del desarrollo software, <strong>la informaci&oacute;n del seguimiento y avance de los proyectos debe alimentar los sistemas avanzados de planificaci&oacute;n empresarial</strong>, lo cual de manera casi constante <strong>supone una carga de trabajo adicional a los equipos de desarrollo</strong>. &iquest;C&oacute;mo se puede hacer compatible que los equipos de desarrollo se dediquen exclusivamente a lo que mejor saben hacer - desarrollar software - mientras que se sigue suministrando de vital informaci&oacute;n a los sistemas de gesti&oacute;n empresarial de la organizaci&oacute;n?. Es sencillo si se cuenta con un proceso de gesti&oacute;n del desarrollo adecuado y que a su vez est&eacute; soportado por herramientas, como&nbsp;las que ofrece <strong>Visual Studio</strong>, &nbsp;que faciliten el flujo de informaci&oacute;n con el m&iacute;nimo esfuerzo.</p>
<h2>Administraci&oacute;n de la Propiedad Intelectual en Proyectos de Desarrollo</h2>
<p>Las organizaciones actuales gestionan cada vez m&aacute;s <strong>activos intangiles</strong> como patentes, marcas, contratos, etc. Lamentablemente, tambi&eacute;n es habitual que uno de sus activos intangibles m&aacute;s importantes como puede ser <strong>la propiedad intelectual de sus proyectos de desarrollo</strong> no est&eacute; contemplado dentro de esa gesti&oacute;n de activos, especialmente si los proyectos de desarrollo son <strong>externalizados a proveedores externos especializados</strong> que normalmente se limitan a entregar los resultados finales del proyecto, dejando aparte elementos cr&iacute;ticos como la documentaci&oacute;n del proyecto, los entregables intermedios o incluso algo tan vital para el contratista como es el c&oacute;digo fuente. Un proceso de gesti&oacute;n del ciclo de vida de las aplicaciones debe ayudar a las organizaciones clientes a poder gestionar, con el minimo esfuerzo, esos intangibles que le permitir&aacute;n poder afrontar por si mismas el mantenimiento y evoluci&oacute;n de las aplicaciones o sistemas contratados.</p>
<h2>Aseguramiento del Rendimiento y Escalabilidad en Aplicaciones o Servicios</h2>
<p>En&nbsp;este panorama&nbsp;actual&nbsp;de mercados altamente competitivos y con ciclos de desarrollo de productos y servicios cada vez m&aacute;s cortos, <strong>los costes asociados a la mal rendimiento de nuestras aplicaciones pueden ser elevados</strong>. Adem&aacute;s, dichos costes a menudo pueden ser dif&iacute;ciles de cuantificar puesto que impactan sobre activos intangibles como<strong> la imagen de marca o la productividad de la plantilla de la organizaci&oacute;n</strong>. Ahora que vivimos en una sociedad altamente conectada y que hace uso extensivo de servicios en l&iacute;nea gracias a internet, es mandatorio que<strong> las organizaciones puedan asegurar el correcto funcionamiento de sus servicios y aplicaciones independientemente de los vol&uacute;menes de peticiones realizadas por los clientes finales o los empleados de las misma</strong>. Una vez m&aacute;s, los proceso e gesti&oacute;n del ciclo de vida de las aplicaciones implantados dentro de las organizaciones deben ayudar a que el rendimiento de las aplicaciones est&eacute; de alguna manera garantizado y que esas mismas aplicaci&oacute;n o servicios reaccionen de manera flexible a picos de demanda por parte de los clientes o usuarios finales.</p>
<p>Como se suele decir: "est&aacute;n todos los que son, pero no son todos los que est&aacute;n". Habr&aacute; organizaciones que se enfrenten a escenarios o situaciones adicionales a estas, o a mezclas de varias de las de la lista. Si ese es el caso, mi contacto est&aacute; a disposici&oacute;n de los interesados para que comentar sobre el tema y tratar de encontrar la mejor forma de enfrentarse a ellos con las soluci&oacute;n de ALM de Microsoft Visual Studio.</p>]]></content:encoded>
    </item>
  </channel>
</rss>