Documente Academic
Documente Profesional
Documente Cultură
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.
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.
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.