Cargando ...

Modelo de Desarrollo Incremental. Harlan Mills en el año 1980. Se basa en el
desarrollo a partir del incremento de la funcionalidades del programa, se puede considerar un precursor de las modernas metodologías iterativas.. Qué es el desarrollo incremental Modelo de Desarrollo Incremental. Harlan Mills en el año 1980. Se basa en el
desarrollo a partir del incremento de la funcionalidades del programa, se puede considerar un precursor de las modernas metodologías iterativas.. Qué es el desarrollo incremental

Por Mauricio Costanzo 3 minutos de lectura

Desarrollo incremental


El modelo de desarrollo incremental iterativo fue propuesto por Harlan Mills en el año 1980 y se lo puede considerar una revolución para la ingeniería de software y un precursor de las modernas metodologías ágiles.

Por ese entonces se tenían como estándar de desarrollo los procesos secuenciales cómo el modelo en cascada "Watterfall" . Los cueles se mostraban riesgosos, ya que recién al final del proceso se sometía el software al feedback del cliente. En un análisis interesante de proyectos reales, se encontró que la naturaleza lineal del modelo en cascada llega a “estados de bloqueo” en los que ciertos miembros del equipo de proyecto deben esperar a otros a fin de terminar tareas interdependientes. En realidad, ¡el tiempo de espera llega a superar al dedicado al trabajo productivo!

El enfoque actual que se le da al desarrollo incremental se basa en la idea de diseñar una implementación inicial, exponer esta rápidamente al comentario del usuario, y luego si lo anterior marcho bien seguir desarrollando sus diversas versiones hasta que el sistema haga todo lo que el cliente quiere.

Por lo general, los primeros incrementos del sistema incluyen la función esenciales para que el software pueda ser usado en un contexto real. Esto implica que el cliente puede evaluar el desarrollo del sistema en una etapa temprana, para constatar si se entrega lo que se requiere. En caso contrario, sólo el incremento actual debe cambiarse y, posiblemente, definir una nueva función para incrementos posteriores.

En el modelo de desarrollo incremental las actividades de especificación , desarrollo y validación se repiten en cada incremento, a diferencia con los modelos de procesos secuenciales como el modelo en cascada .

Representación gráfica del modelo

El modelo incremental como el estándar para desarrollar software

El desarrollo incremental ahora es en cierta forma es el estándar más común para el desarrollo de sistemas de aplicación webs de comercios electrónicos, web apps prestadoras de servicios, aplicaciones para dispositivos móviles, entre otros. Se adapta mucho mejor al contexto cambiante de los negocios de hoy en día. Si lo comparamos con el modelo en cascada el desarrollo incremental nos permite obtener feedback del cliente más rápido y es mucho menos costoso y fácil realizar cambios a medida que se desarrolla.

El desarrollo incremental puede estar basado en un plan, ser ágil , o como es más frecuente, una mezcla de dichos enfoques.

Si se basa en un plan se identifican por adelantado los incrementos del sistema; en cambio si se adopta un enfoque ágil, se detectan los primeros incrementos, pero el desarrollo de incrementos posteriores dependerá del avance y las necesidades del cliente.

Que esté basado en un plan puede ser muy útil para proyectos que tienen contratos y requisitos muy bien definidos. Por ejemplo desarrollo de software para el estado.

Sin embargo hoy en día la mayoría de los proyectos son para empresas las cuales operan en contextos extremadamente cambiantes, lo cual hacen que los requisitos de un software puedan cambiar de manera muy frecuente. Es en estos casos dónde los enfoque ágiles se adaptan mucho mejor, ya que el avance del proyecto se mide contra el valor entregado al cliente en cada iteración.

Etapas o fases del proceso de desarrollo de software usando el modelo incremental

Se planifica un proyecto en distintos bloques temporales que se le denominan iteración. En una iteración se repite un determinado proceso con el fin de completar algún requerimiento.

Para llegar a lograr esto, cada requerimiento debe tener un completo desarrollo en una única iteración que debe de incluir análisis del requerimiento, diseño, código, pruebas y una documentación para que el equipo pueda cumplir con todos los objetivos que sean necesarios y esté listo para ser dado al cliente.

Lo que se busca es que en cada iteración los componentes logren evolucionar el producto dependiendo de los completados de las iteraciones antecesoras, agregando más opciones de requisitos y logrando una mejora notoria en el software.

Desventajas del desarrollo incremental

El desarrollo incremental no es perfecto y como todo modelo tiene ventajas y desventajas. Todo depende del proyecto, el contexto, el quipo de trabajo, el contrato si lo hay y varias cosas más. Hasta ahora de manera general te vine hablando de lo positivo del modelo, pero nada es infalible.

La principal causa de la dificultad es el hecho de que las grandes organizaciones tienen procedimientos burocráticos que han evolucionado con el tiempo y pueden suscitar falta de coordinación entre dichos procedimientos y un proceso iterativo o ágil más informal.

Los problemas del desarrollo incremental son más notorios para sistemas grandes, complejos y de larga duración, donde diversos equipos desarrollan diferentes partes del sistema. Los grandes sistemas necesitan de un marco o una arquitectura estable y es necesario definir con claridad, respecto a dicha arquitectura, las responsabilidades de los distintos equipos que trabajan en partes del sistema. Esto debe planearse por adelantado en vez de desarrollarse de manera incremental.

Como dijimos lineas arribas, la idea del desarrollo incremental presentar una versión del producto que tenga las características esenciales y luego ir mejorándolo, pero siempre estando este software en producción (en un contexto real), esto no siempre es posible, ya que la experimentación con un nuevo software llega a alterar los procesos empresariales normales.

Sobre el autor
Mauricio Costanzo es programador e impulsor de proyectos online. Inició su carrera como programador en el año 2014 y al día de hoy se dedica a desarrollar las ideas que empresas e instituciones desean convertir en realidad. También es fundador de Worldmaster (ecommerce de tecnología) y de EasySocio (Web/App para administrar gimnasios).
Artículos relacionados
Proceso de descubrir, analizar, documentar y verificar los servicios que debe brindar un
sistema y sus restricciones.

Especificación del software

Proceso de descubrir, analizar, documentar y verificar los servicios que debe brindar un sistema y sus restricciones.

Leer más

Existen cuatro grupos de actividades fundamentales que están presentes en todos los procesos de software (se trate de un simple programa o de un gran sistemas).

Actividades de la ingeniería de software

Existen cuatro grupos de actividades fundamentales que están presentes en todos los procesos de software (se trate de un simple programa o de un gran sistemas).

Leer más

Es un ejemplo de un proceso dirigido por un plan; en principio, se debe planear y programar todas las actividades del proceso, antes de comenzar a trabajar con ellas.

Modelo en cascada Waterfall ¿Qué es?

Es un ejemplo de un proceso dirigido por un plan; en principio, se debe planear y programar todas las actividades del proceso, antes de comenzar a trabajar con ellas.

Leer más

Un proceso de software es una serie de actividades relacionadas que conducen a la elaboración de un producto de software.

Qué es un proceso de software

Un proceso de software es una serie de actividades relacionadas que conducen a la elaboración de un producto de software.

Leer más

Definición y explicación del proceso de construcción de un sistema aplicando la Ingeniería de Software

Qué es la ingeniería de Software

Definición y explicación del proceso de construcción de un sistema aplicando la Ingeniería de Software

Leer más

¿Realmente sabes lo qué es el Software?

Qué es el software

¿Realmente sabes lo qué es el Software?

Leer más

Todos los derechos reservados {{empresa.name}} © 2020 |
Desarrollado por Mauricio Costanzo