Sunteți pe pagina 1din 5

Ecosistema ALM en .NET.

Breve introduccin a metodologas de desarrollo

La construccin de un software es un ejercicio de trabajo y tiempo considerable, de gran complejidad incluso en sus formas ms simples y que debe permanecer activo en el tiempo con una importancia cada vez ms grande en la sociedad actual. Por ello la generacin de aplicaciones informticas por la metodologa de ASM (A Salto de Mata) no solamente es negativa sino que implica riesgos inasumibles para las empresas que se dedican al desarrollo. Aunque demasiadas de ellas an no le dan la importancia que tiene. As, al menos desde la dcada de los aos 70 del siglo pasado, ha ido evolucionando la idea de ALM. Que son las fases que todo proyecto deber superar para intentar conseguir ese objetivo tan resbaladizo como es el xito. En esta serie que empiezo, voy a desgranar el ecosistema que tenemos en .Net para gestionar las necesidades de cualquier metodologa que utilicemos para gestionar el ALM de nuestras aplicaciones, pero desde el punto de vista del desarrollador. Y con un importante componente de la filosofa Agile en los artculos.

Descripcin general de ALM

Al igual que en el resto de las ingenieras, el Ciclo de Vida de una aplicacin (ALM) se puede dividir a grandes rasgos en las siguientes agrupaciones: Anlisis: Se realiza la toma de requisitos que conforman las funcionalidades esperadas por los usuarios finales del sistema. Diseo: Deduccin de la arquitectura de los diferentes componentes que constituyen la aplicacin. Como puede ser el esquema de datos, la capa de negocio o el interfaz de usuario. Y en donde se define el lenguaje o lenguajes de programacin y las necesidades IT que requiera el software. Codificacin: Lo que hacemos todos los das. Picar el cdigo de la aplicacin y realizar su construccin. Pruebas: Construir y ejecutar las pruebas necesarias para poder asegurar que la aplicacin realiza las tareas esperadas y devuelve las respuestas correctas. En resumen, que sea de til para sus usuarios.

Documentacin: Trata sobre transmitir el conocimiento generado durante todo el Ciclo de Vida del software, a actores que no han participado en la construccin o que lo han hecho pero en otra fase o en otro momento temporal y a futuros actores que requieran del conocimiento producido. Es de sealar que esta documentacin es la base de la gestin de los proyectos.

Algunos tipos de metodologas


Partiendo de estas fases tan genricas, nos encontramos con que se han desarrollado diferentes tipos de metodologas para definir el cundo, el cuanto y el cmo de la construccin de las aplicaciones. A continuacin, voy a describir las ms importantes de forma resumida. Desarrollo en Cascada. Como indica su nombre, las fases se van cumplimentando una detrs de otra (en algunas de las implementaciones esto no es necesariamente as) esperando el final de una para iniciar la siguiente. Es con mucho la metodologa ms utilizada ya que da una sensacin de previsin y robustez en los resultados muy importante. Lo cual a su vez es su mxima debilidad ya que el desarrollo de software ha demostrado ser todo menos previsible . Adems son muy costosos los cambios en estadios finales de la construccin. El nexo de unin entre las fases es la documentacin escrita. Desarrollo en Espiral. El ncleo de esta forma de construir software es el riesgo inherente que todo desarrollo implica. Dependiendo del riesgo detectado, as se define los ciclos o iteraciones de trabajo que se van a realizar. Es una metodologa robusta orientada a grandes y complejos proyectos pero con una capacidad pobre de prediccin. Requiere personal expertos en gestin de riesgos. Desarrollo iterativo y creciente. Partiendo de la realidad de los inconvenientes de la metodologa en cascada, se define este tipo de construccin en donde se parte de un implementacin simple de los requerimientos del sistema para ir evolucionando iterativamente la aplicacin hasta su implementacin completa. Esta forma de desarrollar es tolerante a los cambios en cualquier momento del ciclo de vida pero tiene el inconveniente que es poco predictiva y puede llegar a ser confusa su gestin. Requiere un cliente o usuario final muy comprometido y dispuesto a implicarse plenamente en tiempo y esfuerzo junto con el equipo de desarrollo.

Hay una multitud de metodologas que extraen lo que consideran lo mejor de cada una de las otras para componer formas de Ciclos de Vida ms ajustados a las ideas o necesidades de los diferentes autores. Adems tenemos que bajar al nivel de la implementacin y entonces entramos en una mirada de acrnimos que indican los diferentes sabores que se proponen como son RUP, Scrum, XP, DSDM, RAP, Metrica 3, PMI, Prince, etc. Me he mantenido a un nivel de ingeniera de software para que se perciba que somos una industria muy joven que an est buscando, en sus primeros balbuceos, la forma de realizar de una forma ordenada la unin de un proceso industrial con los procesos intelectuales y artsticos que implica la programacin de sistemas informticos.

Ecosistemas

Pero que es un ecosistema de desarrollo de software? Bsicamente son las herramientas o conjunto de ellas que nos permiten iniciar, ejecutar, gestionar y reproducir el Ciclo de Vida del desarrollo de nuestro software. Es decir, que al menos nos permita realizar las siguientes acciones:

Gestin y justificacin del proyecto: Mtricas, costes, planificacin, riesgos, etc. Herramientas de construccin del software: IDE de programacin, Diseo grfico, Framework de Pruebas, etc. Almacenamiento y versionado del cdigo.

Gestin documental de toda la informacin generada: actas, propuestas, prototipos, anlisis, etc.

Es crtico en la implementacin de cualquier metodologa las herramientas a utilizar. Ya que es totalmente cierto que una mala herramienta destruye a la mejor metodologa ya que, finalmente, quienes las usamos somos las personas. Esto lo he vivido en mis carnes en una empresa que obtuvo el nivel 3 de CMMI con una suite de herramientas propias que implicaban una sobrecarga de trabajo a todos los actores en el ciclo de vida de las aplicaciones tal que llevo, finalmente, a una regresin. Y a una merma importante de la productividad. El ejemplo contrario es una simple pizarra de Kanban, que es el primer interfaz con el que inicio a los nuevos equipos que vienen de trabajar en ASM puro y que dan los primeros pasos en metodologas Agiles. Y que permite comprender fcilmente conceptos como flujo de trabajo, cuellos de botella o responsabilidad colectiva.

Ecosistema TFS 2010 con Scrum 1.0


En esta serie voy a tratar sobre el ecosistema que utilizo a diario y que est comprendido en la enorme familia de productos Microsoft, con su punto de unin en el Team Foundation Server 2010, el alma del ALM. Como este producto admite prcticamente cualquier implementacin, he escogido la metodologa incremental con la que ms a gusto me siento que es SCRUM. Especficamente la versin 1.0 para TFS 2010. Al ser un framework de desarrollo de producto, la documentacin y las mtricas estn orientadas a los miembros del equipo y a los actores involucrados en la aplicacin a desarrollar, y as me permite mostrar la potencia del ecosistema por medio de ejemplos sencillos y de poca complejidad. Espero que me sigas en la continuacin. Ms informacin | Anlisis, Diseo y Mantenimiento del Software (UNED), A Spiral Model of Software by Barry W. Bohem, Visual Studio Development Center

S-ar putea să vă placă și