La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Desarrollo de software innovador con métodos ágiles.

Presentaciones similares


Presentación del tema: "Desarrollo de software innovador con métodos ágiles."— Transcripción de la presentación:

1 Desarrollo de software innovador con métodos ágiles

2 Definir requerimientos de clientes, dirección y alcance del Producto Investigar, definir visión del Producto Crear el producto Programación Diseñar del Producto Escribir especificaciones técnicas detalladas, definir fechas para las siguientes fases Corregir bugs Preparar el producto para su release Vender el producto y darle soporte Obtener feedback de los clientes Planificación Diseño Implementación Estabilización Release Desarrollo de software tradicional (en cascada)

3

4

5 La mayoría de los proyectos de desarrollo de software son COMPLEJOS... Simple Complejo Anarquía Complicado Tecnología utilizada Requerimientos Lejos de Acuerdo Cerca de Acuerdo Cerca de Certeza Lejos de Certeza Fuente: Strategic Management and Organizational Dynamics by Ralph Stacey in Agile Software Development with Scrum by Ken Schwaber and Mike Beedle.

6 Tecnología utilizada Requerimientos Lejos de Acuerdo Cerca de Acuerdo Cerca de Certeza Lejos de Certeza Seres Humanos... y las personas contribuimos a que esa complejidad aumente.

7 Podemos adoptar con éxito un modelo pre-definido para controlar un proceso cuando entendemos bien los mecanismos subyacentes de ese proceso Pero el proceso de desarrollar software innovador es muy complejo y generalmente desconocido al comienzo de los proyectos... cuando un proceso es muy complejo, la mejor elección es aplicar conceptos y controles empíricos. Fuente: B. A. Ogunnaike and W. H. Ray, Process Dynamics, Modeling, and Control

8 Control Empírico de Procesos

9 Ejemplo: Code Review Varios programadores codifican, conociendo los estándares de la industria Codificadores experimentados revisan Se hacen ajustes según los comentarios recibidos

10 Manifiesto Agil

11 Scrum es un proceso ágil que nos permite centrarnos en ofrecer el más alto valor de negocio en el menor tiempo. Nos permite rápidamente y en repetidas ocasiones inspeccionar software real de trabajo (cada dos semanas o un mes). El negocio fija las prioridades. Los equipos se auto-organizan a fin de determinar la mejor manera de entregar las funcionalidades de más alta prioridad. Cada dos semanas o un mes, cualquiera puede ver el software real funcionando y decidir si liberarlo o seguir mejorandolo en otro sprint. Scrum

12 Equipos auto-organizados El producto avanza en una serie de Sprints" de dos semanas a un mes de duración No hay prácticas de ingeniería prescritas Pero sí reglas (pocas y muy claras) que se aplican con férrea disciplina Existe una lista priorizada de requerimientos (Product Backlog) Formato de user stories Ordenados por valor de negocios El Team define el cómo y estima los tiempos Características de Scrum

13 Roles

14 Product Owner Define las funcionalidades del producto Decide sobre las fechas y contenidos de los releases Es responsable por la rentabilidad del producto (ROI) Prioriza funcionalidades de acuerdo al valor del mercado/negocio Ajusta funcionalidades y prioridades en cada iteración si es necesario

15 ScrumMaster Representa a la gestión del proyecto Responsable de promover los valores y prácticas de Scrum Remueve impedimentos Se asegura de que el equipo es completamente funcional y productivo Permite la estrecha cooperación en todos los roles y funciones Escudo del equipo de interferencias externas

16 Team Típicamente de 5 a 9 personas Multi-funcional: Programadores, testers, analistas, diseñadores, etc. Integrantes full-time Puede haber excepciones Los equipos son auto-organizativos Idealmente, no existen títulos pero a veces se utilizan de acuerdo a la organización

17 Reuniones Planificación del Sprint Stand-up meeting (Daily Scrum) Qué hice ayer / Qué voy a hacer hoy / Impedimentos Sprint Demo (Review) Sprint Retrospective

18 Fuente:

19 Principios de Lean Software Development

20 a) Investigar en Internet acerca de los siguientes métodos ágiles de desarrollo de software: Peer Programming (Programación de a pares) XP – Extreme Programming TDD – Test-Driven Development BDD – Business-Driven Development Kanban b) Para cada método ágil mencionado escribir una definición breve que permita explicarlo a otra persona en 2 minutos Test del elevador c) Elegir uno de los métodos y explicarlo a través de un dibujo, diagrama, infografía, foto, collage de imágenes, o similar. Trabajo práctico de métodos ágiles


Descargar ppt "Desarrollo de software innovador con métodos ágiles."

Presentaciones similares


Anuncios Google