-Iteraciones cortas y grandes
-Tener una mejor comunicación durante todo el desarrollo
-Hacer entregas frecuentes con trabajos reales realizados
-Contar con información precisa del progreso
-Tener procesos apreciados por clientes, desarrolladores y gerentes
-Realizar iteraciones con los 5 pasos de las fases.
Hay 6 roles claves en este desarrollo
– Administrador de Proyecto (PM).
– Arquitecto jefe (CA)
– Programadores Senior
– Dueño de clase
– Expertos en dominios
– Roles transversales al desarrollo
Creadores
Ken Schwaber, Jeff Sutherland y Mike Beedle
Es un marco de trabajo que promueve la colaboración y la comunicación entre los integrantes del equipo de trabajo; esta metodología promueve la auto organización.
Es una técnica creada por Toyota para controlar el avance del trabajo en la creación de automóviles, pero ha sido implementada ampliamente en el desarrollo de proyectos de software, apoyando a su vez metodologías como Scrum
Kanban se basa en un sistema de señalizacion en el que se basan los temas de produccion por demandas mediante tarjetas, el objetivo es minimizar el trabajo progresivo y el stock entre procesos.
-Tareas en Desarrollo
-Lista de Tareas
-Pruebas
-Despliegue
-Terminado
Si se logra aplicar este metodo de forma correcta en los equipos de trabajo se mejorara altamante la eficiencia, se tendra control de todas las fases del proyecto y las necesidades se resolveran rapidamente.
Es una metodología orientada a aplicar mejores prácticas de ingeniería de software en el desarrollo de proyectos, mejorar la productividad en los proyectos y aumentar la calidad del desarrollo de los productos de software.
Se llama extrema por la capacidad de adaptarse al cambiar los requisitos en la marcha.
-Desarrollo iterativo e incremental
-Pruebas unitarias continuas
-Programación en parejas
-Frecuente integración del equipo de programación con el cliente
-Corrección de todos los errores
-Refactorización del código
-Propiedad del código compartida
-Simplicidad en el código
Estás metodologias estan pensadas para más tipologías de proyectos y organizaciones, destacando especialmente proyectos y empresas grandes.
Se carcateriza segun dos dimenciones
Tamaño
Criticidad
En las metodologías Crystal, proyectos grandes, que necesitan más coordinación y comunicación, se asocian con colores más oscuros. Proyectos en los que un fallo pueda causar mayores problemas, también se asocian con colores más oscuros.
Así, aparece una familia de metodologías:
-Clear, para equipos de hasta 8 personas o menos.
-Amarillo, de entre 10 y 20 personas.
-Naranja, para equipos entre 20 y 50 personas.
-Roja, entre 50 y 100 personas.
1 – Entregas frecuentes, en base a un ciclo de vida iterativo e incremental.
2 – Mejora reflexiva
3 – Comunicación osmótica.
4 – Seguridad personal.
5- Enfoque
6 – Fácil acceso a usuarios expertos.
7 – Entorno técnico con pruebas automatizadas, gestión de la configuración e integración continua.
DSDM es un método ágil que se enfoca en el ciclo de vida completo del proyecto, DSDM (formalmente conocido como Método de desarrollo dinámico de sistemas) se creó en 1994, después de que los gerentes de proyecto que usaban RAD (Desarrollo rápido de aplicaciones) buscaran más gobernanza y disciplina para esta nueva forma iterativa de trabajo
Principios
1-Centrarse en la necesidad empresarial
2-Entregar a tiempo
3-Colaborar
4-Nunca comprometa la calidad
5-Construya gradualmente a partir de cimientos firmes
6-Desarrollar iterativamente
7-Comunicarse de forma continua y clara
8-Demuestra control
Fases y etapas
1-El Pre-Proyecto:
2-El Ciclo de vida del Software
3-Estudio de Viabilidad y de Negocio.
4- Iteración de Modelo Funcional
5-Iteración de diseño y desarrollo
6-Implementación
7-El Post-Proyecto
Roles que intervienen
1-Patrocinador ejecutivo
2-Visionario
3-Ambassador User
4-Usuario asesor
5-Project Manager
6-Coordinador Técnico
7-Líder de equipo
8-Desarrollador de soluciones
9-Probador de soluciones
10-Escriba
11-Facilitador
12-Roles de Especialista
Sus principales características son: iterativo, orientado a los componentes software más que a las tareas, guiado por los riesgos y tolerante a los cambios.
Especular: Esta fase consiste en realizar una planificación tentativa del proyecto tomando en cuenta las futuras entregas que se le darán al usuario prototipos
Colaborar: es aquella en la que se construye la funcionalidad definida durante la especulación. Durante cada iteración el equipo colabora intensamente para liberar la funcionalidad planificada
Aprender: La fase final de ASD, aprender, consiste en la revisión de calidad que se realiza al final de cada ciclo
-Iniciacion del proyecto
-Planeacion de los ciclos
-Ingenieria de componentes concurrente
-Calidad del resultado desde la perspectiva del cliente.
-Calidad del resultado desde la perspectiva tecnica.
-Funcionamiento del equipo de desarrollo y las prácticas que este utiliza.
-Estatus del proyecto
Robert “Bob” Charette, planteó el concepto de desarrollo de software lean
Este método ofrece todo un marco teórico sólido y basado en la experiencia, para las prácticas ágiles de gestión. los cambios se consideran riesgos, pero si se manejan adecuadamente se pueden convertir en oportunidades que mejoren la productividad del cliente. Su principal característica es introducir un mecanismo para implementar dichos cambios.
-Eliminar los desperdicios
-Amplificar el aprendizaje
-Decidir lo más tarde posible
-Entregar tan rápido como sea posible
-Capacitar al equipo
-Construir integridad intrínseca
-Véase todo el conjunto
La versión original fue propuesta por Winston W. Royce en 1970 y posteriormente revisada por Barry Boehm en 1980 e Ian Sommerville en 1985
Este modelo ejecuta las diferentes etapas de desarrollo de forma secuencial, iniciando por el levantamiento de requisitos y continuando ordenadamente con planeación, modelado, construcción del software, pruebas y despliegue. El modelo en cascada se desarrolló tomando como base los modelos de producción de productos
-Análisis de requisitos del software
-Diseño del sistema
-Diseño del programa
-Codificación
-Pruebas y error
-Validación y Verificación del producto de software
-Mantenimiento
Ventajas
Desventajas
-Comenzar con el software con bastante rapidez.
-Estimar calendarios y presupuestos con mayor precisión.
-Lograr un nivel de satisfacción del cliente más elevado que otros enfoques, ya desde el principio.
-Alterar el diseño del proyecto en cualquier etapa es muy complicado.
-Una vez que una fase se ha completado, es casi imposible de realizar cambios.
-Es absolutamente necesario reunir todos los requisitos iniciales.
-Resulta muy difícil responder a los problemas que puedan surgir, ya que tanto la retroalimentación, como las pruebas se retrasan hasta estadios muy tardíos del desarrollo de proyecto.
-Solucionar cualquier cuestión que se plantee requiere una cantidad sustancial de tiempo, esfuerzo y dinero.
Esta metodología permite que empresas de desarrollo presenten a sus clientes prototipos de la solución que ayuden a validar la funcionalidad de la herramienta, los requisitos previamente obtenidos y realizar cambios sobre estos antes de construir la solución definitiva.
Etapas
1. Recolección y refinamiento de requisitos
2. Modelado, diseño rápido
3. Construcción del Prototipo
4. Desarrollo, evaluación del prototipo por el cliente
5. Refinamiento del prototipo
6. Producto de Ingeniería
Ventajas
-No modifica el flujo del ciclo de vida
-Reduce el riesgo de construir productos que no satisfagan las necesidades de los usuarios
-Reduce costo y aumenta la probabilidad de éxito
-Exige disponer de las herramientas adecuadas
-Este modelo es útil cuando el cliente conoce los objetivos generales para el software, pero no identifica los requisitos detallados de entrada, procesamiento o salida.
Tipos de prototipos
Desechable
Evolucionario
Elimina dudasde lo que quiere el cliente y la interfaz que le convenga
Es un modelo parcialmente construido que puede pasar de ser prototipo a ser software pero no tiene una buena documentación y calidad.
Este modelo combina el desarrollo en cascada con el modelo de construcción de prototipos. Consiste en ir generando incrementos de la funcionalidad del software haciendo entregas de funcionalidades específicas de la plataforma, conforme transcurre el tiempo.
Caractersiticas
-Los incrementos son pequeños.
-Permite una fácil administración de las tareas en cada iteración.
-La inversión se materializa a corto plazo.
-Es un modelo propicio a cambios o modificaciones.
-Se adapta a las necesidades que surjan.
Fases
1.Requerimientos
2.Definición de las tareas y las iteraciones
3.Diseño de los incrementos
4.Desarrollo del incremento
5.Validación de incrementos
6.Integración de incrementos
7.Entrega del producto
Ventajas
Con un paradigma incremental se reduce el tiempo de desarrollo inicial, ya que se implementa la funcionalidad parcial.
- También provee un impacto ventajoso frente al cliente, que es la entrega temprana de partes operativas del Software.
- El modelo proporciona todas las ventajas del modelo en cascada realimentado, reduciendo sus desventajas sólo al ámbito de cada incremento.
- Permite entregar al cliente un producto más rápido en comparación del modelo de cascada.
- Resulta más sencillo acomodar cambios al acotar el tamaño de los incrementos.
- Por su versatilidad requiere de una planeación cuidadosa tanto a nivel administrativo como técnico.
Desventajas
- El modelo Incremental no es recomendable para casos de sistemas de tiempo real, de alto nivel de seguridad, de procesamiento distribuido, y/o de alto índice de riesgos.
- Requiere de mucha planeación, tanto administrativa como técnica.
- Requiere de metas claras para conocer el estado del proyecto.
Las actividades de este modelo se conforman en una espiral, en la que cada bucle o iteración representa un conjunto de actividades. Las actividades no están fijadas a ninguna prioridad, sino que las siguientes se eligen en función del análisis de riesgo, comenzando por el bucle interior.
2 caracteristicas distintivas
Enfoque cíclico para el crecimiento incremental del grado de definición de un sistema y su implementación, mientras que disminuye su grado de riesgo.
Es un conjunto de puntos de referencia de anclaje puntual para asegurar el compromiso del participante con soluciones factibles y mutuamente satisfactorias”