Вы находитесь на странице: 1из 47

Metodologas actuales

Metodologas giles

eXtreme Programming

Ingeniera del Software II

ISOFT II eXtreme Programming


Metodologas actuales
Metodologas giles

1 Metodologas actuales

2 Metodologas giles
eXtreme Programming
Prcticas
Test Driven Development
Crtica
Conclusiones

ISOFT II eXtreme Programming


Metodologas actuales
Metodologas giles

1 Metodologas actuales

2 Metodologas giles
eXtreme Programming
Prcticas
Test Driven Development
Crtica
Conclusiones

ISOFT II eXtreme Programming


Metodologas actuales
Metodologas giles

Status actual de los proyectos de software

Falta de entendimiento del negocio.

Cambios en el negocio.

Altos costos de mantenimiento.

Gran cantidad de defectos.

Inestabilidad de las personas.

Retrasos en las entregas.

Proyectos cancelados.

ISOFT II eXtreme Programming


Metodologas actuales
Metodologas giles

Status actual de los proyectos de software

Falta de entendimiento del negocio.

Cambios en el negocio.

Altos costos de mantenimiento.

Gran cantidad de defectos.

Inestabilidad de las personas.

Retrasos en las entregas.

Proyectos cancelados.

ISOFT II eXtreme Programming


Metodologas actuales
Metodologas giles

Problemas de las metodologas tradicionales

Pretenden

imponer un modelo predecible sobre una entidad compleja.

minimizar o restringir el cambio en todas las fases.

congelar los requerimientos en forma temprana.

congelar la arquitectura y diseo en las primeras fases del ciclo


de vida.

ISOFT II eXtreme Programming


Metodologas actuales
Metodologas giles

Problemas de las metodologas tradicionales (cont.)

Son orientadas a la documentacin.

Priorizan a los procesos por sobre las personas.

Plantean la construccin en trminos de todo o nada.

No incorporan feedback sobre el proceso.

ISOFT II eXtreme Programming


Metodologas actuales
Metodologas giles

Metodologas giles

No evitar el cambio sino incorporarlo al ciclo de vida.

Controlar el costo del cambio.

Decidir en el momento adecuado (en particular, no antes).

OJO! No aplica a todos los cambios.

ISOFT II eXtreme Programming


eXtreme Programming
Metodologas actuales Test Driven Development
Metodologas giles Crtica
Conclusiones

1 Metodologas actuales

2 Metodologas giles
eXtreme Programming
Prcticas
Test Driven Development
Crtica
Conclusiones

ISOFT II eXtreme Programming


eXtreme Programming
Metodologas actuales Test Driven Development
Metodologas giles Crtica
Conclusiones

Metodologas giles

Personas e interacciones sobre procesos y herramientas.

Software funcionando por sobre documentacin clara.

Cliente involucrado en vez de negociacin contractual.

Responder al cambio en vez de seguir un plan.

ISOFT II eXtreme Programming


eXtreme Programming
Metodologas actuales Test Driven Development
Metodologas giles Crtica
Conclusiones

Metodologas giles

Personas e interacciones sobre procesos y herramientas.

Software funcionando por sobre documentacin clara.

Cliente involucrado en vez de negociacin contractual.

Responder al cambio en vez de seguir un plan.

En tanto se valoricen los tems de la izquierda, valoraremos ms los


tems de la derecha.

ISOFT II eXtreme Programming


eXtreme Programming
Metodologas actuales Test Driven Development
Metodologas giles Crtica
Conclusiones

Metodologas giles - Cmo?

Producir el primer delivery en semanas para tener rpido


feedback.

Soluciones simples, es decir menos cambio para hacer cambios.

Mejorar la calidad constantemente.

Test continuo, para detectar errores antes.

ISOFT II eXtreme Programming


eXtreme Programming
Metodologas actuales Test Driven Development
Metodologas giles Crtica
Conclusiones

Metodologas giles - Cmo? (cont.)

Control del proceso

Feedback frecuente para conocer la situacin actual en


intervalos regulares.
El tiempo de iteracin debe ser el ms corto posible (entre 2
semanas y 1 mes).
El cliente tiene mayor control sobre el proyecto.
El cliente y el equipo de desarrollo evalan permanentemente
el progreso.
El cliente puede cambiar las funcionalidades del software de
acuerdo a los cambios en el negocio.

ISOFT II eXtreme Programming


eXtreme Programming
Metodologas actuales Test Driven Development
Metodologas giles Crtica
Conclusiones

Metodologas giles - Cmo? (cont.)

Control del proceso

Feedback frecuente para conocer la situacin actual en


intervalos regulares.
El tiempo de iteracin debe ser el ms corto posible (entre 2
semanas y 1 mes).
El cliente tiene mayor control sobre el proyecto.
El cliente y el equipo de desarrollo evalan permanentemente
el progreso.
El cliente puede cambiar las funcionalidades del software de
acuerdo a los cambios en el negocio.

ISOFT II eXtreme Programming


eXtreme Programming
Metodologas actuales Test Driven Development
Metodologas giles Crtica
Conclusiones

Metodologas giles - Cmo? (cont.)

Control del proceso

Feedback frecuente para conocer la situacin actual en


intervalos regulares.
El tiempo de iteracin debe ser el ms corto posible (entre 2
semanas y 1 mes).
El cliente tiene mayor control sobre el proyecto.
El cliente y el equipo de desarrollo evalan permanentemente
el progreso.
El cliente puede cambiar las funcionalidades del software de
acuerdo a los cambios en el negocio.

ISOFT II eXtreme Programming


eXtreme Programming
Metodologas actuales Test Driven Development
Metodologas giles Crtica
Conclusiones

Metodologas giles - Cmo? (cont.)

Control del proceso

Feedback frecuente para conocer la situacin actual en


intervalos regulares.
El tiempo de iteracin debe ser el ms corto posible (entre 2
semanas y 1 mes).
El cliente tiene mayor control sobre el proyecto.
El cliente y el equipo de desarrollo evalan permanentemente
el progreso.
El cliente puede cambiar las funcionalidades del software de
acuerdo a los cambios en el negocio.

ISOFT II eXtreme Programming


eXtreme Programming
Metodologas actuales Test Driven Development
Metodologas giles Crtica
Conclusiones

eXtreme Programming

Un poco de historia. . .

Surge en la comunidad Smalltalk (1980s - Kent Beck, Ward


Cunningham).
1996  Beck hace auditora del proyecto de liquidacin de sueldos
de Chrysler. Debido a la baja calidad del cdigo entregado, Beck
sugiri desechar todo el cdigo y empezar de cero.
Pone en marcha una serie de prcticas aprendidas anteriormente, y
se van renando hasta convertirse en lo que seran las bases de XP.

ISOFT II eXtreme Programming


eXtreme Programming
Metodologas actuales Test Driven Development
Metodologas giles Crtica
Conclusiones

eXtreme Programming

Un poco de historia - los valores

Communication

Simplicity

Feedback

Courage

Respect

ISOFT II eXtreme Programming


eXtreme Programming
Metodologas actuales Test Driven Development
Metodologas giles Crtica
Conclusiones

eXtreme Programming - Roles

Los roles reemplazan la visin clsica de responsabilidades. Todo


miembro del equipo podra tomar cualquiera de los roles en un
momento dado.

Desarrollador  escribe cdigo, tests; comunica.

Cliente  escribe stories, acceptance tests, prioriza.

Tester  complemento del desarrollador si es necesario.

Tracker  seguimiento de estimaciones, mejoras al proceso.

Consultor  miembro externo, aporta conocimiento tcnico.

Coach/Instructor  responsable del proceso ( la


ScrumMaster).

Manager  tomador de decisiones.

ISOFT II eXtreme Programming


eXtreme Programming
Metodologas actuales Test Driven Development
Metodologas giles Crtica
Conclusiones

eXtreme Programming - Prcticas


Planning Process (Planning Game).

Releases chicos e iteraciones cortas.

Metforas (acuerdo en nombres/descripciones).

Diseo simple.

Testing continuo.

Refactoring.

TDD (Test Driven Development).

Pair programming.

Ownership colectivo.

Integracin continua.

Semana de 40 horas.

Cliente on-site.

Estndar de cdigo.

ISOFT II eXtreme Programming


eXtreme Programming
Metodologas actuales Test Driven Development
Metodologas giles Crtica
Conclusiones

eXtreme Programming - Prcticas


Planning Process (Planning Game).

Releases chicos e iteraciones cortas.

Metforas (acuerdo en nombres/descripciones).

Diseo simple.

Testing continuo.

Refactoring.

TDD (Test Driven Development).

Pair programming.

Ownership colectivo.

Integracin continua.

Semana de 40 horas.

Cliente on-site.

Estndar de cdigo.

ISOFT II eXtreme Programming


eXtreme Programming
Metodologas actuales Test Driven Development
Metodologas giles Crtica
Conclusiones

eXtreme Programming - Prcticas

ISOFT II eXtreme Programming


eXtreme Programming
Metodologas actuales Test Driven Development
Metodologas giles Crtica
Conclusiones

eXtreme Programming - Planning game

Release planning
Exploration - user stories, prioridades del cliente.
Commitment - alcance del release.
Steering - ajustes del plan; agregar/quitar requerimientos.
Iteration planning
Exploration - user stories task cards.
Commitment - asignacin de tareas a miembros del equipo,
estimacin.
Steering - iteracin de trabajo y contraste con user stories.

ISOFT II eXtreme Programming


eXtreme Programming
Metodologas actuales Test Driven Development
Metodologas giles Crtica
Conclusiones

eXtreme Programming - Planning game

Release planning
Exploration - user stories, prioridades del cliente.
Commitment - alcance del release.
Steering - ajustes del plan; agregar/quitar requerimientos.
Iteration planning
Exploration - user stories task cards.
Commitment - asignacin de tareas a miembros del equipo,
estimacin.
Steering - iteracin de trabajo y contraste con user stories.

ISOFT II eXtreme Programming


eXtreme Programming
Metodologas actuales Test Driven Development
Metodologas giles Crtica
Conclusiones

eXtreme Programming - Simple Design

No pensar ni agregar nada antes de tiempo. Mantener todo tan


simple como sea posible, satisfaciendo el requerimiento y aceptar el
cambio en prximas iteraciones. No pensar mejor que el cliente.

YAGNI - You aren't gonna need it.

KISS - Keep it simple, stupid!

ISOFT II eXtreme Programming


eXtreme Programming
Metodologas actuales Test Driven Development
Metodologas giles Crtica
Conclusiones

eXtreme Programming - Simple Design

No pensar ni agregar nada antes de tiempo. Mantener todo tan


simple como sea posible, satisfaciendo el requerimiento y aceptar el
cambio en prximas iteraciones. No pensar mejor que el cliente.

Acrnimos graciosos. . .

YAGNI - You aren't gonna need it.

KISS - Keep it simple, stupid!

ISOFT II eXtreme Programming


eXtreme Programming
Metodologas actuales Test Driven Development
Metodologas giles Crtica
Conclusiones

eXtreme Programming - Simple Design

No pensar ni agregar nada antes de tiempo. Mantener todo tan


simple como sea posible, satisfaciendo el requerimiento y aceptar el
cambio en prximas iteraciones. No pensar mejor que el cliente.

Acrnimos graciosos. . .

YAGNI - You aren't gonna need it.

KISS - Keep it simple, stupid!

ISOFT II eXtreme Programming


eXtreme Programming
Metodologas actuales Test Driven Development
Metodologas giles Crtica
Conclusiones

eXtreme Programming - Testing continuo

El testing debe verse como una parte integral del proceso de


desarrollo, y el mismo desarrollador debe estar ntimamente
involucrado en l.

Hoy en da sobran herramientas para llevarlo a cabo (JUnit, NUnit,


etc.), pero voluntad. . . El ideal es mantener un ritmo sostenible de
implementacin de funcionalidad test. Ms de esto en TDD.

ISOFT II eXtreme Programming


eXtreme Programming
Metodologas actuales Test Driven Development
Metodologas giles Crtica
Conclusiones

eXtreme Programming - Pair programming

Dos miembros del equipo trabajando en una misma mquina:

Uno se ocupa de los detalles del cdigo en s, tiene el control


de la mquina.

El otro mantiene la mirada en el contexto, revisa el cdigo,


sugiere cambios, etc.

ISOFT II eXtreme Programming


eXtreme Programming
Metodologas actuales Test Driven Development
Metodologas giles Crtica
Conclusiones

eXtreme Programming - Pair programming

Dos miembros del equipo trabajando en una misma mquina:

Uno se ocupa de los detalles del cdigo en s, tiene el control


de la mquina.

El otro mantiene la mirada en el contexto, revisa el cdigo,


sugiere cambios, etc.

Los roles deben ir cambiando sucesivamente en una misma


iteracin. Adems, los pares deben trabajar en distintos problemas
dentro de la misma iteracin, incluso armando y desarmando pares
Ownership colectivo.

ISOFT II eXtreme Programming


eXtreme Programming
Metodologas actuales Test Driven Development
Metodologas giles Crtica
Conclusiones

eXtreme Programming - Integracin continua

Una herramienta y un buen mantenimiento de source control son


vitales  la comunicacin de las personas es vital.
Todos los integrantes del equipo deben trabajar constantemente
sobre la ms reciente versin de todo lo implementado.
No sirve de nada si uno se pasa todo el da con una solucin
maravillosa a un problema si despus la integracin es muy difcil o
imposible. . .

ISOFT II eXtreme Programming


eXtreme Programming
Metodologas actuales Test Driven Development
Metodologas giles Crtica
Conclusiones

TDD - Test-Driven Development


Es un hecho  los desarrolladores no suelen testear.

Solucin: forzar el test antes de la implementacin.

Enunciar claramente un comportamiento lo ms simple y


pequeo posible del story que se est implementando.

Escribir un test que lo valide.

Correr todos los tests que tenemos al momento: el nuevo falla.

Escribir el cdigo ms simple que haga pasar el test.

Correr los tests nuevamente: todos pasan.

Refactoreo + retesteo.

Repeat!

ISOFT II eXtreme Programming


eXtreme Programming
Metodologas actuales Test Driven Development
Metodologas giles Crtica
Conclusiones

TDD - Test-Driven Development


Es un hecho  los desarrolladores no suelen testear.

Solucin: forzar el test antes de la implementacin.

Enunciar claramente un comportamiento lo ms simple y


pequeo posible del story que se est implementando.

Escribir un test que lo valide.

Correr todos los tests que tenemos al momento: el nuevo falla.

Escribir el cdigo ms simple que haga pasar el test.

Correr los tests nuevamente: todos pasan.

Refactoreo + retesteo.

Repeat!

ISOFT II eXtreme Programming


eXtreme Programming
Metodologas actuales Test Driven Development
Metodologas giles Crtica
Conclusiones

TDD - Test-Driven Development


Es un hecho  los desarrolladores no suelen testear.

Solucin: forzar el test antes de la implementacin.

Enunciar claramente un comportamiento lo ms simple y


pequeo posible del story que se est implementando.

Escribir un test que lo valide.

Correr todos los tests que tenemos al momento: el nuevo falla.

Escribir el cdigo ms simple que haga pasar el test.

Correr los tests nuevamente: todos pasan.

Refactoreo + retesteo.

Repeat!

ISOFT II eXtreme Programming


eXtreme Programming
Metodologas actuales Test Driven Development
Metodologas giles Crtica
Conclusiones

TDD - Test-Driven Development


Es un hecho  los desarrolladores no suelen testear.

Solucin: forzar el test antes de la implementacin.

Enunciar claramente un comportamiento lo ms simple y


pequeo posible del story que se est implementando.

Escribir un test que lo valide.

Correr todos los tests que tenemos al momento: el nuevo falla.

Escribir el cdigo ms simple que haga pasar el test.

Correr los tests nuevamente: todos pasan.

Refactoreo + retesteo.

Repeat!

ISOFT II eXtreme Programming


eXtreme Programming
Metodologas actuales Test Driven Development
Metodologas giles Crtica
Conclusiones

TDD - Test-Driven Development


Es un hecho  los desarrolladores no suelen testear.

Solucin: forzar el test antes de la implementacin.

Enunciar claramente un comportamiento lo ms simple y


pequeo posible del story que se est implementando.

Escribir un test que lo valide.

Correr todos los tests que tenemos al momento: el nuevo falla.

Escribir el cdigo ms simple que haga pasar el test.

Correr los tests nuevamente: todos pasan.

Refactoreo + retesteo.

Repeat!

ISOFT II eXtreme Programming


