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

Post on 04-Jul-2015

313 views 0 download

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

Scrum – Proceso Ágil de desarrollo de SoftwareIngenieria 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.

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.

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.

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.

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).

Scrum -Los Roles.(1/)

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

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”.

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’.

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.

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.

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.

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.

.

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.

Scrum - Roles gallina 2/2

Managers

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

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.

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

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.

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.

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.

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

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

GRACIAS.

POR SU ATENCION PRESTADA.