domingo, 20 de abril de 2014

Introducción Básica a Visual Studio ALM

Tabla de Contenido

1. ¿Qué es la Gestión del Ciclo de Vida de una Aplicación?
1.1 Aspectos
1.1.1 Gobierno
1.1.2 Desarrollo
1.1.3 Operaciones o mantenimiento
1.2 Herramientas
2. Visual Studio ALM
2.1 Plataforma
3. Conclusiones
4. Enlaces & Literatura

1. ¿Qué es la Gestión del Ciclo de Vida de una Aplicación?

La Gestión del Ciclo de Vida de una Aplicación (o su equivalente en la lengua anglosajona: Application Lifecycle Management) comprende el gobierno, desarrollo, y mantenimiento de la creación soluciones de software. Además, y de acuerdo con [2], este término también lo podemos relacionar con el Ciclo de Desarrollo de Software (por sus siglas en inglés, SDLC: Software Development Lifecycle), pero ALM va más allá que el simple ciclo de desarrollo, pues tenemos a disposición otro conjunto de herramientas y prácticas más robustas para el afianzamiento y aseguramiento de la existencia de la solución software a largo plazo y la atención a la innovación del producto con la inclusión de nuevas características técnicas y tecnológicas.

1.1 Aspectos de ALM

Como ya lo mencionamos en el párrafo introductorio, ALM comprende tres aspectos o áreas: gobierno, desarrollo, y mantenimiento. En la Figura 1 podemos ver esto con más detalle, incluido el ámbito o contexto de visibilidad de estos tres aspectos desde la concepción de la idea, el desarrollo, y el retiro del producto del mercado o de la infraestructura de software de una organización.
Aspectos (o áreas) de ALM.
Figura 1. Aspectos (o áreas) de ALM [1].
En breve, vamos a definir cada uno de estos aspectos y su ámbito contextual:

1.1.1 Gobierno

En este aspecto, las principales tareas o acciones consisten en la toma de decisiones, y la gestión general del proyecto. Abarca todo el ciclo de vida, a razón de la demanda de recursos, tiempo, y dinero comprometidos para sacar a adelante, comercializar e implementar el producto software. Este aspecto tiene una vista más detallada; en la Figura 2 lo apreciamos.
Gobierno en ALM
Figura 2. Gobierno en ALM [2].
1.1.1.1 Desarrollo de casos de Negocio

Comprende el análisis de oportunidad de negocio con la idea de desarrollo del proyecto de software para la organización o para su comercio y distribución en el mercado: a fin de cuentas, ¿en realidad generará valor para el negocio?

1.1.1.2 Gestión del portafolio del proyecto

Aquí se asignan todos los recursos de capital humano para la administración o gestión del proyecto durante su ciclo de desarrollo: asignación de un gerente de proyecto para que vele por la generación real del producto.

1.1.1.3 Gestión del portafolio de aplicación

La aplicación se convierte en un asset (o activo) de la organización, a partir de aquí la organización debe conocer los costos y el valor que representan para la organización: costos de mantenimiento, refactorización de la solución, soporte, y actividades similares; el valor que genera para la organización: productividad, agilidad operativa, apoyo en la toma decisiones, el comercio de la solución a otras organizaciones, entre otras.

1.1.2 Desarrollo

En la Figura 3 penetramos en los detalles de este aspecto.
Desarrollo en ALM.
Figura 3. Desarrollo en ALM [2].
El desarrollo de la aplicación consiste en las siguientes fases:
  • Análisis de requisitos
  • Diseño
  • Implementación
  • Pruebas

Este desarrollo puede realizar por iteraciones o ciclos para atender a los cambios de negocio, técnológicas (nuevo lenguaje o plataforma de desarrollo, por ejemplo) o demanda de requerimientos, o en el mejor de los casos en la innovación del producto.

1.1.3 Operaciones (o mantenimiento)

Apreciemos la Figura 4.
Operaciones en ALM.
Figura 4. Operaciones en ALM [2].
El aspecto o área de operaciones tiene una relación estrecha con las dos anteriores: gobierno, y desarrolo; debido a que debe atender a la demanda generada por el producto: su implementación o puesta en marcha (nos podemos referir al deployment). La monitorización es otro aspecto de generación de costo para la organización, a razón de recursos de infraestructura y humanos para su puesta en macha.

1.2 Herramientas

En Wikipedia [1] podemos encontrar este conjunto de suites de ALM existentes en el mercado:
Suites de ALM.
Figura 5. Suites de ALM [1].
En la siguiente sección me concentraré en la suite Visual Studio Application Lifecycle Management.

2. Visual Studio ALM

Visual Studio ALM es la apuesta de Microsoft para atender semejante necesidad de toda organización dedicada a la fabricación de software. Esta suite posee un conjunto de herramientas y tecnologías para esta gestión del ciclo de vida de una aplicación:
  • Entorno de Desarrollo Integrado (IDE), 
  • Control de versiones, 
  • Recursos de producción, 
  • Colaboración, 
  • KPIs (métricas), y
  • herramientas de reporte de estado y avance.

2.1 Plataforma

Microsoft ha concebido su solución de ALM con la segmentación en cuatro productos principales:
  • Visual Studio IDE: aquí nos podemos concentrar plenamente en el uso de recursos de plataforma de desarrollo para la producción de la solución; inclusive del aspecto operativo y de mantenimiento del producto software.
  • Visual Studio Test Professional [5]: Para el aspecto de desarrollo es importante contar con pruebas de código, funcionalidad del producto para el aseguramiento de su calidad.
  • Team Foundation Server [3]: Provee control de versiones, y trabajo colaborativo.
  • Visual Studio Lab Management [4]: Laboratorio de simulación de ambientes productivos de la solución.

3. Conclusiones

Por medio de esta introducción básica hemos visto la importancia de gestionar a través de una herramienta de ALM el ciclo de desarrollo de un aplicación basado en los aspectos de gobierno, desarrollo, y operaciones (mantenimiento). En breve, vimos que Visual Studio es la solución de Microsoft para atender a esta necesidad común de producción de software en una organización especializada en este negocio.

4. Enlaces & Literatura

[1]: Application lifecycle management, the free encyclopedia - https://en.wikipedia.org/wiki/Application_lifecycle_management
[2]: What is Application Lifecycle Management? - http://www.microsoft.com/global/applicationplatform/en/us/RenderingAssets/Whitepapers/What%20is%20Application%20Lifecycle%20Management.pdf
[3]: Team Foundation Server, the free encyclopedia - https://en.wikipedia.org/wiki/Team_Foundation_Server
[4]: Visual Studio Lab Management, the free encyclopedia - https://en.wikipedia.org/wiki/Visual_Studio_Lab_Management
[5]: Visual Studio Test Professional, the free encyclopedia - https://en.wikipedia.org/wiki/Visual_Studio_Test_Professional


J

No hay comentarios:

Publicar un comentario

Envíe sus comentarios, dudas, sugerencias, críticas. Gracias.