Metodologías para el desarrollo de software: Desarrollo Incremental

Mi ultima entrada era sobre mi versión de esta metodología,  ahora voy a definir la de forma algorítmica a como lo hice como la anterior,  esta metodología se basa en crear modelos o prototipos muy rápidamente, su objetivo es conseguir programas utilizables en corto tiempo cosa que genera muchos errores y para solucionar esa problemática en cuanto aparecen errores se deben solucionar y una vez se ha terminado una etapa final, hay que reiniciar, es la forma mas usada para mantener programas existentes ya que no pueden existir errores por mucho tiempo y los mismos usuarios tienen total conocimiento sobre los bugs que se presentan, haciendo del usuario un perfecto asistente para el testeo del software.

Como su nombre y la pequeña definición indican es un método de desarrollo recursivo con énfasis en el usuario,  no hay fase de pruebas por que el usuario se encargará de retroalimentar el proyecto y reportar fallas o incomodidades suyas, muchos de los proyectos fallan solo por que el usuario se siente incomodo con el programa, vamos con el algoritmo.


-Inicialización: Con una serie de requerimientos se crea una versión beta del programa que es llevada directamente a producción, no se solucionan demasiadas cosas por que el objetivo de el inicio es tener una base con la cual trabajar y pueda ser utilizada por los usuarios que desde su experiencia plantearán las mejoras al programa.

-Iteración: Los requerimientos del proyecto son modificados por los usuarios, se rediseñan o diseñan aquellas partes que fueron afectadas por las modificaciones, la modularidad es indispensable ya que se realizarán modificaciones exhaustivas de todo el proyecto simultáneamente por parte del equipo de desarrollo, cada iteración será mas simple que la anterior, si las iteraciones se tornan complejas significa que los módulos son incorrectos y hay que rediseñar los para mejorar la división del proyecto, logrando que las modificaciones sean fáciles de realizar y si las iteraciones generan muchas lineas de código se da por sentado que el proyecto ha fracasado, es necesario iniciar un proyecto nuevo a la mayor brevedad.

-Pruebas: Se le envía el programa al usuario y con herramientas dentro o fuera del software se le permite dar su opinión cuando quiera, las veces que sea necesario, esos reportes deben ser inmediatamente tomados por el equipo de desarrollo y utilizados para iterar de nuevo, cuando reportes de usuario duran mas de tres meses en aparecer se puede decir que el software es maduro y posiblemente el equipo pueda concentrarse en añadir seguridad o nuevas características que requiera la empresa, las iteraciones nunca terminan hasta que el software es abandonado, aunque en ciertas ocasiones el software al llegar a una etapa madura deja de actualizarse con iteraciones y se deja esa tarea en segundo plano, solo haciendo lo básico para que el programa funcione.

Esta metodología tiene como fin claro que el usuario haga la mayor parte del trabajo, es muy útil en grandes empresas y completamente innecesario en pequeños proyectos siendo un gasto de tiempo en muchos casos, los clientes normalmente no quieren verse involucrados en el desarrollo del proyecto por cuestiones de tiempo así que difícilmente sea posible utilizarlo en servicios de outsoursing, mucho mas considerando el tiempo y dinero que es necesario para que un proyecto así llegue a su fase final.

Creo que es importante aclarar de nuevo, no creo que ninguna metodología sea correcta, es importante adaptarlas a cada proyecto o directamente a nuestra forma de trabajar, les deseo suerte y creo que hoy mismo voy a subir otras dos metodologías más.

Comentarios

Entradas populares de este blog

Hablemos de difamación, parafilias y denuncias bien hechas

Criticamos a pablito: "Atrapado en el cuerpo equivocado"

El fruto de una era: Antiintelectualismo moderno