Integración de herramientas

Un nuevo paradigma para el desarrollo empresarial

Como sabemos, el desarrollo de software empresarial involucra diversos aspectos, tales como la definición de actividades, utilización de metodologías, gestión de requerimientos, pruebas, etcétera. Integrar todos estos elementos de manera efectiva es una tarea que puede ser difícil, pero es indispensable, sobre todo porque lo hacemos en busca de un proceso más rentable y que genere software de calidad.Hasta hace pocos años, un desarrollador de software que quisiera utilizar herramientas para todo el ciclo de vida, tenía que recurrir a muchas herramientas diferentes, que se ejecutaban de forma independiente, y no se comunicaban entre sí. Esto nos llevaba al escenario de que, al mismo tiempo era necesario tener cuatro o cinco aplicaciones abiertas (un IDE, un controlador de versiones, el repositorio de requerimientos y una consola para depurar, entre otros) al estar desarrollando. Como ustedes saben, esto tiene dos grandes inconvenientes: el primero es que se requiere estar cambiando de ventana en ventana, lo cual no es muy productivo; y el segundo, es que cada aplicación abierta se lleva una buena cantidad de recursos de la computadora.

Afortunadamente, en los últimos años los proveedores de herramientas han mejorado muchísimo las capacidades de integración entre herramientas. La novedad aquí no es que dos herramientas diferentes se puedan comunicar, sino que dentro de una herramienta se pueda “embeber” a otras, a través de plug-ins y perspectivas. Así, el desarrollador sólo requiere abrir su IDE, y desde ahí tiene toda la funcionalidad que requiere. Aunque este paradigma ya existía desde hace tiempo, tal vez la herramienta que realmente lo hizo despegar fue Eclipse, que fue pensada no como un IDE, sino como una plataforma para herramientas de software. Microsoft aprendió de esto, y de hecho, la versión 2005 de Visual Studio tiene una filosofía similar. La tendencia es que los proveedores de herramientas de software están dejando de ofrecer ediciones independientes de sus productos, y en su lugar, los ofrecen como plug-ins para Visual Studio y/o Eclipse.

Una plataforma para la colaboración
Para ilustrar este nuevo paradigma, voy a tomar como referencia a Visual Studio Team System, y haré un ejercicio de cómo se integra con diferentes herramientas para resolver actividades de todo el ciclo de software. Como posiblemente sabrán, Visual Studio Team System (VSTS) es la propuesta de Microsoft para el ciclo de vida de desarrollo de software empresarial. Team System se distingue del Visual Studio normal (o “a secas”), en cuanto a que ofrece un conjunto de herramientas y tecnologías para el ciclo completo de desarrollo de software empresarial, donde se requiere tener un seguimiento estricto a los proyectos y sus requerimientos, así como un control de versiones robusto.

El motor de Visual Studio Team System es un componente denominado Team Foundation Server. Éste es el que provee capacidades como la colaboración entre miembros del equipo, control de versiones, gestión de cambios, administración de la configuración, y elaboración de informes.

Gestión de requerimientos
Para consolidar el proceso, y tener una herramienta sólida para la definición de requerimientos que se complemente fácilmente, podemos integrar una herramienta de Borland que se llama CaliberRM para Visual Studio Team System. Este es un sistema de gestión de requisitos empresariales, diseñado para ayudar a los analistas a facilitar la colaboración y comunicación entre negocio, analistas, desarrolladores, probadores, arquitectos y otros interesados. CaliberRM provee la funcionalidad requerida por el rol de “analista de requerimientos”, ofreciendo así a los equipos de desarrollo, la capacidad de reunir, seguir y administrar los requerimientos directamente desde VSTS. Esta herramienta de Borland, además de ser una gran alternativa para la gestión de requerimientos, es de gran ayuda cuando se desarrollan proyectos basados en el MSF (Microsoft Solutions Framework).

De la misma empresa, también podemos integrar Caliber DefineIT, una herramienta que nos ayuda en el aseguramiento de los requerimientos del software, para que sean definidos completa y acertadamente desde el principio al ofrecer a los analistas y usuarios, la capacidad de colaborar para capturar los detalles de escenarios posibles y validarlos a través de la creación de guiones visuales. Es así como, con la integración de las herramientas de Borland, podemos asegurar la entrega del software alineada a la demanda de los usuarios y cumplir con los requerimientos del negocio.

