metodologias de desarrollo de softwares
TRANSCRIPT
-
7/30/2019 Metodologias de Desarrollo de Softwares
1/50
METODOLOGAS GILES
Y XPPatricio [email protected]
Departamento de Sistemas Informticos y ComputacinUniversidad Politcnica de Valencia
-
7/30/2019 Metodologias de Desarrollo de Softwares
2/50
www.dsic.upv.es/~letelier/pub
CONTENIDOS
Introduccin a Metodologas gilesExtreme Programming (XP)
IntroduccinPrcticas de XP
Conclusiones
-
7/30/2019 Metodologias de Desarrollo de Softwares
3/50
www.dsic.upv.es/~letelier/pub
QU ES UNA METODOLOGA GIL?WWW.AGILEALLIANCE.COM
Las Metodologas giles (AMs) valoran:Al individuo y las interacciones en el equipo de desarrollo ms
que a las actividades y las herramientas
Desarrollar software que funciona ms que conseguir unabuena documentacin Minimalismo respecto del modelado yla documentacin del sistema
La colaboracin con el cliente ms que la negociacin de un
contrato
Responder a los cambios ms que seguir estrictamente unaplanificacin
http://www.agilealliance.com/http://www.agilealliance.com/ -
7/30/2019 Metodologias de Desarrollo de Softwares
4/50
www.dsic.upv.es/~letelier/pub
POR QU SURGEN LAS METODOLOGASGILES (AMS)?
Dificultad para implantar metodologas tradicionales.Sofisticadas herramientas CASE y notaciones (UML)
Una solucin a medida para un segmento importante deproyectos de desarrollo de software
Pugna entre comunidades/gurs
Aceptarel cambio ...
-
7/30/2019 Metodologias de Desarrollo de Softwares
5/50
www.dsic.upv.es/~letelier/pub
COSTO DE LOS CAMBIOS EN SW
Costodel
cambio
tiempo
Tradicional
Suposicin AMs
-
7/30/2019 Metodologias de Desarrollo de Softwares
6/50
www.dsic.upv.es/~letelier/pub
MANIFIESTO DE LAS AMSAGILEMANIFESTO.ORG
Principios:1. La prioridad principal es satisfacer al cliente mediante
tempranas y continuas entregas de software que lereporte un valor
2. Dar la bienvenida a los cambios. Los AMs capturan loscambios para que el cliente tenga una ventajacompetitiva
3. Entregar frecuentemente software que funcione, desdeun par de semanas a un par de meses, con el menorintervalo de tiempo posible entre una entrega y lasiguiente
http://agilemanifesto.org/http://agilemanifesto.org/ -
7/30/2019 Metodologias de Desarrollo de Softwares
7/50 www.dsic.upv.es/~letelier/pub
MANIFIESTO DE LAS AMS
4. La gente del negocio y los desarrolladores debentrabajar juntos a lo largo del proyecto
5. Construir proyecto en torno a individuos motivados.Darles el entorno y el apoyo que necesitan y confiar enellos para conseguir el trabajo
6. El dilogo cara a cara es el mtodo ms eficiente y
efectivo para comunicar informacin dentro de unequipo de desarrollo
7. El software que funciona es la medida principal deprogreso
-
7/30/2019 Metodologias de Desarrollo de Softwares
8/50 www.dsic.upv.es/~letelier/pub
MANIFIESTO DE LAS AMS
8. Los procesos giles promueven un desarrollosostenible. Los promotores, desarrolladores yusuarios deberan ser capaces de mantener una pazconstante
9. La atencin continua a la calidad tcnica y al buendiseo mejora la agilidad
10. La simplicidad es esencial
11. Las mejores arquitecturas, requisitos y diseos
surgen de los equipos organizados por s mismos12. En intervalos regulares, el equipo reflexiona respecto
de cmo llegar a ser ms efectivo, y segn esto ajustasu comportamiento
-
7/30/2019 Metodologias de Desarrollo de Softwares
9/50 www.dsic.upv.es/~letelier/pub
COMPARACIN GIL - GIL
Metodologa gil Metodologa No gilPocos Artefactos Ms Artefactos
Pocos Roles Ms Roles
No existe un contrato tradicional o almenos es bastante flexible Existe un contrato prefijado
Cliente es parte del equipo dedesarrollo (adems in-situ)
El cliente interacta con el equipode desarrollo mediante reuniones
Grupos pequeos (< 10 integrantes)y trabajando en el mismo sitio Grupos grandes
Menos nfasis en la arquitectura La arquitectura es esencial
-
7/30/2019 Metodologias de Desarrollo de Softwares
10/50 www.dsic.upv.es/~letelier/pub
PRINCIPALES AMS
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
Adaptative Software Development, Jim Highsmithwww.adaptivesd.com
http://www.crystalmethodologies.org/http://www.controlchaos.com/http://www.dsdm.org/http://www.poppendieck.com/http://www.nebulon.com/fddhttp://www.coad.com/peter/http://www.extremeprogramming.org/http://www.xprogramming.com/http://www.adaptivesd.com/http://www.adaptivesd.com/http://www.xprogramming.com/http://www.extremeprogramming.org/http://www.coad.com/peter/http://www.nebulon.com/fddhttp://www.poppendieck.com/http://www.dsdm.org/http://www.controlchaos.com/http://www.crystalmethodologies.org/ -
7/30/2019 Metodologias de Desarrollo de Softwares
11/50 www.dsic.upv.es/~letelier/pub
-
7/30/2019 Metodologias de Desarrollo de Softwares
12/50
12
-
7/30/2019 Metodologias de Desarrollo de Softwares
13/50 www.dsic.upv.es/~letelier/pub
QU ES XP?
Es una metodologa gil Diseada para entornos dinmicos
Pensada para equipos pequeos (hasta 10 programadores)
Orientada fuertemente hacia la codificacin
nfasis en la comunicacin informal, verbal
-
7/30/2019 Metodologias de Desarrollo de Softwares
14/50 www.dsic.upv.es/~letelier/pub
HISTORIA DE XP
Creado por Kent Beck para la plantilla del proyecto C3 en Chrysler Kent fue contratado para dirigir el proyecto
Durante el proceso naci una nueva metodologa: eXtreme Programming (XP)
C3 concluy exitosamente en 1997
-
7/30/2019 Metodologias de Desarrollo de Softwares
15/50 www.dsic.upv.es/~letelier/pub
VALORES QUE FOMENTA XPComunicacin
Simplicidad
Retroalimentacin
Coraje
-
7/30/2019 Metodologias de Desarrollo de Softwares
16/50 www.dsic.upv.es/~letelier/pub
Programador (Programmer) Responsable de decisiones tcnicas Responsable de construir el sistema Sin distincin entre analistas,
diseadores o codificadores En XP, los programadores disean,
programan y realizan las pruebas
Jefe de Proyecto(Manager)
Organiza y gua las reunionesAsegura condiciones
adecuadas para el proyecto
Cliente(Customer) Es parte del equipo Determina qu construir y
cundo Establece las pruebas
funcionales
ROLES XPC2.COM/CGI/WIKI?EXTREMEROLES
http://c2.com/cgi/wiki?ExtremeRoleshttp://c2.com/cgi/wiki?ExtremeRoleshttp://c2.com/cgi/wiki?ExtremeRoles -
7/30/2019 Metodologias de Desarrollo de Softwares
17/50 www.dsic.upv.es/~letelier/pub
Entrenador(Coach) Responsable del proceso Tiende a estar en un segundo
plano a medida que el equipomadura
Encargado dePruebas(Tester)Ayuda al cliente con las
pruebas funcionales
Se asegura de que laspruebas funcionales sesuperan
Rastreador (Tracker)Metric ManObserva sin molestar Conserva datos histricos
... ROLES XP
-
7/30/2019 Metodologias de Desarrollo de Softwares
18/50
-
7/30/2019 Metodologias de Desarrollo de Softwares
19/50 www.dsic.upv.es/~letelier/pub
CAPTURA DE REQUISITOS EN XPUNA FICHA DE USER-STORY
-
7/30/2019 Metodologias de Desarrollo de Softwares
20/50 www.dsic.upv.es/~letelier/pub
PLANIFICACIN EN XP
Planificacin por entregas (releases)Se priorizan aquellas user-stories que el cliente
selecciona porque son ms importantes parael negocio
Entregas:Son lo ms pequeas posiblesSe dividen en iteraciones (iteracin = 2 o 3 semanas)
Estn compuestas por historiasA cada programador se le asigna una tarea de la
user-story
-
7/30/2019 Metodologias de Desarrollo de Softwares
21/50 www.dsic.upv.es/~letelier/pub
PROGRAMACIN EN XP
La programacin de tareas se realiza porparejas
La pareja disea, prueba, implementa eintegra el cdigo de la tarea
Cdigo dirigido por las pruebas
Cdigo modular, intentando refactorizarsiempre que se pueda
-
7/30/2019 Metodologias de Desarrollo de Softwares
22/50 www.dsic.upv.es/~letelier/pub
PROGRAMACIN EN XP
UNA FICHA DE TAREA
-
7/30/2019 Metodologias de Desarrollo de Softwares
23/50
www.dsic.upv.es/~letelier/pub
MODELO DE UN PROYECTO XP
-
7/30/2019 Metodologias de Desarrollo de Softwares
24/50
www.dsic.upv.es/~letelier/pub
ESPACIO DE TRABAJO XP
Espacio abiertoMesas centrales
Cubculos en el espacio exterior
Espacio de trabajo
del proyecto C3 de
DaimlerChrysler
-
7/30/2019 Metodologias de Desarrollo de Softwares
25/50
www.dsic.upv.es/~letelier/pub
RCTICAS XP
El juego de laplanificacin
Entregas pequeas Metfora
Diseo simple
Pruebas Refactoring
Programacin enparejas
Propiedad colectiva Integracin contnua
Semana de 40 horas
Cliente in situ Estndares de
programacin
-
7/30/2019 Metodologias de Desarrollo de Softwares
26/50
www.dsic.upv.es/~letelier/pub
RCTICAS XP
L JUEGO DE LA PLANIFICACIN
Decisiones de negocio (cliente):Alcance Cundo debe estar listo el producto para que
sea valioso en produccin?Prioridad Prioriza la incorporacin de las user-storiesComposicin de entregas Qu se necesita para que
el negocio sea mejor antes de tener el sw?
Fechas de entrega Fechas cuando el softwarefuncionando causara una gran diferencia
-
7/30/2019 Metodologias de Desarrollo de Softwares
27/50
www.dsic.upv.es/~letelier/pub
PRCTICAS XP
... EL JUEGO DE LA PLANIFICACIN
Decisiones tcnicas (programadores y otros):Estimaciones Cunto tiempo tardar en implementarse
una user-story?Consecuencias Tener en cuenta las consecuencias
tcnicas de determinadas decisiones de negocioProceso Organizacin del proceso y el equipoPlanificacin detallada Dentro de una entrega, qu
user-stories se realizan primero. Intentar trasladar lossegmentos de desarrollo ms arriesgados al principio,intentando respetar las prioridades del negocio
P ti XP
-
7/30/2019 Metodologias de Desarrollo de Softwares
28/50
www.dsic.upv.es/~letelier/pub
Reunin diaria Stand-up MeetingTodo el equipo
ProblemasSolutiones
De pie en un crculoEvitar discusiones largas
Sin conversaciones separadas
Prcticas XP... El Juego de la planificacin
Reunin diaria XP
-
7/30/2019 Metodologias de Desarrollo de Softwares
29/50
www.dsic.upv.es/~letelier/pub
PRCTICAS XP
ENTREGAS PEQUEASCada entrega es lo ms corta posible:Contenga requisitos ms valiosos del sistema
(bsicos)Reducen el riesgo mayor retroalimentacin desde
el cliente, y ms frecuente
Minimizar el n de user-stories quecomponen una entrega No realizaruser-stories a medias
-
7/30/2019 Metodologias de Desarrollo de Softwares
30/50
www.dsic.upv.es/~letelier/pub
PRCTICAS XP
METFORA
Cada proyecto XP es guiado por unametfora global
Da un contexto al equipo para entender loselementos bsicos y sus relaciones
Proporciona integridad conceptual
-
7/30/2019 Metodologias de Desarrollo de Softwares
31/50
www.dsic.upv.es/~letelier/pub
PRCTICAS XP
DISEO SIMPLE
Se disea la cosa ms simple que pueda
funcionar
Uso de tarjetas CRCDiseo de software correcto, es aquel que:Supera todas las pruebasNo tiene lgica duplicadaPone de manifiesto las intenciones importantes de los
programadoresTiene el mnimo nmero de clases y mtodos
-
7/30/2019 Metodologias de Desarrollo de Softwares
32/50
www.dsic.upv.es/~letelier/pub
PRCTICAS XP
PRUEBASLas pruebas unitarias se escriben ANTESque el cdigo
Pruebas automatizadasPermiten el desarrollo de proyectos de
forma rpida y seguraPruebas unitarias programadoresPruebas funcionales clienteResultado Un programa cada vez ms
seguro
-
7/30/2019 Metodologias de Desarrollo de Softwares
33/50
www.dsic.upv.es/~letelier/pub
PRCTICAS XP
REFACTORINGWWW.REFACTORING.COM
Refactorizacin = Mejora del cdigo
Intentar eliminar complejidad
Cdigo duplicado Refactorizacin
Se plantea su aplicacin despus deimplementar cada user-story
http://www.refactoring.com/http://www.refactoring.com/ -
7/30/2019 Metodologias de Desarrollo de Softwares
34/50
www.dsic.upv.es/~letelier/pub
-
7/30/2019 Metodologias de Desarrollo de Softwares
35/50
www.dsic.upv.es/~letelier/pub
PRCTICAS XP
PROGRAMACIN EN PAREJASWWW.PAIRPROGRAMMING.COM
Toda el cdigo se escribe en parejasSe produce cdigo de mayor calidad
Extiende el conocimiento
Se realiza el trabajo de 1 persona en casi la
mitad del tiempo y mejor (cuestionable)
http://www.pairprogramming.com/http://www.pairprogramming.com/ -
7/30/2019 Metodologias de Desarrollo de Softwares
36/50
www.dsic.upv.es/~letelier/pub
PRCTICAS XP
PROPIEDAD COLECTIVA
Cualquiera puede modificar el cdigo encualquier momento Se evitan cuellos de
botella en la codificacin
Todos asume las responsabilidades sobre elconjunto del sistema
Todos conocen algo sobre todas las partes yconocen muy bien aqullas en las quetrabajan
-
7/30/2019 Metodologias de Desarrollo de Softwares
37/50
www.dsic.upv.es/~letelier/pub
PRCTICAS XP
INTEGRACIN CONTNUA
El cdigo se integra y se prueba despus depocas horas
Existe una ordenador dedicado para laintegracin
Cada pareja integra su cdigo en dichoordenador
-
7/30/2019 Metodologias de Desarrollo de Softwares
38/50
www.dsic.upv.es/~letelier/pub
PRCTICAS XP
SEMANA DE 40 HORAS
Filosofa: Los programadores que descansan
son ms productivos
El exceso de trabajo es un serio problema enun proyecto
La gente est ms fresca y tiene mejores ideas
-
7/30/2019 Metodologias de Desarrollo de Softwares
39/50
www.dsic.upv.es/~letelier/pub
PRCTICAS XP
CLIENTE IN SITUCliente real = Aquel que usar el sistemacuando est en produccin
El cliente real debe estar con el equipo detrabajo:
Responder preguntasResolver disputasEstablecer prioridadesDiscutir mejoras
-
7/30/2019 Metodologias de Desarrollo de Softwares
40/50
www.dsic.upv.es/~letelier/pub
PRCTICAS XP
ESTNDARES DE PROGRAMACIN
Son fundamentales cuando losprogramadores cambian de pareja o hacen
refactoringdel cdigo de otros
Se consigue un cdigo con el mismo estilo,homogneo, legible
-
7/30/2019 Metodologias de Desarrollo de Softwares
41/50
www.dsic.upv.es/~letelier/pub
INTERACCIN ENTREPRCTICAS
XP: Kent Beck
-
7/30/2019 Metodologias de Desarrollo de Softwares
42/50
42
-
7/30/2019 Metodologias de Desarrollo de Softwares
43/50
www.dsic.upv.es/~letelier/pub
UN DA DE TRABAJO EN XP
NO TODAS LAS
-
7/30/2019 Metodologias de Desarrollo de Softwares
44/50
www.dsic.upv.es/~letelier/pub
StoriesPair Programming
Frequent ReleasesDaily Stand-up MeetingsCreate Great Architectures
Working SW >>Documentation
Collective OwnershipImprove Quality IterativelyCollaboration>>Contracts
Nightly Builds (too early to tell)Refactor (when time appropriate)
Ever-Present Customers (unlikely to work in real world)
Continuous Integration (unlikely for non-trivial)Dont Create Things to Discard (moderation!) x
MalaPrecaucinBuena
Nightly Builds Refactoring Cliente in situ Integracin contnua No crear cosas que se desecharn
Historias de usuarioProgramacin en parejas
Releases frecuentesReunin Stand-up cada daCrear buenas arquitecturas
SW funcionando >>Documentation
Propiedad colectiva Mejora de la calidad
iterativamente Colaboracin >> Contrato
NO TODAS LASIDEAS/PRCTICAS GILES
SON BUENAS
Diapositiva obtenida de la presentacin A History of Agile Methods presentada por Alan Davis en JISBD 2002
-
7/30/2019 Metodologias de Desarrollo de Softwares
45/50
www.dsic.upv.es/~letelier/pub
ENFOQUE PARA ELDESARROLLO DE SOFTWARE
Grado deCeremonia/control
en el proceso
Tiempo
1950s 1960s 1970s 1980s 1990s 2000s 2010s
Diapositiva obtenida de la presentacin A History of Agile Methods presentada por Alan Davis en JISBD 2002
QU RESULTADO PROVEEN
-
7/30/2019 Metodologias de Desarrollo de Softwares
46/50
www.dsic.upv.es/~letelier/pub
QU RESULTADO PROVEENLAS METODOLOGAS GILES?
Hay pocos datos concretos del ndice de xito deproyectos
Est teniendo un gran augeAumento en el nmero de proyectosPor qu? Tiene el apoyo de muchos gurs en ingeniera de sw Es un proceso para gente que odia los procesos Tiene sentido Poltica? ... Pugna entre comunidades
-
7/30/2019 Metodologias de Desarrollo de Softwares
47/50
www.dsic.upv.es/~letelier/pub
CUNDO UTILIZAR UNAMETODOLOGA GIL?Existe ya un proceso? SiReacciona bien a los cambios? SiEst el equipo contento con l? Si
Mejor esperar Se estn recogiendo datos (red NAME) http://name.case.unibz.it/ En un futuro se podrn hacer comparaciones sobre lo que es ms
conveniente
http://name.case.unibz.it/http://name.case.unibz.it/ -
7/30/2019 Metodologias de Desarrollo de Softwares
48/50
www.dsic.upv.es/~letelier/pub
... CUNDO UTILIZAR UNAMETODOLOGA GIL?Existe ya un proceso? Noo existe pero no reacciona bien a los cambioso existe pero el equipo no est contento con l
Una Metodologa gil puede ser unabuenaforma de empezar
Fcil de financiarA los programadores les gustaA los clientes les gusta el control aadido
-
7/30/2019 Metodologias de Desarrollo de Softwares
49/50
www.dsic.upv.es/~letelier/pub
QU HACE LA GENTE CON
LAS METODOLOGAS GILES?International Conference on eXtreme
Programming and Agile Methods in
Software Development (XP200x)http://www.xp2003.orgXP Agile Universehttp://www.agileuniverse.com
http://www.xp2003.org/http://www.agileuniverse.com/http://www.agileuniverse.com/http://www.xp2003.org/ -
7/30/2019 Metodologias de Desarrollo de Softwares
50/50
METODOLOGAS GILES
Y XP
Departamento de Sistemas Informticos y ComputacinUniversidad Politcnica de Valencia
Fin de la Presentacin
Patricio [email protected]