Visual Studio para equipos de desarrollo heterogéneo
Bajo este sugerente título se esconde una realidad recurrente, especialmente para las grandes empresas de ámbito global: cómo gestionar proyectos o equipos de desarrollo heterogéneos o plataformas tecnológicas diversas sin problemas y con los mejores resultados tanto tecnológicamente hablando como desde un punto de vista de negocio. ¿La respuesta? ALM de Visual Studio.
A lo largo de este artículo intentaremos profundizar en la problemática que a menudo supone la gestión de proyectos de desarrollo ambiciosos, que incluyen equipos multidisciplinares que utilizan diversas plataformas tecnológicas en su contribución al proyecto. También razonaremos cómo la adopción de una solución de gestión del ciclo de vida (ALM) puede contribuir a mejorar la productividad de dichos equipos de trabajo, facilitar su gestión e incrementar el valor proporcionado por dichos proyectos y equipos a la organización.
La vida no es sencilla… pero puede serlo
Cada vez estamos más inmersos en una actualidad más dinámica, donde nuestros clientes nos demandan mayor valor añadido, mayor calidad, menores tiempos de entrega y, en general, más y mejor con menos.
En las últimas décadas ha quedado patente que la tecnología nos ha ayudado tremendamente a cumplir con estos objetivos, pero en contrapartida, en nuestras organizaciones nos encontramos con un panorama tecnológico variado y diverso. Con seguridad tendremos sistemas legacy que han sido mantenidos por cuestiones como la criticidad para la empresa o por cuestiones económicas de inversiones realizadas y pendientes de amortización. También habrá sistemas o plataformas tecnológicas provistas por diferentes proveedores o fabricantes, que están coexistiendo por razones de especialización en algunos escenarios de negocio o por estrategias de diversificación dentro de departamentos como IT o Compras.
Si a la visión interna de nuestra organización, le sumamos que en el exterior nuestros consumidores o clientes tienen una oferta tecnológica similar, y que además hacen uso de ella -teniendo a su disposición, por ejemplo, innumerables dispositivos móviles desde los que quieren realizar sus compras o utilizar los servicios que nosotros ponemos a su disposición- veremos una dimensión y una magnitud adicionales a esta complejidad. Esas personas externas a la compañía, como es lógico, seguramente disponen de su propio ecosistema tecnológico, y si queremos mantener nuestras relaciones comerciales, deberemos hacer que nuestra organización pueda comunicarse de manera efectiva y ágil con las suyas -especialmente si contemplamos escenarios business to business.
Combatir los silos tecnológicos
Toda esta diversidad ha provocado la existencia de equipos especializados dentro de nuestra organización y, especialmente, dentro de nuestros equipos de desarrollo e IT. Esto es natural y es consecuencia de dicha especialización, pero tiene implicaciones poco positivas.
Habitualmente los equipos especializados en una plataforma tecnológica tienden a organizarse de manera aislada al resto, generalmente implantando sus propios procesos metodológicos y utilizando las herramientas de gestión del ciclo de desarrollo que les son más afines. Esto, que a priori puede parecer normal, provoca su "encapsulamiento", haciendo que su información de gestión no sea fá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ón de gestión, lo que provoca que para poder agregar esta información de gestión sea necesario integrar cada uno de los sistemas de información gestión que cada equipo esté utilizando. Es evidente que esto no es deseable para una organización que pretenda tener información consolidada y actualizada de sus proyectos de desarrollo.
Por otro lado, cada día más, la diversidad tecnológica que está presente en las organizaciones implica que los proyectos de desarrollo de las aplicaciones o servicios estratégicos para el negocio involucran diversos subproyectos de desarrollo sobre diversas plataformas tecnológicas distintas (de nuevo un efecto adverso de la especialización tecnológica). Pensemos por ejemplo, una aplicación para la comercialización de los productos de una empresa, en la cual la información de los clientes está en un sistema CRM sobre una plataforma tecnológica, el control de inventario está sobre un ERP que corre sobre otra plataforma tecnológica y que la aplicación quiere proporcionar escaparates de venta a los clientes en la web (que puede suponer otra plataforma tecnológica) al tiempo que también será accesible desde diversos dispositivos móviles. Cada parte del proyecto será realizada por un equipo especializado en su correspondiente tecnología, pero cada uno de estos equipos deberá seguir el paso del proyecto total y deberá ser capaz de suministrar su correspondiente información sobre el progreso del proyecto. Si se desea tener un seguimiento unificado del proyecto global, cada equipo deberá seguir un proceso metodológico común y deberá reportar el progreso de su trabajo también de manera común, lo cual es complicado de conseguir si no se dispone de una plataforma común de gestión del ciclo de vida.
Microsoft Visual Studio como Plataforma ALM común
La solución Microsoft Visual Studio permite ofrecer la posibilidad de participar a todos los equipos implicados en un proyecto, independientemente de si éstos desarrollan en tecnologías Microsoft o utilizan Java o Cobol o PHP. También permite participar a los diversos roles involucrados en el proyecto: equipos de calidad, gestores de proyecto, especialistas funcionales, ingenieros de sistemas, etc.
Mediante Team Explorer Everywhere cualquier desarrollador que esté utilizando un entorno de desarrollo basado en el IDE de Eclipse podrá integrar sus desarrollos dentro del marco del proceso ALM soportado por Team Foundation Server. También existe la posibilidad, mediante soluciones desarrolladas por socios tecnológicos de Microsoft, de dar cobertura a desarrollos sobre plataformas como COBOL, Oracle, PHP, Python, etc.
La información de seguimiento y gestión del proyecto estará 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.
También se podrá acceder mediante un navegador web a la información almacenada dentro del portal de proyecto, el cual utiliza el soporte colaborativo y de gestión documental que proporciona Microsoft SharePoint.
Incluso es posible integrar la información de seguimiento y control del proyecto dentro de un sistema de gestión empresarial de proyectos (EPM) soportada por Microsoft Project Server.
Además, dado que Microsoft Team Foundation Server (TFS), utiliza los servicios de SQL Server para gestionar toda su información, será posible, explotar toda esa información utilizando los servicios Microsoft SQL Server como Reporting Services o Analysis Services.
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ñar y construir una integración con herramientas y sistemas propietarios de la organización. En ese caso contamos con los siguientes recursos ofrecidos por Team Foundation Server:
- Team Foundation Server ofrece una plataforma de integració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ón.
- Team Foundation Server dispone de una serie de API’s, accesibles desde diversas plataformas como .NET o Java, que son públicos y están documentados de manera exhaustiva, permitiendo realizar integraciones ad-hoc incluso a bajo nivel.
- El modelo de datawarehouse sobre el que se apoya Team Foundation Server es abierto y se puede acceder a él para generar cualquier tipo de informe o perspectiva de información que sea necesaria en la organización. Por ejemplo, es sencillo crear un informe que nos muestre qué código fuente ha sido el que históricamente ha sido más proclive a generar defectos (bugs) y por tanto serí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ódigo y los elementos de trabajo.
ALM de Visual Studio elimina los silos de desarrollo
Es un hecho conocido que en la actualidad, especialmente dentro de las grandes organizaciones, aunque no únicamente en ellas, existe una diversidad de plataformas tecnológicas que deben colaborar para conseguir los objetivos empresariales. Dichas plataformas tecnológicas y los sistemas de informació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ón.
Estos proyectos de desarrollo, y los equipos que los acometen, debido a su consecuente especialización (tecnológica), tienden a funcionar como departamentos estancos, dentro de los cuales la información de gestión de los proyectos puede fluir en mayor o menor grado, pero cuando la organización quiere hacer una consolidació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ógico común, que se integre de manera sencilla con sus diferentes herramientas habituales de trabajo, y que además permita consolidar la información de los diferentes actores dentro del proyecto independientemente de cual sea su especialización.
La solución de gestión del ciclo de vida (ALM) que ofrece Microsoft Visual Studio permite eliminar los silos de desarrollo, proporcionando un proceso de gestión de los proyectos de desarrollo común a todos los equipos, independientemente de que desarrollen en plataformas tecnológicas -como .NET, Java, COBOL, etc.-, y sea cual sea la plataforma que dé soporte sus puestos de trabajo -Windows, Linux, Unix, OS X-. Además, Microsoft Visual Studio permite implantar en esos equipos diversos un proceso común que haga que todos ellos trabajen de la misma forma, y además proporcionando una información de gestión homogénea, que permitirá contemplar bajo el mismo cristal el trabajo realizado.
En conclusión: Microsoft Visual Studio es la mejor solución para proporcionar una gestión de ciclo de vida del desarrollo en equipos heterogéneos.