Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Universidad de Morn
Faculta de Informtica, Cs. De la Comunicacin y
Tc. Especiales
Herramientas y Procesos de Software
Motivaci
Motivacin
Caos
Falta de un mtodo sistemtico de trabajo, que se sigue a veces
Fundamentos de XP
La incertidumbre
La nica certeza?
El cambio
3
Or
Orgenes de los m
mtodos giles
En marzo de 2001, 17 crticos de estos modelos, convocados por Kent Beck,
que acababa de definir una nueva metodologa denominada Extreme
Programming, se reunieron en Salt Lake City para discutir sobre los modelos
de desarrollo de software.
En la reunin se acu el trmino Mtodos giles para definir a aquellos
que estaban surgiendo como alternativa a las metodologas formales, (CMMSW, PMI, SPICE) a las que consideraban excesivamente pesadas y rgidas
por su carcter normativo y fuerte dependencia de planificaciones
detalladas, previas al desarrollo.
Los integrantes de la reunin resumieron en cuatro postulados lo que ha
quedado denominado como Manifiesto gil, que compendia el espritu en el
que se basan estos mtodos.
En la actualidad hay aproximaciones que combinan lo mejor de ambos
enfoques (formal y gil), aunque en cada lado, sus defensores adoptaron
posturas radicales, quiz ms ocupadas en descalificar a la contraria que en
estudiarla y conocerla para mejorar la propia.
4
Manifiesto gil
A los individuos y su
interaccin
El software que funciona
La colaboracin con el
cliente
La respuesta al cambio
por
por
por
por
encima
encima
encima
encima
Manifiesto gil
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Mtodos giles
Recogen tcnicas, buenas
prcticas contrastadas por
profesionales reconocidos.
5. Procesos primarios
5. Procesos de soporte
5.1 Adquisicin
6.1 Documentacin
5.2 Suministro
6.4 Verificacin
6.5 Validacin
5.3
Desarrollo
6.6 Reuniones
5.3
6.7 Auditora
Mantenimiento
7. Procesos organizacionales
7.1 Gestin
7.2 Infraestructura
7.3 Mejora
7.4 Formacin
Valores
Valores que
que inspiran
inspiran XP
XP
SIMPLICIDAD
FEEDBACK
CORAJE
COMUNICACIN
Procesos y t
tcnicas para desarrollo de
software
Comunicacin
Comunicacin
XP pone en comunicacin directa y continua a clientes y
desarrolladores. El cliente se integra en el equipo para establecer
prioridades y resolver dudas. De esta forma ve el avance da a da, y es
posible ajustar la agenda y las funcionalidades de forma consecuente
Feedback
Feedback rpido
rpido yy continuo
continuo
Una metodologa basada en el desarrollo incremental de pequeas
partes, con entregas y pruebas frecuentes y continuas, proporciona un
flujo de retro-informacin valioso para detectar los problemas o
desviaciones.
Procesos y t
tcnicas para desarrollo de
software
Simplicidad
Simplicidad
La simplicidad consiste en desarrollar slo el sistema que realmente se
necesita. Implica resolver en cada momento slo las necesidades
actuales. Con este principio de simplicidad, junto con la comunicacin y
el feedback resulta ms fcil conocer las necesidades reales
Los costes y la complejidad de predecir el futuro son muy
elevados, y la mejor forma de acertar es esperar al futuro.
Coraje
Coraje
El coraje implica saber tomar decisiones difciles. Reparar un error
cuando se detecta. Mejorar el cdigo siempre que tras el feedback y las
sucesivas iteraciones se manifieste susceptible de mejora.
Tratar rpidamente con el cliente los desajustes de agendas para
decidir qu partes y cundo se van a entregar.
10
11
12
Visin tradicional
Y si fuera as?
13
No sucede mgicamente
Prcticas tiles
14
Fundamentos de XP Valores de XP
Comunicacin
Coraje
Jugar a ganar
Responsabilidad aceptada (antes que
asumida)
Trabajo de Calidad
Atacar problema urgente, dejando la mayor
cantidad de opciones
Simplicidad
Asumirla siempre
Viajar con equipaje: poco, simple y
valioso
Cambios paso a paso
Adaptacin local
Retroalimentacin
15
Pr
Prcticas de XP
16
Las 12 Pr
Prcticas de XP
XP no es un modelo de procesos ni un marco de trabajo, sino un conjunto de 12
prcticas que se complementan unas a otras y deben implementarse en un entorno
de desarrollo cuya cultura se base en los cuatro valores citados
PRCTICAS DE CODIFICACIN
1.- Simplicidad de cdigo y de diseo para producir software fcil de modificar.
2.- Reingeniera continua para lograr que el cdigo tenga un diseo ptimo.
3.- Desarrollar estndares de codificacin, para comunicar ideas con claridad a travs del
cdigo.
4.- Desarrollar un vocabulario comn, para comunicar las ideas sobre el cdigo con
claridad.
PRCTICAS DE DESARROLLO
1.- Adoptar un mtodo de desarrollo basado en las pruebas para asegurar que el cdigo se
comporta segn lo esperado.
2.- Programacin por parejas, para incrementar el conocimiento, la experiencia y las ideas.
3.- Asumir la propiedad colectiva del cdigo, para que todo el equipo sea responsable de l.
4.- Integracin continua, para reducir el impacto de la incorporacin de nuevas
funcionalidades.
17
Las 12 Pr
Prcticas de XP
PRCTICAS DE NEGOCIO
18
Ejemplos de intervencin
Cambios de personal
En las estrategias de desarrollo
Matar el proyecto
19
Clientes (Bussiness)
Desarrolladores (Development)
Programador
Encargado de pruebas
Encargado de seguimiento
Consultor externo
Gestor (vnculo entre clientes y programadores)
20
21
22
Fases de XP
Cmo funciona XP
Plan de Entregas
con Historias de Usuario
Reunin de
Planificacin de Entregas
Pruebas
de Aceptacin
Aprobacin del
cliente
Entregas pequeas al
cliente
Pruebas
de aceptacin
OK?
Mantenerse iterando
para pasar las Pruebas
de Aceptacin:
Pruebas de sistema
(Bugs)
Pruebas de Mdulos
Pruebas de usuario
24
SCRUM
No es propiamente un mtodo o metodologa de desarrollo, e implantarlo como
tal resulta insuficiente.
Scrum define mtodos de gestin y control para complementar la aplicacin de
otros mtodos giles como XP que, centrados en prcticas de tipo tcnico,
carecen de ellas.
Los principios de Scrum son:
Equipos autogestionados.
Una vez dimensionadas las tareas no es posible agregarles
trabajo extra.
25
SCRUM
26
Otros M
Mtodos giles
Familia
todos Crystal
m
Familia de
de m
mtodos
Crystal
La familia de metodologas Crystal ofrece diferentes mtodos para seleccionar
el ms apropiado para cada proyecto.
Crystal identifica con colores diferentes cada mtodo, y su eleccin debe ser
consecuencia del tamao y criticidad del proyecto, de forma que los de mayor
tamao, o aquellos en los que la presencia de errores o desbordamiento de
agendas implique consecuencias graves, deben adoptar metodologas ms
pesadas.
Los mtodos Crystal no prescriben prcticas concretas
ASD
ASD (Adaptative
(Adaptative Software
Software Development)
Development)
Mtodo que como alternativa a los procedimientos formales, aborda el
desarrollo de grandes sistemas con el uso de tcnicas propias de las
metodologas giles.
No se trata de una metodologa, sino de la implantacin de una cultura en la
empresa, basada en la adaptabilidad.
27
Otros M
Mtodos giles
PP
PP (Pragmatic
(Pragmatic Programming)
Programming)
Pragmatic Programming es la coleccin de 70 prcticas de programacin, comunes a otros
mtodos giles, cuya aplicacin resulta til para solucionar los problemas cotidianos.
Surge del libro The Pragmatic Programmer de Dave Thomas y Andres Hunt.
AM
AM (Agile
(Agile Modeling)
Modeling)
Agile Modeling es la presentacin de un nuevo enfoque para realizar el modelado de
sistemas,(diseo) y basado en los principios de los mtodos giles remarca la conveniencia
de reducir el volumen de la documentacin. (Amber S. Agile Modeling: Effective Practices
for Extreme Programming and the Unified Process)
ISD
ISD Internet
Internet Speed
Speed Development
Development
Surge de las conclusiones del coloquio celebrado en Octubre de 2001, promovido por SEI
que reuni a especialistas de las universidades Carneige Mellon, Georgia y Copenhagen.
Sienta bases de gestin para abordar el desarrollo de sistemas de software, de tamao
pequeo que requieren tiempos de desarrollo muy rpidos.
FDD
FDD (Feature
(Feature Driven
Driven Development)
Development)
Prescribe un proceso iterativo de 5 pasos, con iteraciones de dos semanas.
El punto de referencia son las caractersticas que debe reunir el software, y se centra en las
fases de diseo e implementacin del sistema
28
29
Principios bsicos en los que se basa todo el modelo (los 8 de la pg. ant.)
Mapas mentales de organizacin. Hay 2: De equipo y de procesos
reas de trabajo en las que se usan mtodos determinados (Gestin de
proyecto, de riesgos y de la mejora del talento)
Ideas que dan soporte a los principios y disciplinas de MSF y se muestran
a travs de prcticas especficas contrastadas.
Prcticas que han demostrado su efectividad en proyectos en diferentes
condiciones de entornos reales
Prcticas opcionales, sugeridas por el modelo.
30
Modelo o
Concepto
Prctica
Fundamental
Disciplina
Clave
Contrastada
Aprender de las
experiencias
Permanecer gil y
esperar el cambio
Modelo de procesos
Gestin de riesgos
Disposicin al
aprendizaje
Evaluacin continua
de riesgos
Uso de facilitadores
externos
Hitos de revisin
Definir y monitorizar
disparadores de
riesgos
Recomendac.
Creacin de una BD de
riesgos
Est relacionado
En 2005, el desarrollo del nuevo producto de Microsoft Visual Studio 2005 Team System
ha ganerado la evolucin de MSF hacia la nueva versin 4.0 con dos lneas paralelas:
Factor
Tamao
Criticidad
Dinamismo
Personal
Cultura
Discriminadores giles
Dependencia y escalabilidad limitada por
el porcentaje alto de conocimiento tcito.
Apropiado para equipos y productos
pequeos.
La simplicidad en la documentacin y el
diseo dificulta los planes de pruebas.
No aconsejado para sistemas con niveles
de criticidad altos (IEEE 1012)
Re-factorizar desde un diseo bsico
hasta el producto final es un mtodo
ideal para entornos dinmicos e innovadores, pero muy caro por el retrabajo para entornos estables o
conocidos
Los mtodos de trabajo giles requieren
una masa crtica de tcnicos con niveles
de experiencia medios-altos, capaces de
comprender y adaptar los mtodos y las
tcnicas empleadas.
Ms apropiado para culturas de
empowerment responsabilidad y
horquilla de decisin y libertad personal.
Discriminadores formales
Escalabilidad y conocimiento explcito.
Apropiado para productos y equipos
grandes. Duro de mantener en pequeos
proyectos.
Rigor de requisitos y diseo adecuados
para procesos de pruebas, verificacin y
validacin.
Duros de gestionar en proyectos de
escasa criticidad
En sistemas estables y conocidos, partir
de requisitos completos y diseos
detallados permite trazar y seguir un
plan completo y hacerlo bien a la
primera.
Aunque es aconsejable contar con
personas expertas en las fases de
definicin del proyecto, luego pueden
ejecutarse con menor masa crtica de
expertos.
Ms apropiado en culturas en las que las
personas se sienten seguras con un
marco de tareas y responsabilidades bien
definido.
32
Procesos y t
tcnicas para desarrollo de
software
Enfoque
Enfoque formal
formal oo gil?
gil?
Personal
% Junior
% Senior y Master
40
15
30
20
20
25
10
30
Criticidad
Prdidas posibles
Vida
0
s
Bien
es
- ut
ilid
Dinamismo
% Modific. Requisitos / mes
1
5
35
10
30
ad
50
3
10
gi
90
30
For
ma
l
70
100
300
Tamao
Nmero de personas
50
30
10
Cultura
% adaptacin a entornos caticos
33
Metodolog
Metodologas giles vs. Tradicionales
34
Procesos y t
tcnicas para desarrollo de
software
Para
Para ampliar
ampliar informacin
informacin
Modelos basados en procesos
(http://www.pmi.org)
IPMA
Modelos giles
Manifiesto gil
Scrum (http://www.controlchaos.com/)
Agile Modeling
(http://www.agilemanifesto.org/)
(http://www.dsdm.org/)
(http://msdn.microsoft.com/vstudio/teamsystem/msf/)
(http://www.featuredrivendevelopment.com/)
(http://www.sei.cmu.edu/pub/documents/02.reports/pdf/02tr020.pdf)
35