Ingenieria de software scrum – proceso ágil de desarrollo de software

24
Scrum – Proceso Ágil de desarrollo de Software Ingenieria de Software.

Transcript of Ingenieria de software scrum – proceso ágil de desarrollo de software

Page 1: Ingenieria de software scrum – proceso ágil de desarrollo de software

Scrum – Proceso Ágil de desarrollo de SoftwareIngenieria de Software.

Page 2: Ingenieria de software scrum – proceso ágil de desarrollo de software

Scrum. - El Origen. (1/2)

Scrum es una metodología ágil de desarrollo de proyectos que toma su nombre y principios de los estudios realizados sobre nuevas prácticas de producción por Hirotaka Takeuchi e Ikujijo Nonaka a mediados de los 80.

Page 3: Ingenieria de software scrum – proceso ágil de desarrollo de software

Scrum. - El Origen. (2/2)

Surgió como modelo para el desarrollo de productos tecnológicos, también se emplea en entornos que trabajan con requisitos inestables y que requieren rapidez y flexibilidad; situaciones frecuentes en el desarrollo de determinados sistemas de software.

Page 4: Ingenieria de software scrum – proceso ágil de desarrollo de software

ScrumScrum es una

metodología de desarrollo muy simple, que requiere trabajo duro porque no se basa en el seguimiento de un plan, sino en la adaptación continua a las circunstancias de la evolución del proyecto.

Page 5: Ingenieria de software scrum – proceso ágil de desarrollo de software

Scrum Caracteristicas.(1/2)

➔ Es un modo de desarrollo de carácter adaptable más que predictivo.

➔ Orientado a las personas más que a los procesos.

➔ Scrum permite la creación de equipos autoorganizados impulsando la co-localización de todos los miembros del equipo.

Page 6: Ingenieria de software scrum – proceso ágil de desarrollo de software

Scrum Caracteristicas.(2/2)

➔ Scrum adopta una aproximación pragmática, aceptando que el problema no puede ser completamente entendido o definido.

➔ Durante un proyecto los clientes pueden cambiar de idea sobre lo que quieren y necesitan (a menudo llamado requirements churn).

Page 7: Ingenieria de software scrum – proceso ágil de desarrollo de software

Scrum -Los Roles.(1/)

En Scrum se definen varios roles, estos están divididos en dos grupos: cerdos y gallinas.

Page 8: Ingenieria de software scrum – proceso ágil de desarrollo de software

Scrum

Un cerdo y una gallina se encuentran en la calle. La gallina mira al cerdo y dice: “Hey, ¿por qué no abrimos un restaurante?” El cerdo mira a la gallina y le dice: “Buena idea, ¿cómo se llamaría el restaurante?” La gallina piensa un poco y contesta: “¿Por qué no lo llamamos “Huevos con jamón?” “Lo siento pero no”, dice el cerdo, “Tú sólo estarías involucrada mientras que yo estaría comprometido”.

Page 9: Ingenieria de software scrum – proceso ágil de desarrollo de software

ScrumDe esta forma, los ‘cerdos’ están comprometidos a

través de sus aportes ‘directos’ en la construcción de software, mientras que las ‘gallinas’ están involucradas a través de sus aportes ‘indirectos’.

Page 10: Ingenieria de software scrum – proceso ágil de desarrollo de software

Scrum Product Owner

El Product Owner representa la voz del cliente. Se asegura de que el equipo Scrum trabaja de forma adecuada desde la perspectiva del negocio. El Product Owner escribe historias de usuario, las prioriza, y las coloca en el Product Backlog.

Page 11: Ingenieria de software scrum – proceso ágil de desarrollo de software

Scrum Product Owner > El Product Backlog

Es la lista de historias de usuario que se van a incluir en el producto. No es necesario que todas las historias estén escritas antes de comenzar un desarrollo, basta con escribir al principio las más importantes, a tener algo con lo que empezar. El product backlog es una lista viva según avanza el proyecto se van incluyendo nuevas historia.

Page 12: Ingenieria de software scrum – proceso ágil de desarrollo de software

Scrum ScrumMaster (o Facilitador)

El Scrum es facilitado por un ScrumMaster, cuyo trabajo primario es eliminar los obstáculos que impiden que el equipo alcance el objetivo del sprint. El ScrumMaster no es el líder del equipo (porque ellos se auto-organizan). El ScrumMaster se asegura de que el proceso Scrum se utiliza como es debido. El ScrumMaster es el que hace que las reglas se cumplan.