Diseño y arquitectura
Enterprise Architect es una excelente herramienta de Sparx Systems para modelar sistemas con UML 2.1. El componente MDG Integration for Visual Studio, nos permite acceder desde Visual Studio los modelos de Enterprise Architect. Es así que se puede hacer generación de código a partir de modelos, o ingeniería en reversa para que a partir de programas, se actualicen los modelos.

Gestión de pruebas
La empresa AutomatedQA, cuenta con una herramienta llamada TestComplete, que tiene una completa integración con la edición Tester de VSTS. TestComplete ofrece un ambiente de pruebas sistemático, automatizado, y estructurado para desarrollos en lenguajes como .NET, Java, Visual C++, Visual Basic, WPF (XAML), Delphi, C++Builder y aplicaciones web. Además con TestComplete se pueden probar aplicaciones de PowerBuilder, FoxPro y Access.

Soporte a entornos heterogéneos
Hemos comentado sobre la colaboración de propuestas que impactan en el ciclo de vida del desarrollo. Sin embargo, nos debemos preguntar: ¿qué pasa cuando tenemos una infraestructura heterogénea? Como sabemos, los equipos de desarrollo no sólo trabajan en ambientes Windows, sino también lo hacen con sistemas operativos como Linux, Solaris o Mac OS X. Es aquí donde entra una propuesta de SourceGear llamada: Teamprise, que es una excelente opción para resolver dicha problemática. Esta herramienta extiende las características de Team Foundation Server a entornos heterogéneos. Con Teamprise, los administradores, desarrolladores y probadores trabajando con distintos sistemas operativos, pueden acceder a TFS. Por ejemplo: un desarrollador de Java trabajando desde Eclipse en Linux, podría utilizar TFS para toda la colaboración y seguimiento al proyecto. Esto permite que las organizaciones integren herramientas sin necesidad de modificar su infraestructura.

Acceso universal
Por último, quiero hacer mención a una herramienta Teamplain, de la empresa DevBiz Business Solutions. Esta es una herramienta que a través del web nos permite administrar los elementos de trabajo de Team Foundation Server, sin necesidad de tener instalada alguna versión de Visual Studio Team System, o Team Explorer. Teamplain se convierte en una interesante opción para aquellos usuarios no tan involucrados con el proceso de desarrollo, sino más bien, con un perfil administrativo, por tratarse de una herramienta sencilla de utilizar.

Conclusión
La experiencia nos confirma que, el desarrollo de software es un proceso difícil. Entregar un producto de calidad y que cumpla con las expectativas del cliente, es aún más complicado. Sin embargo, adoptar herramientas que faciliten este proceso nos ayudará a acercarnos de una mejor manera a cumplir con este objetivo. La colaboración e integración de las herramientas impactará indudablemente en la mejora del desempeño de cada uno de los roles participantes del desarrollo. Y lo más importante, es que no tenemos que cambiar para adoptar cada una de estas herramientas, sino al contrario, podemos integrarlas de acuerdo a nuestras necesidades en busca de la consolidación del proceso de desarrollo de software, que poco a poco se vaya acercando a cumplir con la generación de un software de calidad y un cliente satisfecho.

Referencias a las herramientas mencionadas
www.microsoft.com/spanish/msdn/vs2005/editions/team/default.mspx
www.borland.com/us/products/caliber
www.sparxsystems.com/products/mdg_integrate.html
www.automatedqa.com/products/testcomplete
www.teamprise.com
www.devbiz.com/teamplain/webacces

Acerca del autor
Marcos del Pozo Gómez actualmente colabora como Instructor Señor en la empresa Intersoftware. Cuenta con las certificaciones MCP, MUDAD, y MCSD; y su especialidad es el desarrollo de código seguro y herramientas de desarrollo empresarial. Marcos es Ingeniero en Sistemas Computacionales egresado de la Universidad Tecnológica de México. Su principal entusiasmo es poder sembrar semillas que impulsan el desarrollo de la tecnología en nuestro país.