Desarrollo Incremental

DESARROLLO INCREMENTAL Mills [9] sugirió el enfoque incremental de desarrollo como una forma de reducir la repetición de

Views 157 Downloads 3 File size 145KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

DESARROLLO INCREMENTAL Mills [9] sugirió el enfoque incremental de desarrollo como una forma de reducir la repetición del trabajo en el proceso de desarrollo y dar oportunidad de retrasar la toma de decisiones en los requisitos hasta adquirir experiencia con el sistema (ver Figura 1). Es una combinación del Modelo de Cascada y Modelo Evolutivo. Reduce el rehacer trabajo durante el proceso de desarrollo y da oportunidad para retrasar las decisiones hasta tener experiencia en el sistema. Durante el desarrollo de cada incremento se puede utilizar el modelo de cascada o evolutivo, dependiendo del conocimiento que se tenga sobre los requisitos a implementar. Si se tiene un buen conocimiento, se puede optar por cascada, si es dudoso, evolutivo.

Figura 1: Modelo de desarrollo iterativo incremental

Desarrollo iterativo e incremental En un desarrollo iterativo e incremental el proyecto se planifica en diversos bloques temporales (en el caso de Scrum de un mes natural o hasta de dos semanas, si así se necesita) llamados iteraciones. Las iteraciones se pueden entender como miniproyectos: en todas las iteraciones se repite un proceso de trabajo similar (de ahí el nombre “iterativo”) para proporcionar un resultado completo sobre producto final, de manera que el cliente pueda obtener los beneficios del proyecto de forma incremental. Para ello, cada requisito se debe completar en una única iteración: el equipo debe realizar todas las tareas necesarias para completarlo (incluyendo pruebas y documentación) y que esté preparado para ser entregado al cliente con el mínimo esfuerzo necesario. De esta manera no se deja para el final del proyecto ninguna actividad arriesgada relacionada con la entrega de requisitos. En cada iteración el equipo evoluciona el producto (hace una entrega incremental) a partir de los resultados completados en las iteraciones anteriores, añadiendo nuevos objetivos/requisitos o mejorando los que ya fueron completados. Un aspecto fundamental para guiar el desarrollo iterativo e incremental es la priorización de los objetivos/requisitos en función del valor que aportan al cliente. Entre las ventajas del modelo incremental se encuentran: 

Los clientes no esperan hasta el fin del desarrollo para utilizar el sistema. Pueden empezar a usarlo desde el primer incremento.  Los clientes pueden aclarar los requisitos que no tengan claros conforme ven las entregas del sistema.  Se disminuye el riesgo de fracaso de todo el proyecto, ya que se puede distribuir en cada incremento.  Las partes más importantes del sistema son entregadas primero, por lo cual se realizan más pruebas en estos módulos y se disminuye el riesgo de fallos. Algunas de las desventajas identificadas para este modelo son:

 

Cada incremento debe ser pequeño para limitar el riesgo (menos de 20.000 líneas). Cada incremento debe aumentar la funcionalidad.

La idea principal detrás de mejoramiento iterativo es desarrollar un sistema de programas de manera incremental, permitiéndole al desarrollador sacar ventaja de lo que se ha aprendido a lo largo del desarrollo anterior, incrementando, versiones entregables del sistema. El aprendizaje viene de dos vertientes: el desarrollo del sistema, y su uso (mientras sea posible). Los pasos claves en el proceso son comenzar con una implementación simple de los requerimientos del sistema, e iterativamente mejorar la secuencia evolutiva de versiones hasta que el sistema completo esté implementado. En cada iteración, se realizan cambios en el diseño y se agregan nuevas funcionalidades y capacidades al sistema. Básicamente este modelo se basa en dos premisas:  Los usuarios nunca saben bien que es lo que necesitan para satisfacer sus necesidades.  En el desarrollo, los procesos tienden a cambiar. Las distintas etapas y tareas que compondrán la metodología iterativa en el ámbito de la ejecución del proyecto (o roadmap de implantación), podemos desglosarla en las distintas etapas y tareas (algunas de ellas son comunes a otras metodologías). 1. Etapa Definición Se crea una versión del sistema. La meta de esta etapa es crear un producto con el que el usuario pueda interactuar, y por ende retroalimentar el proceso. Debe ofrecer una muestra de los aspectos claves del problema y proveer una solución lo suficientemente simple para ser comprendida e implementada fácilmente. Para guiar el proceso de iteración se crea una lista de control de proyecto, que contiene un historial de todas las tareas que necesitan ser realizadas. Incluye cosas como nuevas funcionalidades para ser implementadas, y areas de rediseño de la solución ya existente. Esta lista de control se revisa periódica y constantemente como resultado de la fase de análisis. Planificación :

