miércoles, 2 de mayo de 2012

Metodologías Robustas Vs. Metodologías Agiles


Metodologías Robustas Vs. Metodologías Agiles


El éxito del producto depende en gran parte de la metodología escogida por el equipo, ya sea tradicional o ágil, donde los equipos maximicen su potencial, aumenten la calidad del producto con los recursos y tiempos establecidos. 

Metodologías Robustas
Metodologías Agiles
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.

eXtreme Programming
Scrum.
 Crystal Clear
Dynamic Systems Development Method
Feature Driven Development
Adaptive Software Development
Evaluación en cada fase que permite cambios de objetivos

Entrega continua y en plazos breves de software funcional
Seguimiento detallado en cada una de las fases.
Funciona bien en proyectos de innovación

Atención continua a la excelencia técnica y al buen diseño


La evaluación de riesgos es compleja

Importancia de la simplicidad, eliminado el trabajo innecesario
Nuestro cliente deberá ser capaz de describir y entender a un gran nivel de detalle para poder acordar un alcance del proyecto con él.
El proceso de desarrollo está encorsetado por documentos firmados.

Trabajo conjunto entre el cliente y el equipo de desarrollo
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
Existen unas costosas fases previas de especificación de requisitos, análisis y diseño. La corrección durante el desarrollo de errores introducidos en estas fases será costosa, es decir, se pierde flexibilidad ante los cambios
Especialmente preparados para cambios durante el proyecto
Impuestas externamente

Impuestas internamente (por el equipo)
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
Más artefactos

Pocos artefactos
Más roles

Pocos roles
Grupos grandes y posiblemente distribuidos
Grupos pequeños (<10 integrantes) y trabajando en el mismo sitio

La arquitectura del software es esencial y se
expresa mediante modelos

Menos énfasis en la arquitectura del software
Existe un contrato prefijado
No existe contrato tradicional o al menos es bastante flexible

Diferencias por etapas entre las Metodologías Robustas y Agiles:
Metodologías Robustas            
Etapas
Metodologías Agiles



Planificación predictiva y “aislada”


Análisis de requerimientos


Planificación




Planificación adpatativa:Entregas frecuentes + colaboración del cliente

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
Por las Características del Proyecto:
Metodología
Tamaño del Proceso
Tamaño del Equipo
Complejidad del Problema
RUP

Medio / Extenso
Medio / Extenso
Medio / Alto
ICONIX

Pequeño / Medio
Pequeño / Medio
Pequeño / Medio
XP

Pequeño / Medio
Pequeño
Medio / Alto
SCRUM

Pequeño / Medio
Pequeño
Medio / Alto








1 comentario: