Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ingeniera de Software
LIMA - 2007
Fuente: Diapositiva obtenida de la presentacin A History of Agile Methods presentada por Alan Davis en JISBD 2002
Metodologa gil
Metodologa gil
Las metodologas giles forman parte del movimiento de
desarrollo gil de de software, que se como basan medio en la adaptabilidad cualquier cambio para
Metodologa gil
El Manifiesto de la metodologa gil: 1. Al individuo y las interacciones del equipo de desarrollo sobre el proceso y las herramientas. 2. Desarrollar software que funciona ms que conseguir una buena documentacin. 3. La colaboracin con el cliente ms que la negociacin de un contrato. 4. Responder a los cambios ms que seguir estrictamente un plan. Es importante la derecha pero valoramos ms la izquierda
2. Una solucin a medida para un segmento importante de proyectos de desarrollo de software 3. Pugna entre comunidades/gurs
4. Aceptar el cambio ...
Una Metodologa gil puede ser una buena forma de empezar No involucra gran inversin A los programadores les (suele) gustar A los clientes les ofrece mayor visibilidad y menor riesgo en el proyecto
durante el proyecto
Tradicional
Costo del cambio
Suposicin MAs
tiempo
Principales MAs
+Crystal Methodologies, Alistarir Cockburn, www.crystalmethodologies.org +SCRUM, Ken Schwaber & Jeff Sutherland, www.controlchaos.com +DSDM (Dynamic Systems Development Method), www.dsdm.org +Lean Programming, Mary Poppendieck, www.poppendieck.com +FDD (Feature-Driven Development), Peter Coad & Jeff De Luca, www.nebulon.com/fdd, www.coad.com/peter/#fdd +Extreme Programming, Kent Beck www.extremeprogramming.org, www.xprogramming.com
Programacin Extrema
Sin embargo, se reconoce a Kent Beck como el que articul esta propuesta y le dio nombre propio.
Kent Beck
desarrollando
aplicacin
nminas,
demasiado xito por parte de la gente que tena en el proyecto. El verano de 1996, Beck entr en nmina en la compaa y se le pidi de hacer esta aplicacin como trabajo. Es en esta aplicacin cuando nace la
Qu es XP?
Que es XP?
+ La programacin extrema es una metodologa de
desarrollo ligera basada en una serie de valores y una docena de prcticas que propician un aumento en la productividad a la hora de generar software. + XP permite controlar los problemas de riesgo en los proyectos. + XP permite la participacin de pequeos grupos de programadores.
tiempo.
Caractersticas de XP
+ Las caractersticas generales de XP es deliberadamente una metodologa liviana que pasa por alto la utilizacin
opcin a considerar.
Justificacin y fundamentos de XP
Anlisis
Diseo
Implementacin
Prueba
Produccin
Fig. 1 Relacin del costo del cambio contra las etapas del ciclo de vida (adaptado de Beck, 1999)
Justificacin y fundamentos de XP
Anlisis
Diseo
Implementacin
Prueba
Produccin
Fig. 2 Costo del cambio modificado por la aplicacin de tcnicas adecuadas (adaptado de Beck, 1999)
Requerimientos Anlisis
Diseo
Implementacin
Prueba
Produccin
Se busca :
1.Realimentacin rpida
2.Asumir la simplicidad 3.Cambio incremental 4.Aceptar el cambio 5.Hacer trabajo de calidad.
3. Metfora
4. Diseo simple 5. Pruebas 6. Refactorizacin
Objetivos de XP
Son: 1.La satisfaccin del cliente. 2.Potenciar el trabajo en grupo, todos estn involucrados en el desarrollo del software.
Tiempo
Coste
Ms dinero puede engrasar el sistema, Con poco dinero ser imposible resolver pero en exceso puede crear ms los problemas del cliente. problemas que los que resuelve.
Calidad
Insistir en mayor calidad permite conseguir plazos menores o hacer ms en un tiempo dado. Efecto humano: se trabaja mejor si se siente que se hace un buen trabajo.
Variable terrible de control. Se puede sacrificar para obtener ganancias a corto, pero los costes posteriores son enormes (humanos, de negocio y tcnicos).
El coste de Cambio
+ El coste de los cambios crece
COSTE
con el tiempo.
TIEMPO
TIEMPO
Roles de XP
Cliente Escribe Historias de Usuario y especifica Pruebas Funcionales. Establece prioridades, explica las Historias Puede ser o no un usuario final Tiene autoridad para decidir cuestiones relativas a las Historias. Programador Hace estimaciones sobre las Historias Define Tareas a partir de las Historias y hace estimaciones Implementa las Historias y las Pruebas Unitarias
Roles de XP
Tutor Observa todo, identifica seales de peligro, se asegura que el proyecto se mantiene en curso Ayuda en todo Da avisos cuando se necesita.
Perseguidor (calidad) Monitoriza el progreso de los programadores, toma accin si las cosas tienden a salirse de su senda. Las acciones incluyen reuniones con el Cliente, solicitar ayuda al Tutor u otro Programador.
Roles de XP
Verificador Implementa y corre las Pruebas Funcionales (no Pruebas Unitarias) Presenta grficas de los resultados y se asegura de que la gente conoce cundo los resultados empiezan a decaer. Agorero Se asegura que todos conocen los riesgos que existen Se asegura que las malas noticias no se ocultan, se disculpan o se reducen de proporcin.
Roles de XP
Gestor Planifica las reuniones (por ej., plan de iteraciones, plan de lanzamientos releases), se asegura que el proceso de las reuniones se sigue, anota los resultados de la reunin para futuros informes y los pasa al Perseguidor. Posiblemente responsable ante el Propietario de Oro Asiste a las reuniones, aporta informacin til anterior. Propietario de Oro La persona que paga el proyecto, que puede ser o no la misma que el Cliente.
Proceso de Desarrollo
Artefactos esenciales en XP
+ Historias del Usuario + Tareas de Ingeniera + Pruebas de Aceptacin + Pruebas Unitarias y de Integracin + Plan de la Entrega + Cdigo
Historia de Usuario
Historia de Usuario
Nmero: 1
Usuario: Autor Modificacin de Historia Nmero: Prioridad en Negocio: Alta (Alta / Media / Baja) Riesgo en Desarrollo: (Alto / Medio / Bajo) Descripcin: Se introducen los datos del artculo (ttulo, fichero adjunto, resumen, tpicos) y de los autores (nombre, e-mail, afiliacin). Uno de los autores debe indicarse como autor de contacto. El sistema confirma la correcta recepcin del artculo enviando un e-mail al autor de contacto con un userid y password para que el autor pueda posteriormente acceder al artculo. Observaciones: Iteracin Asignada: 2 Puntos Estimados: Puntos Reales:
Tarea de Ingeniera
Tarea
Nmero tarea: Nombre tarea: Nmero historia:
Puntos estimados:
Fecha fin:
Prueba de Aceptacin
Caso de Prueba
Nmero Caso de Prueba: Nombre Caso de Prueba: Nmero Historia de Usuario:
Descripcin:
Condiciones de ejecucin:
Entradas:
Escenarios en XP : Exploracin ?
Prioridad
Historias de Usuario Riesgo Esfuerzo (puntos)
Segunda Iteracin
N-sima Iteracin
ltima Iteracin
2 a 3 semanas
Historias de la Iteracin
Tareas de la iteracin
Escenarios en XP : Programacin
Historias de la Iteracin
Pruebas de Aceptacin
+ Mesas centrales
+ Cubculos en el espacio exterior
+Todo el equipo
+ Problemas + Soluciones +De pie en un crculo + Evitar discusiones largas
Centro del universo del proyecto Punto de reunin para la Stand-up Meeting
Obtenida de www.agiletek.com
Fases de la metodologa XP
DISE ION
AC NIFIC PLA
recodificacin
ICAC ODIF C
ION
Programacin en pareja
PR U
EB A
Prueba de unidad
Integracin continua
Pruebas de aceptacin
Planificacin
XP plantea la planificacin como un permanente dialogo
entre las partes la empresarial (deseable) y la tcnica (posible).
deseable
posible
Planificacin
.1 El Juego de la Planificacin
Negocio
mbito Qu debe resolver el software? Prioridad Qu debe ser echo en primer
lugar?
Composicin de versiones Cunto es necesario
del software?
Planificacin
.1 El Juego de la Planificacin
Tcnico.
Estimaciones Cunto lleva implementar una
caracterstica?
Consecuencias, informar sobre consecuencias
equipo?
Programacin detallada: En una versin Qu
se resolver primero?
Planificacin
.2 Pequeas versiones. Cada versin debe de ser tan pequea como fuera posible, conteniendo los requisitos de negocios ms importantes, las versiones tiene que tener sentido como un todo. .3 Metfora. Es una historia que todo el mundo puede contar a cerca de cmo funciona el sistema.
Diseo
.4 Diseo simple. El diseo adecuado par el software es aquel que: 1.Funciona con todas las pruebas. 2.No tiene lgica duplicada.
Codificacin
.5 Recodificacin. Este proceso se le denomina recodificar o refactorizar (refactoring).y consiste en hacer el programa mas simple sin perder funcionalidad.
Codificacin
.6 Programacin por parejas. Todo el cdigo de produccin se escribe con dos personas mirando a una mquina, con un solo teclado y un solo ratn. Cada miembro de la pareja juega su papel: uno
Codificacin
.7 Propiedad Colectiva. Cualquiera que crea que puede aportar valor al cdigo en cualquier parcela puede hacerlo, ningn miembro del equipo es propietario del cdigo.
.8 Integracin contina.
El cdigo se debe integrar como mnimo una vez al da, y realizar las pruebas sobre la totalidad del
sistema.
Codificacin
.9 Cuarenta horas. Si queremos estar frescos y motivados cada maana y cansado y satisfecho cada noche. del sistema.
Codificacin
.11 Estndares de Codificacin. Se debe establecer un estndar de codificacin aceptado e implantado por todo el equipo.
Pruebas
Prcticas XP
1. El juego de la planificacin
PLANIFICACION DISEO
2. Entregas pequeas 3. Metfora 4. Diseo simple 5. Recodificacin 6. Programacin en parejas 7. Propiedad colectiva
CODIFICACION
12. Pruebas
Programacin en parejas
Pruebas
Pequeas versiones
Aspectos Positivos De Xp
+ Pruebas unitarias en el cdigo factor clave para obtener un software de alta calidad. + La integracin continua es aceptada y recomendada para evitar catstrofes ocasionadas por defectos no detectados a tiempo.
Aspectos Controversiales de Xp
+ La XP se ha afirmado que no es la metodologa que va a
resolver todos los problemas en IS y se han resaltado sus limitaciones. + No es aconsejable XP si no es posible disminuir la curva costo/tiempo. + Tampoco si la tecnologa o el entorno no permiten realizar integraciones frecuentes o realizar pruebas continuamente.
Aspectos Controversiales de Xp
+ Desalienta el diseo, que es dbil en la documentacin, que el modelo no aplica para proyectos donde la seguridad es
crtica.
+ Exceso de pruebas retrasa el desarrollo, el diseo simple solo aplica a proyectos simples, que la programacin en pares consume mayor tiempo y recursos. + XP asume implcitamente que siempre se utiliza el enfoque de programacin orientada a objetos.
Aspectos Controversiales de Xp
+ La refabricacin, como sinnimo de rediseo constante y
que se puede tomar como una excusa para relegar hasta el ltimo minuto el diseo. + La planeacin, segn algunos crticos, no debera hacerse sobre la marcha como parece recomendar XP. + La programacin en pares. Se argumenta que no cualquier clase de programador desea trabajar de esta manera.
10
20
30
40
50
60
Lo he probado y no me gusta nada Es una mala idea, no puede funcionar nunca Es una buena idea, pero no funcionar Lo he probado y me gusta mucho
+ XP adecuada para proyectos de software pequeos o cuando mucho medianos. + Diseo al inicio: Aqu se recomienda un buen diseo inicial (upfront) que respalde al proyecto. + Se producen funcionalidades completas en cada iteracin
(entrega) durante el ciclo del software. El tiempo entre cada entrega es corto.
(Cont..I)
+ Se simula al cliente en las instalaciones, en lugar de ser un cliente real como dice XP, este rol lo asume alguien con experiencia. + Programacin en pares flexible. Se modifica la prctica de XP
BENEFICIOS
+ Satisfaccin del cliente.
+ Cumplimiento de plazos.
+ El cliente tiene el control sobre las prioridades. + Se hacen pruebas continuas durante el proyecto.
+ Calidad en el trabajo.
+ La XP es mejor utilizada en la implementacin de nuevas tecnologas rpidamente. donde los requerimientos cambian
CONCLUSIONES
+ La programacin extrema es una forma ligera, eficiente,
flexible, software. + La programacin extrema se beneficia de la existencia de un gran nmero de herramientas de software libre que permiten aplicarla con gran productividad. + El software libre se inspira en algunas de las prcticas de la XP . predecible, cientfica y divertida de generar
RECOMENDACIONES
+ Algunas prcticas podrn ser controversiales y hasta
contraproducentes fuera de un dominio especfico. Las metodologas giles se recomiendan. Para proyectos y
equipos pequeos.
+Requerimientos cambiantes (enfoque evolutivo). +Equipo de desarrollo competente.
BIBLIOGRAFA
+ Una explicacin de la Programacin extrema: aceptar el cambio Autor: Kent Beck. Publicado: Addison-Wesley Iberoamericana Espanya, S.A.
2002.
+ La Programacin Extrema en la prctica Autor: James Newkirk, Robert C. Martin. Publicado: Addison-Wesley Iberoamericana Espanya, S.A. 2002. + Extreme Programming Installed. Autor: Ron Jeffries, Ann Anderson, Chet Hendrickson, Ronald E. Jeffries. Publicado: Addison-Wesley Pub Co; 1 edicin (13 Octubre 2000).
+ Extreme
Programming
Explained:
Embrace
Change.
Autor:
Kent
BIBLIOGRAFA
+ Extreme Programming Pocket Guide. Autor: chromatic. Publicado: O'Reilly & Associates; 1 edicin (Junio 2003).
Autor: Matt
Fowler.
Stephens, Doug Rosenberg. Publicado: APress; (1 Enero 1970). Martin Publicado: Addison-Wesley Pub Co; 2000
Referencias Web
+Sitio Extreme Programming: A Gentle Introduction. www.extremeprogramming.org
+Secciones Artculos y Roadmap del sitio de la Agile Alliance. www.agilealliance.org +Sitio Xprogramming, mantenido por Ron Jeffries. www.xprogramming.com +WikiWiki de Extreme Programming
http://c2.com/cgi/wiki?ExtremeProgrammingRoadmap
+Revista electrnica Software Development. www.sdmagazine.com +Nmero monogrfico de revista CrossTalk: Agile Software Development. www.stsc.hill.af.mil/crosstalk/2002/10/ +Una extensiones de XP, Agile+. www.agiletek.com +Sitios de modelado gil, mantenidos por Scott W. Ambler. www.agilemodeling.com y www.agiledata.org +Refactoring, mantenido por Martin Fowler. www.refactoring.com +Pruebas en contexto gil, www.junit.org
GRACIAS