desarrollo de software innovador con métodos ágiles

20
Desarrollo de software innovador con métodos ágiles

Upload: bienvenida-montes

Post on 06-Jan-2015

15 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Desarrollo de software innovador con métodos ágiles

Desarrollo de software innovador con métodos

ágiles

Page 2: Desarrollo de software innovador con métodos ágiles

http://ww

Definir requerimientos de clientes, dirección y alcance del ProductoInvestigar, definir visión del Producto

“Crear” el productoProgramación

Diseñar del ProductoEscribir especificaciones técnicas detalladas, definir fechas para las

siguientes fases

Corregir bugsPreparar el producto para su release

Vender el producto y darle soporteObtener feedback de los clientes

Planificación

Diseño

Implementación

Estabilización

Release

Desarrollo de software tradicional (en cascada)

Page 3: Desarrollo de software innovador con métodos ágiles
Page 4: Desarrollo de software innovador con métodos ágiles
Page 5: Desarrollo de software innovador con métodos ágiles

La mayoría de los proyectos de desarrollo de software son COMPLEJOS . . .

Simple

ComplejoAnarquía

Complicado

Tecnología utilizada

Req

ueri

mie

nto

sLejos de Acuerdo

Cerca deAcuerdo

Cerc

a d

eC

ert

eza

Lejo

s d

eC

ert

eza

Fuente: Strategic Management and Organizational Dynamics by Ralph Stacey in Agile Software Development with Scrum by Ken Schwaber and Mike Beedle.

Page 6: Desarrollo de software innovador con métodos ágiles

Tecnología utilizada

Req

ueri

mie

nto

s

Lejos de Acuerdo

Cerca deAcuerdo

Cerc

a d

eC

ert

eza

Lejo

s d

eC

ert

eza

Sere

s Hum

anos

. . . y las personas contribuimos a que esa complejidad aumente.

Page 7: Desarrollo de software innovador con métodos ágiles

• 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

Page 8: Desarrollo de software innovador con métodos ágiles

Control Empírico de Procesos

Page 9: Desarrollo de software innovador con métodos ágiles

Control Empírico de Procesos

Ejemplo: Code Review

Varios programadores codifican, conociendo los estándares de la industria

Codificadores experimentados revisan

Se hacen ajustes según los comentarios recibidos

Page 10: Desarrollo de software innovador con métodos ágiles

Manifiesto Agil

Page 11: Desarrollo de software innovador con métodos ágiles

•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

Page 12: Desarrollo de software innovador con métodos ágiles

• 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

Page 13: Desarrollo de software innovador con métodos ágiles

Roles

Page 14: Desarrollo de software innovador con métodos ágiles

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 

Page 15: Desarrollo de software innovador con métodos ágiles

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

Page 16: Desarrollo de software innovador con métodos ágiles

Team

Típicamente de 5 a 9 personas

Multi-funcional: Programadores, testers, analistas, diseñadores, etc.

Integrantes full-timePuede haber excepciones

Los equipos son auto-organizativos

Idealmente, no existen títulos pero a veces se utilizan de acuerdo a la organización

Page 17: Desarrollo de software innovador con métodos ágiles

Reuniones

• Planificación del Sprint

• Stand-up meeting (Daily Scrum)

• Qué hice ayer / Qué voy a hacer hoy / Impedimentos

• Sprint Demo (Review)

• Sprint Retrospective

Page 18: Desarrollo de software innovador con métodos ágiles

Fuente: www.mountaingoatsoftware.com/scrum

Page 19: Desarrollo de software innovador con métodos ágiles

Principios de Lean Software Development

Page 20: Desarrollo de software innovador con métodos ágiles

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