1. Etapa Definición Todas las actividades orientadas a reconocer funcionalidades necesarias en el nuevo sistema. Diseño funcional del sistema.  Especificaciones y compatibilidad entre requerimientos y funcionalidad del sistema.  Ampliación al detalle del análisis requerimientos inicial. Levantamiento de requerimientos en detalle y consolidación con los iniciales.  Definición procesos objetivo y análisis de posibles mejoras. Objetivos y procesos a alcanzar. Reingeniería de procesos.  Análisis diferencial entre la herramienta y los procesos objetivo (Análisis GAP). Comparación entre la herramienta “tal cual” y los procesos propuestos.  Funcionalidades ajenas al core o disponible mediante extensiones o desarrollos. Necesidades

actores

Entregables PGP (WBS,

Líder proyecto Cliente Analista (ing requerimientos, ingeniero de casos de uso) Diseñador Arquitecto

Modelo del negocio ( l) Modelo análisis (

de )

(Especificacion de requerimientos, Criterios de aceptación de requerimientos, Especificación de casos de uso)

 

 

no incorporadas en la herramienta, posibilidad de inclusión a través de plugins o necesidad de customización. Diseño interfaces con otras herramientas. Integración entre core de la herramienta con aplicaciones externas. Estrategia migración datos: uso de plantillas Estudio de los datos del sistema anterior, análisis de equivalencias y grado de compatibilidad con el nuevo sistema. Uso de plantillas o asistentes de migración. Aprobación diseño funcional. Formalización y aceptación de los cambios a implementar.

Modelo Diseño (Arquitectura, Plan de Gestion de datos ( ) Lista de control (Planificacion y monitorización) ( )

2. Etapa de iteración Esta etapa involucra el rediseño e implementación de una tarea de la lista de control de proyecto, y el análisis de la versión más reciente del sistema. La meta del diseño e implementación de cualquier iteración es ser simple, directa y modular, para poder soportar el rediseño de la etapa o como una tarea añadida a la lista de control de proyecto. El código puede, en ciertos casos, representar la mayor fuente de documentación del sistema. El análisis de una iteración se basa en la retroalimentación del usuario y en el análisis de las funcionalidades disponibles del programa. Involucra el análisis de la estructura, modularidad, usabilidad, confiabilidad, eficiencia y eficacia (alcanzar las metas). La lista de control del proyecto se modifica bajo la luz de los resultados del análisis. 2. Etapa de iteración

actores

Entregables

Cliente

Plan mejoras

de

Lista control

de

Las guías primarias que guían la implementación y el análisis incluyen:  Cualquier dificultad en el diseño, codificación y prueba de una modificación debería apuntar a la necesidad de rediseñar o recodificar.  Las modificaciones deben ajustarse fácilmente a los módulos fáciles de encontrar y a los aislados. Si no es así, entonces se requiere algún grado de rediseño.  Las modificaciones a las tablas deben ser especialmente fáciles de realizar. Si dicha modificación no ocurre rápidamente, se debe aplicar algo de rediseño.  Las modificaciones deben ser más fáciles de hacer conforme avanzan las iteraciones. Si no es así, hay un problema primordial usualmente encontrado en un diseño débil o en la proliferación excesiva de parches al sistema.  Los parches normalmente deben permanecer solo por una o dos iteraciones. Se hacen necesarios para evitar el rediseño durante una fase de implementación.  La implementación existente debe ser analizada frecuentemente para determinar qué tal se ajusta a las metas del proyecto.  Las facilidades para analizar el programa deben ser utilizadas cada vez para ayudar en el análisis de implementaciones parciales.  La opinión del usuario debe ser solicitada y analizada para indicar deficiencias en la implementación referida por él.

Líder Proyecto

Diseñador Analista

Plan de configuración ( )

3. Etapa prototipado iterativo. Fase de desarrollo, ajustes, parametrización y customización incremental. Instalación entorno desarrollo. Preparación entorno desarrollos y/o pruebas. 3. Etapa prototipado iterativo Construcción iterativa  Configuración y parametrización módulos y extensiones Instalación módulos necesarios y extensiones. Configuración y parametrización.  Diseño y desarrollo funcionalidad adicional. Desarrollos adicionales al core de la herramienta. Integración sobre el estándar o como customización.  Adaptación de informes. Ajustes y adaptación impresos con imagen corporativa y personalizaciones.  Desarrollo interfaces con otras herramientas Entornos de integración con herramientas ajenas al core.  Realización de pruebas y feedback con implantador y/o fabricante. Pruebas unitarias y retroalimentación con implantadores y/o desarrolladores. Vuelta al principio y nueva iteración hasta su validación.  Instalación entorno de producción. Instalación modificaciones en entorno de producción de aquellos desarrollos validados.  Diseño, desarrollo y adaptación procesos migración de datos. Ajustes y adaptación de las plantillas y procesos para la migración de datos.  Validación por parte del cliente. Vuelta al principio y nueva iteración.

Actores Diseñador Tester Cliente Analista

Entregables Modelo de diseño Plan de pruebas (Especificaciones de casos de pruebas, ( ) Plan de mejoras (Plan de control de cambios)

Plan de configuración

Implantación (manual del sistema, despliegue) ( )

4.- Etapa preparación final Etapa definitiva para la puesta en producción del nuevo sistema. 4.- Etapa preparación final  Preparación entornos de prueba y producción. Reajustes de ambos entornos para la fase de despliegue final.  Certificación del sistema y su integración con otras herramientas. Pruebas de integración entre todos los módulos, extensiones y desarrollos adicionales.  Pruebas de rendimiento. Garantización del rendimiento y la productividad del entorno de producción.  Plan de formación y comunicación: generación documentación. Despliegue documentación operacional de los flujos de trabajo y comunicación operaciones.  Migración de datos. Migración definitiva de los datos.  Configuración de seguridad. Perfilado de los usuarios, roles y niveles de seguridad.  Aceptación del sistema. Validación y aceptación del proyecto.

Actores

Entregables

Usuario final

Plan pruebas

de

Arquitecto Tester Líder proyecto

Plan de implantación Kit pruebas (unitaria, integración, aceptación) Manual usuario ( ) Manual sistemas ( )

de

5. Etapa Go live & Support. En esta etapa se pone en marcha y se da soporte al sistema

5. Fase Go live & Support  Puesta en producción del sistema. Arranque del nuevo sistema (normalmente cierre del anterior a modo solo consulta).  Corrección de incidencias. Detección y corrección de incidencias o nuevas casuísticas no detectadas en fases previas.  Soporte a usuarios en operativa diaria. Apoyo consultores en los primeros días del arranque para resolver nuevas dudas o errores no localizados.  Activación contrato soporte, mantenimiento y cierre del proyecto. Todo el soporte adicional operativo y funcional adicional. Entrada en modo mantenimiento (por ejemplo 6 meses después).  Labores de mantenimiento y actualización del sistema. Actualizaciones del sistema QA  Sistema de pruebas paralelo al entorno de producción. Entorno réplica del entorno de producción para la realización de pruebas en paralelo de ciertos procesos críticos o no explorados.

Actores

Entregables

Analista

Plan de mejoras (Ficha de mantenimiento

Diseñador Desarrollador Tester Administrador Proyecto capacitador

Gestión de configuración Plan y kit de pruebas de regresión Plan de capacitación ( ) Plan mejoras

de