eXtreme Programming
Metodologas actuales Test Driven Development
Metodologas giles Crtica
Conclusiones

TDD - Test-Driven Development


Es un hecho  los desarrolladores no suelen testear.

Solucin: forzar el test antes de la implementacin.

Enunciar claramente un comportamiento lo ms simple y


pequeo posible del story que se est implementando.

Escribir un test que lo valide.

Correr todos los tests que tenemos al momento: el nuevo falla.

Escribir el cdigo ms simple que haga pasar el test.

Correr los tests nuevamente: todos pasan.

Refactoreo + retesteo.

Repeat!

ISOFT II eXtreme Programming


eXtreme Programming
Metodologas actuales Test Driven Development
Metodologas giles Crtica
Conclusiones

TDD - Test-Driven Development


Es un hecho  los desarrolladores no suelen testear.

Solucin: forzar el test antes de la implementacin.

Enunciar claramente un comportamiento lo ms simple y


pequeo posible del story que se est implementando.

Escribir un test que lo valide.

Correr todos los tests que tenemos al momento: el nuevo falla.

Escribir el cdigo ms simple que haga pasar el test.

Correr los tests nuevamente: todos pasan.

Refactoreo + retesteo.

Repeat!

ISOFT II eXtreme Programming


eXtreme Programming
Metodologas actuales Test Driven Development
Metodologas giles Crtica
Conclusiones

Somos sucientemente giles?

Podemos eliminar prcticas?

Saquemos. . .

el refactoring. . .

el test de unidad. . .

el pair programming. . .

el cliente on-site. . .

ISOFT II eXtreme Programming


eXtreme Programming
Metodologas actuales Test Driven Development
Metodologas giles Crtica
Conclusiones

Somos sucientemente giles?

Podemos eliminar prcticas?

Saquemos. . .

el refactoring. . .

el test de unidad. . .

el pair programming. . .

el cliente on-site. . .

ISOFT II eXtreme Programming


eXtreme Programming
Metodologas actuales Test Driven Development
Metodologas giles Crtica
Conclusiones

Somos sucientemente giles?

Podemos eliminar prcticas?

Saquemos. . .

el refactoring. . .

el test de unidad. . .

el pair programming. . .

el cliente on-site. . .

ISOFT II eXtreme Programming


eXtreme Programming
Metodologas actuales Test Driven Development
Metodologas giles Crtica
Conclusiones

Somos sucientemente giles?

Podemos eliminar prcticas?

Saquemos. . .

el refactoring. . .

el test de unidad. . .

el pair programming. . .

el cliente on-site. . .

ISOFT II eXtreme Programming


eXtreme Programming
Metodologas actuales Test Driven Development
Metodologas giles Crtica
Conclusiones

Somos sucientemente giles?

Podemos eliminar prcticas?

Saquemos. . .

el refactoring. . .

el test de unidad. . .

el pair programming. . .

el cliente on-site. . .

ISOFT II eXtreme Programming


eXtreme Programming
Metodologas actuales Test Driven Development
Metodologas giles Crtica
Conclusiones

Somos sucientemente giles?

Podemos eliminar prcticas?

Saquemos. . .

el refactoring. . .

el test de unidad. . .

el pair programming. . .

el cliente on-site. . .

La mayora de quienes dicen aplicar XP NO aplican bien todas las


prcticas!

ISOFT II eXtreme Programming


eXtreme Programming
Metodologas actuales Test Driven Development
Metodologas giles Crtica
Conclusiones

ISOFT II eXtreme Programming


eXtreme Programming
Metodologas actuales Test Driven Development
Metodologas giles Crtica
Conclusiones

Dnde S sirve

XP sirve entonces donde

Los requerimientos son muy difusos.

El cliente mismo no tiene muy en claro lo que quiere.

Equipos de desarrollo chicos.

Integrantes no novatos.

Alto nivel de comunicacin.

ISOFT II eXtreme Programming


eXtreme Programming
Metodologas actuales Test Driven Development
Metodologas giles Crtica
Conclusiones

Donde NO sirve

XP no sirve entonces donde

Equipos de desarrollo grandes. . .

o con poca comunicacin. . .

o con gran rango de expertise.

Sistemas crticos.

ISOFT II eXtreme Programming

Вам также может понравиться