Las distintas metodologías para el desarrollo de un proyecto:
La primera acción ante un proyecto, hay que definir el tiempo, el dinero y los recursos. Para asegurar el éxito: poner objetivos realistas, Comprometerse con los objetivos, elegir una metodología apropiada.
En el proceso de decisión influye: Tiempo, el presupuesto, el equipo de trabajo, y la tecnología.
Existen 4 tipos de metodologías:
§ Metodologías Tradicionales
§ Metodologías Agiles
§ Metodologías Web
§ Metodologías Hibridas
Dentro de las Metodologías Tradicionales se encuentran las RUP Y MSF:
RUP: Proceso Iterativo e Incremental, centrado en la arquitectura y dirigido por casos de uso. Pretende implementar las mejores prácticas actuales en ingeniería de software.
RUP divide el proceso de desarrollo en ciclos, teniendo un producto al final de cada ciclo. Son 4 Fases: INICIO, ELABORACION, CONSTRUCCION Y TRANSICION.
Cada fase concluye con un hito bien definido donde deben tomarse ciertas decisiones.
Fase de INICIO
Se establece la oportunidad y alcance el proyecto.
Se identifican todas las entidades externas con las que se trata (actores) y se define la interacción a un alto nivel de abstracción:
§ –Identificar todos los casos de uso
§ –Describir algunos en detalle
La oportunidad del negocio incluye:
§ –Criterios de éxito
§ –Identificación de riesgos
§ –Estimación de recursos necesarios
§ –Plan de las fases incluyendo hitos
Del Producto
§ Un documento de visión general:
§ Requerimientos generales del proyecto
Características principales
§ Restricciones
§ Modelo inicial de casos de uso (10% a 20 % listos).
§ Glosario.
§ Caso de negocio:
§ Contexto
§ Criterios de éxito
§ Pronóstico financiero
§ Identificación inicial de riesgos.
§ Plan de proyecto.
§ Uno o más prototipos.
Fase de ELABORACION
Objetivos:
–Analizar el dominio del problema
–Establecer una arquitectura base sólida
–Desarrollar un plan de proyecto
–Eliminar los elementos de mayor riesgo para el desarrollo exitoso del proyecto
Producto:
Modelo de casos de uso (80% completo) con descripciones detalladas.
•Otros requerimientos no funcio-nales o no asociados a casos de uso.
•Descripción de la Arquitectura del Software.
•Un prototipo ejecutable de la arquitectura.
•Lista revisada de riesgos y del caso de negocio.
•Plan de desarrollo para el resto del proyecto.
•Un manual de usuario preliminar.
Fase de CONSTRUCCION
En esta fase todas las componentes restantes se desarrollan e incorporan al producto.
•Todo es probado en profundidad.
•El énfasis está en la producción eficiente y no ya en la creación intelectual.
•Puede hacerse construcción en paralelo, pero esto exige una planificación detallada y una arquitectura muy estable
El producto de software integrado y corriendo en la plataforma adecuada. Manuales.
Fase de TRANSICION:
El objetivo es traspasar el software desarrollado a la comunidad de usuarios.
•Una vez instalado surgirán nuevos elementos que implicarán nuevos desarrollos o ciclos.
Ventajas:
Evaluación de cada fase que permite cambios objetivos.
Funciona con los sistemas de Innovación
Seguimiento detallado de las fases.
Desventajas:
§ La evaluación de riesgos es compleja.
§ Excesiva flexibilidad para algunos proyectos
§ Nuestro cliente deberá ser capaz de describir y entender a un gran nivel de detalle para poder acordar un alcance del proyecto con el
Microsoft Solution Framework
MSF es un compendio de las mejores prácticas en cuanto a administración de proyectos se refiere.
Más que una metodología rígida de administración de proyectos, MSF es una serie de modelos que puede adaptarse a cualquier proyecto de tecnología de información.
Roles:
El modelo de equipos de MSF (MSF team model) fue desarrollado para compensar algunas de las desventajas impuestas por las estructuras jerárquicas de los equipos en los proyectos tradicionales.
Los equipos organizados bajo este modelo son pequeños y multidisciplinarios, en los cuales los miembros comparten responsabilidades y balancean las destrezas del equipo para mantenerse enfocados en el proyecto que están desarrollando.
Comparten una visión común del proyecto y se enfocan en implementar la solución, con altos estándares de calidad y deseos de aprender
Fases:
Visión y Alcances; Planificación; Desarrollo; Estabilización; Implementación.
Fase 1 -Visión y alcance
En esta fase deberían tener lugar los siguientes trabajos:
o Elaboración y aprobación del Documento de Alcance y Estrategia definitivo: En este documento quedarán definitivamente reflejadas las funcionalidades y servicios que, ineludiblemente, debe ofrecer la solución a implantar.
o Formación del Equipo de Trabajo y distribución de competencias y responsabilidades:
o Diseño de Arquitectura,
o Pruebas de Laboratorio,
o Documentación, Logística y Coordinación.
o Elaboración del Plan de Trabajo
o Se establecen fechas y contenidos para esta fase y las siguientes. Los mecanismos y protocolos de intercambio de información y coordinación deben quedar suficientemente bien establecidos y consensuados.
o Elaboración de la matriz de Riesgos y Plan de Contingencia
o Los principales riesgos detectados deben tener un plan de mitigación y actuación y revisarse con periodicidad
Fase 2 -Planificación y Prueba de Concepto
o Deben alcanzarse los siguientes objetivos e hitos:
o Documento de Planificación y Diseño de Arquitectura:
o Es donde se describen en detalle los aspectos funcionales y operativos de la nueva plataforma. Hito principal de esta fase: aprobación
o Cuenta con Versionado.
o Documento de Plan de Laboratorio -Prueba de Concepto
o Los diversos escenarios a simular, los criterios de validez, el control de incidencias y las métricas de calidad son objetivos a cubrir en este documento. Es un documento dinámico, en el que se recoge la idea y la experiencia práctica al llevarla a cabo en entorno controlado y aislado.
o La etapa de prueba de laboratorio concluye cuando el prototipo ofrece todos los servicios y funciones descritos en el Documento de Alcance y Estrategia, y su grado de estabilidad y rendimiento es considerado como "suficiente
Fase 3 –Estabilización
La solución implantada en el prototipo se pasa a un entorno real de explotación, restringido en número de usuarios y en condiciones tales que se pueda llevar un control efectivo de la situación. Los hitos y objetivos fundamentales de esta fase son:
o Selección del entorno de prueba piloto
o Gestión de Incidencias
o Revisión de la documentación final de Arquitectura
Elaboración de la documentación de Formación y Operaciones
Elaboración del Plan de Despliegue; Elaboración del Plan de Formación
Fase 4 –DESPLIEGE
Se llevarán a cabo en esta fase los planes diseñados en la anterior, principalmente el de despliegue y el de formación. Los principales trabajos e hitos a conseguir son, en este caso, además de los obvios (implantación de la plataforma, puesta en servicio de todas las funciones, formación a los usuarios y administradores), los siguientes:
Continuación con las labores de recepción de incidencias, clasificación, tratamiento, resolución y distribución de faxes o intervención on-site.
Registro de mejoras y sugerencias, funcionalidades no cubiertas y novedades a incorporar en sucesivas versiones de la plataforma, incluyendo mejoras aportadas por los fabricantes de software (nuevas versiones o Service Packs, por ejemplo)
Revisión de las Guías y manuales de usuario, rectificación de errores y obtención de los documentos de formación definitivos.
Conclusión de Ambos Sistemas:
Al inicio el desarrollo de software era artesanal en su totalidad, la fuerte necesidad de mejorar el proceso y llevar los proyectos a la meta deseada, tuvieron que importarse la concepción y fundamentos de metodologías existentes en otras áreas y adaptarlas al desarrollo de software.
Esta nueva etapa de adaptación contenía el desarrollo dividido en etapas de manera secuencial que de algo mejoraba la necesidad latente en el campo del software.
Entre las principales metodologías tradicionales tenemos los ya tan conocidos RUP y MSF entre otros, que centran su atención en llevar una documentación exhaustiva de todo el proyecto y centran su atención en cumplir con un plan de proyecto, definido todo esto, en la fase inicial del desarrollo del proyecto.
Metodologías Agiles
Nacen como respuesta a los problemas de las metodologías tradicionales; Se basa en dos aspectos puntuales, Retrasar las decisiones;
Planificación adaptativa; Dan mayor potencia al desarrollo de software a gran escala.
Los individuos y las interacciones entre ellos son más importantes que las herramientas y los procesos empleados. Es más importante crear un producto software que funcione que escribir documentación exhaustiva. La colaboración con el cliente debe prevalecer sobre la negociación de contratos.La capacidad de respuesta ante un cambio es más importante que el seguimiento estricto del plan.
Planificación Adaptativa
La planificación adaptativa permite estar preparados para el cambio ya que lo hemos introducido en nuestro proceso de desarrollo
Consiste en tomar decisiones a lo largo del proyecto, transformando el proyecto en un conjunto de proyectos pequeños.
Esta planificación a corto plazo permite tener software disponible para los clientes y además ir aprendiendo del feedback para hacer nuestra planificación más sensible
Extreme Programming (XP)
Es la más destacada de los procesos ágiles de desarrollo de software formulada por Kent Beck. La programación extrema se diferencia de las metodologías tradicionales principalmente en que pone más énfasis en la adaptabilidad que en la previsibilidad. Los defensores de XP consideran que los cambios de requisitos sobre la marcha son un aspecto natural, inevitable e incluso deseable del desarrollo de proyectos. Creen que ser capaz de adaptarse a los cambios de requisitos en cualquier punto de la vida del proyecto es una aproximación mejor y más realista que intentar definir todos los requisitos al comienzo del proyecto e invertir esfuerzos después en controlar los cambios de requisitos.
Fases en XP
nDesarrollo iterativo e incremental: pequeñas mejoras, unas tras otras.
nPruebas unitarias continuas, frecuentemente repetidas y automatizadas, incluyendo pruebas de regresión. Se aconseja escribir el código de la prueba antes de la codificación.
nProgramación por parejas: se recomienda que las tareas de desarrollo se lleven a cabo por dos personas en un mismo puesto, el código es revisado y discutido mientras se escribe.
nFrecuente interacción del equipo de programación con el cliente o usuario. Se recomienda que un representante del cliente trabaje junto al equipo de desarrollo.
nCorrección de todos los errores antes de añadir nueva funcionalidad. Hacer entregas frecuentes
Características en XP
nRefactorización del código, es decir, reescribir ciertas partes del código para aumentar su legibilidad y mantenibilidad pero sin modificar su comportamiento. Las pruebas han de garantizar que en la refactorización no se ha introducido ningún fallo.
nPropiedad del código compartida: en vez de dividir la responsabilidad en el desarrollo de cada módulo en grupos de trabajo distintos, este método promueve el que todo el personal pueda corregir y extender cualquier parte del proyecto. Las frecuentes pruebas de regresión garantizan que los posibles errores serán detectados.
nSimplicidad en el código: es la mejor manera de que las cosas funcionen. Cuando todo funcione se podrá añadir funcionalidad si es necesario. La programación extrema apuesta que en más sencillo hacer algo simple y tener un poco de trabajo extra para cambiarlo si se requiere, que realizar algo complicado y quizás nunca utilizarlo.
Ventajas:
Apropiado para entornos volátiles
Estar preparados para el cambio, significa reducir su coste.Planificación más transparente para nuestros clientes, conocen las fechas de entrega de funcionalidades. Permitirá definir en cada iteración cuales son los objetivos de la siguiente permite tener realimentación de los usuarios muy útil.
Diferencias
Metodologías Tradicionales | Metodologías Agiles |
Basadas en normas provenientes de estándares seguidos por el entorno de desarrollo | Basadas en heurísticas provenientes de prácticas de producción de código |
Cierta resistencia a los cambios | Especialmente preparados para cambios durante el proyecto |
Impuestas externamente | Impuestas internamente (por el equipo) |
Mas Roles | Pocos Roles |
Mas Artefactos | Menos Artefactos |
La arquitectura del software es esencial y se expresa mediante modelos | Menos énfasis en la arquitectura del software |
Grupos grandes y posiblemente distribuidos | Grupos pequeños (<10 integrantes) y trabajando en el mismo sitio |
Proceso mucho más controlado, con numerosas políticas/normas | Proceso menos controlado, con pocos principios. |
El cliente interactúa con el equipo de desarrollo mediante reuniones | El cliente es parte del equipo de desarrollo |
Aspectos para clasificar las diferencias
1. las diferencias del producto
2. curva de aprendizaje
3. etapa de desarrollo
Según la etapa de desarrollo
MODELOS RIGUROSOS | ETAPA | MODELOS AGILES | |
Planificación predictiva y “aislada” | Planificación | ||
Diseño flexible y Extensible + modelos + Documentación exhaustiva | Diseño | Diseño Simple: Documentación Mínima + Focalizado en la comunicación | |
Desarrollo individual con Roles y responsabilidades estrictas | Codificación | Transferencia de conocimiento: Programación en pares + conocimiento colectivo | |
Actividades de control Orientado a los hitos + Gestión miniproyectos | Pruebas Puesta en Producción | Liderazgo-Colaboración empoderamiento +auto-organización | |
No hay comentarios:
Publicar un comentario