Page 13: Ingenieria de software scrum – proceso ágil de desarrollo de software

Scrum- scrum team (Equipo)

El equipo tiene la responsabilidad de entregar el producto. Un pequeño equipo de 5 a 9 personas con las habilidades transversales necesarias para realizar el trabajo (diseñador, desarrollador, etc).

Cada integrante trabaja en conjunto para completar las tareas que fueron comprometidas en conjunto para ser desarrolladas durante el Sprint.

.

Page 14: Ingenieria de software scrum – proceso ágil de desarrollo de software

Scrum - Roles gallina (1/2)

Un aspecto importante de una aproximación ágil es la práctica de involucrar en el proceso a los usuarios, expertos del negocio y otros interesados (stakeholders).

Usuarios: es el destinatario final del producto. Stakeholders (Clientes, Proveedores, Inversores) Se refiere a la gente que hace posible el proyecto y para quienes el proyecto producirá el beneficio acordado que lo justifica.

Page 15: Ingenieria de software scrum – proceso ágil de desarrollo de software

Scrum - Roles gallina 2/2

Managers

Es la gente que establece el ambiente para el desarrollo del producto.

Page 16: Ingenieria de software scrum – proceso ágil de desarrollo de software

Scrum - Desarrollo incremental

Durante el proyecto, las personas implicadas no trabajan con diseños o abstracciones.

El desarrollo incremental implica que al final de cada iteración se dispone de una parte del producto operativa que se puede inspeccionar y evaluar.

Page 17: Ingenieria de software scrum – proceso ágil de desarrollo de software

Scrum -Desarrollo evolutivo

En Scrum se toma a la inestabilidad como una premisa, y se adoptan técnicas de trabajo para permitir esa evolución sin degradar la calidad de la arquitectura que se irá generando durante el desarrollo.

El desarrollo Scrum va generando el diseño y la arquitectura final de forma evolutiva durante todo el proyecto. No los considera como productos que deban realizarse en la primera “fase” del proyecto

Page 18: Ingenieria de software scrum – proceso ágil de desarrollo de software

Scrum-Auto-organización

Durante el desarrollo de un proyecto son muchos los factores impredecibles que surgen en todas las áreas y niveles.

En Scrum los equipos son auto-organizados (no auto-dirigidos), con margen de decisión suficiente para tomar las decisiones que consideren oportunas.

Page 19: Ingenieria de software scrum – proceso ágil de desarrollo de software

Scrum-Visión general del proceso

Scrum denomina “sprint” a cada iteración de desarrollo y recomienda realizarlas con duraciones de 30 días. El sprint es por tanto el núcleo central que proporciona la base de desarrollo iterativo e incremental.

Page 20: Ingenieria de software scrum – proceso ágil de desarrollo de software

Scrum-Las reuniones

● Planificación de sprint: Jornada de trabajo previa al inicio de cada sprint en la que se determina cuál va a ser el trabajo y los objetivos que se deben cumplir en esa iteración.

● Reunión diaria: Breve revisión del equipo del trabajo realizado hasta la fecha y la previsión para el día siguiente.

● Revisión de sprint: Análisis y revisión del incremento generado.

Page 21: Ingenieria de software scrum – proceso ágil de desarrollo de software

Scrum-Los elementos ● Pila del producto: lista de requisitos de usuario

que se origina con la visión inicial del producto y va creciendo y evolucionando durante el desarrollo.

● Pila del sprint: Lista de los trabajos que debe realizar el equipo durante el sprint para generar el incremento previsto.

● Incremento: Resultado de cada sprint

Page 22: Ingenieria de software scrum – proceso ágil de desarrollo de software

Scrum-valores

La carrocería sin motor, sin los valores que dan sentido al desarrollo ágil, no funciona. ● Delegación de atribuciones (empowerment) al equipo para

que pueda auto-organizarse y tomar las decisiones sobre el desarrollo.

● Respeto entre las personas. Los miembros del equipo deben confiar entre ellos y respetar sus conocimientos y capacidades.

● Trabajo centrado en el desarrollo de lo comprometido Información, transparencia y visibilidad del desarrollo del proyecto

Page 23: Ingenieria de software scrum – proceso ágil de desarrollo de software
Page 24: Ingenieria de software scrum – proceso ágil de desarrollo de software

GRACIAS.

POR SU ATENCION PRESTADA.